From deb08b9a120ebf679b2872287a25d76ab826701c Mon Sep 17 00:00:00 2001 From: cvs2git Date: Thu, 11 May 1995 17:39:38 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'rtems-3-5-0a'. Sprout from master 1995-05-11 17:39:37 UTC Joel Sherrill 'Initial revision' Delete: INSTALL LICENSE README SUPPORT c/ACKNOWLEDGEMENTS c/PROBLEMS c/README c/REQUIRES c/UPDATE_HELP c/build-tools/README c/build-tools/cklength.c c/build-tools/eolstrip.c c/build-tools/packhex.c c/build-tools/scripts/README c/build-tools/src/cklength.c c/build-tools/src/eolstrip.c c/build-tools/src/packhex.c c/build-tools/src/unhex.c c/build-tools/unhex.c c/src/README c/src/exec/libcsupport/include/clockdrv.h c/src/exec/libcsupport/include/console.h c/src/exec/libcsupport/include/iosupp.h c/src/exec/libcsupport/include/rtems/libcsupport.h c/src/exec/libcsupport/include/spurious.h c/src/exec/libcsupport/include/timerdrv.h c/src/exec/libcsupport/include/vmeintr.h c/src/exec/libcsupport/src/README c/src/exec/libcsupport/src/__brk.c c/src/exec/libcsupport/src/__gettod.c c/src/exec/libcsupport/src/__times.c c/src/exec/libcsupport/src/malloc.c c/src/exec/libcsupport/src/newlibc.c c/src/exec/libcsupport/src/no_libc.c c/src/exec/libcsupport/src/unixlibc.c c/src/exec/rtems/headers/asr.h c/src/exec/rtems/headers/attr.h c/src/exec/rtems/headers/clock.h c/src/exec/rtems/headers/dpmem.h c/src/exec/rtems/headers/event.h c/src/exec/rtems/headers/eventmp.h c/src/exec/rtems/headers/eventset.h c/src/exec/rtems/headers/intr.h c/src/exec/rtems/headers/message.h c/src/exec/rtems/headers/modes.h c/src/exec/rtems/headers/mp.h c/src/exec/rtems/headers/msgmp.h c/src/exec/rtems/headers/options.h c/src/exec/rtems/headers/part.h c/src/exec/rtems/headers/partmp.h c/src/exec/rtems/headers/ratemon.h c/src/exec/rtems/headers/region.h c/src/exec/rtems/headers/regionmp.h c/src/exec/rtems/headers/rtems.h c/src/exec/rtems/headers/sem.h c/src/exec/rtems/headers/semmp.h c/src/exec/rtems/headers/signal.h c/src/exec/rtems/headers/signalmp.h c/src/exec/rtems/headers/status.h c/src/exec/rtems/headers/taskmp.h c/src/exec/rtems/headers/tasks.h c/src/exec/rtems/headers/timer.h c/src/exec/rtems/include/rtems.h c/src/exec/rtems/include/rtems/rtems/asr.h c/src/exec/rtems/include/rtems/rtems/attr.h c/src/exec/rtems/include/rtems/rtems/clock.h c/src/exec/rtems/include/rtems/rtems/dpmem.h c/src/exec/rtems/include/rtems/rtems/event.h c/src/exec/rtems/include/rtems/rtems/eventmp.h c/src/exec/rtems/include/rtems/rtems/eventset.h c/src/exec/rtems/include/rtems/rtems/intr.h c/src/exec/rtems/include/rtems/rtems/message.h c/src/exec/rtems/include/rtems/rtems/modes.h c/src/exec/rtems/include/rtems/rtems/mp.h c/src/exec/rtems/include/rtems/rtems/msgmp.h c/src/exec/rtems/include/rtems/rtems/options.h c/src/exec/rtems/include/rtems/rtems/part.h c/src/exec/rtems/include/rtems/rtems/partmp.h c/src/exec/rtems/include/rtems/rtems/ratemon.h c/src/exec/rtems/include/rtems/rtems/region.h c/src/exec/rtems/include/rtems/rtems/regionmp.h c/src/exec/rtems/include/rtems/rtems/sem.h c/src/exec/rtems/include/rtems/rtems/semmp.h c/src/exec/rtems/include/rtems/rtems/signal.h c/src/exec/rtems/include/rtems/rtems/signalmp.h c/src/exec/rtems/include/rtems/rtems/status.h c/src/exec/rtems/include/rtems/rtems/taskmp.h c/src/exec/rtems/include/rtems/rtems/tasks.h c/src/exec/rtems/include/rtems/rtems/timer.h c/src/exec/rtems/inline/asr.inl c/src/exec/rtems/inline/attr.inl c/src/exec/rtems/inline/dpmem.inl c/src/exec/rtems/inline/event.inl c/src/exec/rtems/inline/eventset.inl c/src/exec/rtems/inline/message.inl c/src/exec/rtems/inline/modes.inl c/src/exec/rtems/inline/options.inl c/src/exec/rtems/inline/part.inl c/src/exec/rtems/inline/ratemon.inl c/src/exec/rtems/inline/region.inl c/src/exec/rtems/inline/rtems/rtems/asr.inl c/src/exec/rtems/inline/rtems/rtems/attr.inl c/src/exec/rtems/inline/rtems/rtems/dpmem.inl c/src/exec/rtems/inline/rtems/rtems/event.inl c/src/exec/rtems/inline/rtems/rtems/eventset.inl c/src/exec/rtems/inline/rtems/rtems/message.inl c/src/exec/rtems/inline/rtems/rtems/modes.inl c/src/exec/rtems/inline/rtems/rtems/options.inl c/src/exec/rtems/inline/rtems/rtems/part.inl c/src/exec/rtems/inline/rtems/rtems/ratemon.inl c/src/exec/rtems/inline/rtems/rtems/region.inl c/src/exec/rtems/inline/rtems/rtems/sem.inl c/src/exec/rtems/inline/rtems/rtems/status.inl c/src/exec/rtems/inline/rtems/rtems/tasks.inl c/src/exec/rtems/inline/rtems/rtems/timer.inl c/src/exec/rtems/inline/sem.inl c/src/exec/rtems/inline/status.inl c/src/exec/rtems/inline/tasks.inl c/src/exec/rtems/inline/timer.inl c/src/exec/rtems/macros/asr.inl c/src/exec/rtems/macros/attr.inl c/src/exec/rtems/macros/dpmem.inl c/src/exec/rtems/macros/event.inl c/src/exec/rtems/macros/eventset.inl c/src/exec/rtems/macros/message.inl c/src/exec/rtems/macros/modes.inl c/src/exec/rtems/macros/options.inl c/src/exec/rtems/macros/part.inl c/src/exec/rtems/macros/ratemon.inl c/src/exec/rtems/macros/region.inl c/src/exec/rtems/macros/rtems/rtems/asr.inl c/src/exec/rtems/macros/rtems/rtems/attr.inl c/src/exec/rtems/macros/rtems/rtems/dpmem.inl c/src/exec/rtems/macros/rtems/rtems/event.inl c/src/exec/rtems/macros/rtems/rtems/eventset.inl c/src/exec/rtems/macros/rtems/rtems/message.inl c/src/exec/rtems/macros/rtems/rtems/modes.inl c/src/exec/rtems/macros/rtems/rtems/options.inl c/src/exec/rtems/macros/rtems/rtems/part.inl c/src/exec/rtems/macros/rtems/rtems/ratemon.inl c/src/exec/rtems/macros/rtems/rtems/region.inl c/src/exec/rtems/macros/rtems/rtems/sem.inl c/src/exec/rtems/macros/rtems/rtems/status.inl c/src/exec/rtems/macros/rtems/rtems/tasks.inl c/src/exec/rtems/macros/rtems/rtems/timer.inl c/src/exec/rtems/macros/sem.inl c/src/exec/rtems/macros/status.inl c/src/exec/rtems/macros/tasks.inl c/src/exec/rtems/macros/timer.inl c/src/exec/rtems/optman/no-dpmem.c c/src/exec/rtems/optman/no-event.c c/src/exec/rtems/optman/no-mp.c c/src/exec/rtems/optman/no-msg.c c/src/exec/rtems/optman/no-part.c c/src/exec/rtems/optman/no-region.c c/src/exec/rtems/optman/no-rtmon.c c/src/exec/rtems/optman/no-sem.c c/src/exec/rtems/optman/no-signal.c c/src/exec/rtems/optman/no-timer.c c/src/exec/rtems/src/clock.c c/src/exec/rtems/src/dpmem.c c/src/exec/rtems/src/event.c c/src/exec/rtems/src/eventmp.c c/src/exec/rtems/src/intr.c c/src/exec/rtems/src/mp.c c/src/exec/rtems/src/msg.c c/src/exec/rtems/src/msgmp.c c/src/exec/rtems/src/part.c c/src/exec/rtems/src/partmp.c c/src/exec/rtems/src/ratemon.c c/src/exec/rtems/src/region.c c/src/exec/rtems/src/regionmp.c c/src/exec/rtems/src/rtclock.c c/src/exec/rtems/src/rtemstimer.c c/src/exec/rtems/src/sem.c c/src/exec/rtems/src/semmp.c c/src/exec/rtems/src/signal.c c/src/exec/rtems/src/signalmp.c c/src/exec/rtems/src/taskmp.c c/src/exec/rtems/src/tasks.c c/src/exec/rtems/src/timer.c c/src/exec/sapi/headers/config.h c/src/exec/sapi/headers/directives.h c/src/exec/sapi/headers/extension.h c/src/exec/sapi/headers/fatal.h c/src/exec/sapi/headers/init.h c/src/exec/sapi/headers/io.h c/src/exec/sapi/headers/mptables.h c/src/exec/sapi/headers/sptables.h c/src/exec/sapi/include/rtems/config.h c/src/exec/sapi/include/rtems/directives.h c/src/exec/sapi/include/rtems/extension.h c/src/exec/sapi/include/rtems/fatal.h c/src/exec/sapi/include/rtems/init.h c/src/exec/sapi/include/rtems/io.h c/src/exec/sapi/include/rtems/mptables.h c/src/exec/sapi/include/rtems/sptables.h c/src/exec/sapi/inline/extension.inl c/src/exec/sapi/inline/rtems/extension.inl c/src/exec/sapi/macros/extension.inl c/src/exec/sapi/macros/rtems/extension.inl c/src/exec/sapi/optman/no-ext.c c/src/exec/sapi/optman/no-io.c c/src/exec/sapi/src/debug.c c/src/exec/sapi/src/exinit.c c/src/exec/sapi/src/extension.c c/src/exec/sapi/src/fatal.c c/src/exec/sapi/src/io.c c/src/exec/score/cpu/hppa1.1/cpu.c c/src/exec/score/cpu/hppa1.1/cpu.h c/src/exec/score/cpu/hppa1.1/cpu_asm.h c/src/exec/score/cpu/hppa1.1/cpu_asm.s c/src/exec/score/cpu/hppa1.1/hppa.h c/src/exec/score/cpu/hppa1.1/rtems.s c/src/exec/score/cpu/i386/asm.h c/src/exec/score/cpu/i386/cpu.c c/src/exec/score/cpu/i386/cpu.h c/src/exec/score/cpu/i386/cpu_asm.s c/src/exec/score/cpu/i386/i386.h c/src/exec/score/cpu/i386/rtems.s c/src/exec/score/cpu/i960/asm.h c/src/exec/score/cpu/i960/cpu.c c/src/exec/score/cpu/i960/cpu.h c/src/exec/score/cpu/i960/cpu_asm.s c/src/exec/score/cpu/i960/i960.h c/src/exec/score/cpu/i960/rtems.s c/src/exec/score/cpu/m68k/asm.h c/src/exec/score/cpu/m68k/cpu.c c/src/exec/score/cpu/m68k/cpu.h c/src/exec/score/cpu/m68k/cpu_asm.s c/src/exec/score/cpu/m68k/m68k.h c/src/exec/score/cpu/m68k/rtems.s c/src/exec/score/cpu/no_cpu/asm.h c/src/exec/score/cpu/no_cpu/cpu.c c/src/exec/score/cpu/no_cpu/cpu.h c/src/exec/score/cpu/no_cpu/cpu_asm.c c/src/exec/score/cpu/no_cpu/cpu_asm.h c/src/exec/score/cpu/no_cpu/no_cpu.h c/src/exec/score/cpu/no_cpu/rtems.c c/src/exec/score/cpu/unix/cpu.c c/src/exec/score/cpu/unix/cpu.h c/src/exec/score/cpu/unix/unix.h c/src/exec/score/headers/address.h c/src/exec/score/headers/bitfield.h c/src/exec/score/headers/chain.h c/src/exec/score/headers/context.h c/src/exec/score/headers/copyrt.h c/src/exec/score/headers/debug.h c/src/exec/score/headers/heap.h c/src/exec/score/headers/isr.h c/src/exec/score/headers/mpci.h c/src/exec/score/headers/mppkt.h c/src/exec/score/headers/object.h c/src/exec/score/headers/objectmp.h c/src/exec/score/headers/priority.h c/src/exec/score/headers/stack.h c/src/exec/score/headers/states.h c/src/exec/score/headers/sysstate.h c/src/exec/score/headers/system.h c/src/exec/score/headers/thread.h c/src/exec/score/headers/threadmp.h c/src/exec/score/headers/threadq.h c/src/exec/score/headers/tod.h c/src/exec/score/headers/tqdata.h c/src/exec/score/headers/userext.h c/src/exec/score/headers/watchdog.h c/src/exec/score/headers/wkspace.h c/src/exec/score/include/rtems/debug.h c/src/exec/score/include/rtems/score/address.h c/src/exec/score/include/rtems/score/bitfield.h c/src/exec/score/include/rtems/score/chain.h c/src/exec/score/include/rtems/score/context.h c/src/exec/score/include/rtems/score/copyrt.h c/src/exec/score/include/rtems/score/heap.h c/src/exec/score/include/rtems/score/isr.h c/src/exec/score/include/rtems/score/mpci.h c/src/exec/score/include/rtems/score/mppkt.h c/src/exec/score/include/rtems/score/object.h c/src/exec/score/include/rtems/score/objectmp.h c/src/exec/score/include/rtems/score/priority.h c/src/exec/score/include/rtems/score/stack.h c/src/exec/score/include/rtems/score/states.h c/src/exec/score/include/rtems/score/sysstate.h c/src/exec/score/include/rtems/score/thread.h c/src/exec/score/include/rtems/score/threadmp.h c/src/exec/score/include/rtems/score/threadq.h c/src/exec/score/include/rtems/score/tod.h c/src/exec/score/include/rtems/score/tqdata.h c/src/exec/score/include/rtems/score/userext.h c/src/exec/score/include/rtems/score/watchdog.h c/src/exec/score/include/rtems/score/wkspace.h c/src/exec/score/include/rtems/system.h c/src/exec/score/inline/address.inl c/src/exec/score/inline/chain.inl c/src/exec/score/inline/heap.inl c/src/exec/score/inline/isr.inl c/src/exec/score/inline/mppkt.inl c/src/exec/score/inline/object.inl c/src/exec/score/inline/objectmp.inl c/src/exec/score/inline/priority.inl c/src/exec/score/inline/rtems/score/address.inl c/src/exec/score/inline/rtems/score/chain.inl c/src/exec/score/inline/rtems/score/heap.inl c/src/exec/score/inline/rtems/score/isr.inl c/src/exec/score/inline/rtems/score/mppkt.inl c/src/exec/score/inline/rtems/score/object.inl c/src/exec/score/inline/rtems/score/objectmp.inl c/src/exec/score/inline/rtems/score/priority.inl c/src/exec/score/inline/rtems/score/stack.inl c/src/exec/score/inline/rtems/score/states.inl c/src/exec/score/inline/rtems/score/sysstate.inl c/src/exec/score/inline/rtems/score/thread.inl c/src/exec/score/inline/rtems/score/threadmp.inl c/src/exec/score/inline/rtems/score/tod.inl c/src/exec/score/inline/rtems/score/tqdata.inl c/src/exec/score/inline/rtems/score/userext.inl c/src/exec/score/inline/rtems/score/watchdog.inl c/src/exec/score/inline/rtems/score/wkspace.inl c/src/exec/score/inline/stack.inl c/src/exec/score/inline/states.inl c/src/exec/score/inline/sysstate.inl c/src/exec/score/inline/thread.inl c/src/exec/score/inline/threadmp.inl c/src/exec/score/inline/tod.inl c/src/exec/score/inline/tqdata.inl c/src/exec/score/inline/userext.inl c/src/exec/score/inline/watchdog.inl c/src/exec/score/inline/wkspace.inl c/src/exec/score/macros/README c/src/exec/score/macros/address.inl c/src/exec/score/macros/chain.inl c/src/exec/score/macros/heap.inl c/src/exec/score/macros/isr.inl c/src/exec/score/macros/mppkt.inl c/src/exec/score/macros/object.inl c/src/exec/score/macros/objectmp.inl c/src/exec/score/macros/priority.inl c/src/exec/score/macros/rtems/score/README c/src/exec/score/macros/rtems/score/address.inl c/src/exec/score/macros/rtems/score/chain.inl c/src/exec/score/macros/rtems/score/heap.inl c/src/exec/score/macros/rtems/score/isr.inl c/src/exec/score/macros/rtems/score/mppkt.inl c/src/exec/score/macros/rtems/score/object.inl c/src/exec/score/macros/rtems/score/objectmp.inl c/src/exec/score/macros/rtems/score/priority.inl c/src/exec/score/macros/rtems/score/stack.inl c/src/exec/score/macros/rtems/score/states.inl c/src/exec/score/macros/rtems/score/sysstate.inl c/src/exec/score/macros/rtems/score/thread.inl c/src/exec/score/macros/rtems/score/threadmp.inl c/src/exec/score/macros/rtems/score/tod.inl c/src/exec/score/macros/rtems/score/tqdata.inl c/src/exec/score/macros/rtems/score/userext.inl c/src/exec/score/macros/rtems/score/watchdog.inl c/src/exec/score/macros/rtems/score/wkspace.inl c/src/exec/score/macros/stack.inl c/src/exec/score/macros/states.inl c/src/exec/score/macros/sysstate.inl c/src/exec/score/macros/thread.inl c/src/exec/score/macros/threadmp.inl c/src/exec/score/macros/tod.inl c/src/exec/score/macros/tqdata.inl c/src/exec/score/macros/userext.inl c/src/exec/score/macros/watchdog.inl c/src/exec/score/macros/wkspace.inl c/src/exec/score/src/chain.c c/src/exec/score/src/coretod.c c/src/exec/score/src/heap.c c/src/exec/score/src/mpci.c c/src/exec/score/src/object.c c/src/exec/score/src/objectmp.c c/src/exec/score/src/thread.c c/src/exec/score/src/threadmp.c c/src/exec/score/src/threadq.c c/src/exec/score/src/tod.c c/src/exec/score/src/watchdog.c c/src/exec/score/src/wkspace.c c/src/exec/score/tools/hppa1.1/genoffsets.c c/src/lib/include/clockdrv.h c/src/lib/include/console.h c/src/lib/include/iosupp.h c/src/lib/include/rtems/libcsupport.h c/src/lib/include/spurious.h c/src/lib/include/timerdrv.h c/src/lib/include/vmeintr.h c/src/lib/libbsp/README c/src/lib/libbsp/hppa1.1/simhppa/include/bsp.h c/src/lib/libbsp/hppa1.1/simhppa/include/coverhd.h c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/README c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/addrconv.c c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/getcfg.c c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/intr.c c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/lock.c c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/mpisr.c c/src/lib/libbsp/hppa1.1/simhppa/startup/bspclean.c c/src/lib/libbsp/hppa1.1/simhppa/startup/bspstart.c c/src/lib/libbsp/hppa1.1/simhppa/startup/setvec.c c/src/lib/libbsp/hppa1.1/simhppa/tools/print_dump.c c/src/lib/libbsp/i386/force386/clock/ckinit.c c/src/lib/libbsp/i386/force386/console/console.c c/src/lib/libbsp/i386/force386/include/bsp.h c/src/lib/libbsp/i386/force386/include/coverhd.h c/src/lib/libbsp/i386/force386/shmsupp/addrconv.c c/src/lib/libbsp/i386/force386/shmsupp/getcfg.c c/src/lib/libbsp/i386/force386/shmsupp/lock.c c/src/lib/libbsp/i386/force386/shmsupp/mpisr.c c/src/lib/libbsp/i386/force386/startup/bspstart.c c/src/lib/libbsp/i386/force386/startup/exit.c c/src/lib/libbsp/i386/force386/startup/ldsegs.s c/src/lib/libbsp/i386/force386/startup/linkcmds c/src/lib/libbsp/i386/force386/startup/setvec.c c/src/lib/libbsp/i386/force386/timer/timer.c c/src/lib/libbsp/i386/force386/timer/timerisr.s c/src/lib/libbsp/i960/cvme961/clock/ckinit.c c/src/lib/libbsp/i960/cvme961/console/console.c c/src/lib/libbsp/i960/cvme961/include/bsp.h c/src/lib/libbsp/i960/cvme961/include/coverhd.h c/src/lib/libbsp/i960/cvme961/shmsupp/addrconv.c c/src/lib/libbsp/i960/cvme961/shmsupp/getcfg.c c/src/lib/libbsp/i960/cvme961/shmsupp/lock.c c/src/lib/libbsp/i960/cvme961/shmsupp/mpisr.c c/src/lib/libbsp/i960/cvme961/startup/bspclean.c c/src/lib/libbsp/i960/cvme961/startup/bspstart.c c/src/lib/libbsp/i960/cvme961/startup/exit.c c/src/lib/libbsp/i960/cvme961/startup/linkcmds c/src/lib/libbsp/i960/cvme961/startup/setvec.c c/src/lib/libbsp/i960/cvme961/timer/timer.c c/src/lib/libbsp/i960/cvme961/timer/timerisr.s c/src/lib/libbsp/m68k/dmv152/clock/ckinit.c c/src/lib/libbsp/m68k/dmv152/console/console.c c/src/lib/libbsp/m68k/dmv152/include/bsp.h c/src/lib/libbsp/m68k/dmv152/include/coverhd.h c/src/lib/libbsp/m68k/dmv152/spurious/spinit.c c/src/lib/libbsp/m68k/dmv152/startup/bspstart.c c/src/lib/libbsp/m68k/dmv152/startup/linkcmds c/src/lib/libbsp/m68k/dmv152/startup/vmeintr.c c/src/lib/libbsp/m68k/dmv152/timer/timer.c c/src/lib/libbsp/m68k/dmv152/timer/timerisr.s c/src/lib/libbsp/m68k/idp/README c/src/lib/libbsp/m68k/idp/clock/ckinit.c c/src/lib/libbsp/m68k/idp/console/console.c c/src/lib/libbsp/m68k/idp/console/duart.c c/src/lib/libbsp/m68k/idp/console/leds.c c/src/lib/libbsp/m68k/idp/console/mc68ec.c c/src/lib/libbsp/m68k/idp/include/README c/src/lib/libbsp/m68k/idp/include/bsp.h c/src/lib/libbsp/m68k/idp/include/coverhd.h c/src/lib/libbsp/m68k/idp/include/leds.h c/src/lib/libbsp/m68k/idp/startup/bspstart.c c/src/lib/libbsp/m68k/idp/startup/linkcmds c/src/lib/libbsp/m68k/idp/timer/timer.c c/src/lib/libbsp/m68k/idp/timer/timerisr.s c/src/lib/libbsp/m68k/mvme136/clock/ckinit.c c/src/lib/libbsp/m68k/mvme136/console/console.c c/src/lib/libbsp/m68k/mvme136/include/bsp.h c/src/lib/libbsp/m68k/mvme136/include/coverhd.h c/src/lib/libbsp/m68k/mvme136/shmsupp/addrconv.c c/src/lib/libbsp/m68k/mvme136/shmsupp/getcfg.c c/src/lib/libbsp/m68k/mvme136/shmsupp/lock.c c/src/lib/libbsp/m68k/mvme136/shmsupp/mpisr.c c/src/lib/libbsp/m68k/mvme136/startup/bspclean.c c/src/lib/libbsp/m68k/mvme136/startup/bspstart.c c/src/lib/libbsp/m68k/mvme136/startup/linkcmds c/src/lib/libbsp/m68k/mvme136/timer/timer.c c/src/lib/libbsp/m68k/mvme136/timer/timerisr.s c/src/lib/libbsp/m68k/mvme162/README c/src/lib/libbsp/m68k/mvme162/clock/ckinit.c c/src/lib/libbsp/m68k/mvme162/console/console.c c/src/lib/libbsp/m68k/mvme162/include/bsp.h c/src/lib/libbsp/m68k/mvme162/include/coverhd.h c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c c/src/lib/libbsp/m68k/mvme162/startup/linkcmds c/src/lib/libbsp/m68k/mvme162/timer/timer.c c/src/lib/libbsp/m68k/mvme162/timer/timerisr.s c/src/lib/libbsp/m68k/mvme162/tools/sload.c c/src/lib/libbsp/no_cpu/no_bsp/README c/src/lib/libbsp/no_cpu/no_bsp/clock/ckinit.c c/src/lib/libbsp/no_cpu/no_bsp/console/console.c c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h c/src/lib/libbsp/no_cpu/no_bsp/include/coverhd.h c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/addrconv.c c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/getcfg.c c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/lock.c c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/mpisr.c c/src/lib/libbsp/no_cpu/no_bsp/startup/bspclean.c c/src/lib/libbsp/no_cpu/no_bsp/startup/bspstart.c c/src/lib/libbsp/no_cpu/no_bsp/startup/linkcmds c/src/lib/libbsp/no_cpu/no_bsp/startup/main.c c/src/lib/libbsp/no_cpu/no_bsp/startup/setvec.c c/src/lib/libbsp/no_cpu/no_bsp/timer/timer.c c/src/lib/libbsp/no_cpu/no_bsp/timer/timerisr.c c/src/lib/libbsp/shmdr/README c/src/lib/libbsp/shmdr/addlq.c c/src/lib/libbsp/shmdr/cnvpkt.c c/src/lib/libbsp/shmdr/dump.c c/src/lib/libbsp/shmdr/fatal.c c/src/lib/libbsp/shmdr/getlq.c c/src/lib/libbsp/shmdr/getpkt.c c/src/lib/libbsp/shmdr/init.c c/src/lib/libbsp/shmdr/initlq.c c/src/lib/libbsp/shmdr/intr.c c/src/lib/libbsp/shmdr/mpci.h c/src/lib/libbsp/shmdr/mpisr.c c/src/lib/libbsp/shmdr/poll.c c/src/lib/libbsp/shmdr/receive.c c/src/lib/libbsp/shmdr/retpkt.c c/src/lib/libbsp/shmdr/send.c c/src/lib/libbsp/shmdr/setckvec.c c/src/lib/libbsp/shmdr/shm.h c/src/lib/libbsp/shmdr/shm_driver.h c/src/lib/libc/README c/src/lib/libc/__brk.c c/src/lib/libc/__gettod.c c/src/lib/libc/__times.c c/src/lib/libc/internal.h c/src/lib/libc/libcsupport.h c/src/lib/libc/malloc.c c/src/lib/libc/newlibc.c c/src/lib/libc/no_libc.c c/src/lib/libc/support.c c/src/lib/libc/syscalls.c c/src/lib/libc/unixlibc.c c/src/lib/libcpu/README c/src/lib/libcpu/hppa1.1/clock/clock.c c/src/lib/libcpu/hppa1.1/runway/runway.h c/src/lib/libcpu/hppa1.1/semaphore/semaphore.c c/src/lib/libcpu/hppa1.1/semaphore/semaphore.h c/src/lib/libcpu/hppa1.1/timer/timer.c c/src/lib/libmisc/README c/src/lib/libmisc/monitor/README c/src/lib/libmisc/monitor/mon-monitor.c c/src/lib/libmisc/monitor/mon-symbols.c c/src/lib/libmisc/monitor/monitor.h c/src/lib/libmisc/monitor/symbols.h c/src/lib/libmisc/stackchk/README c/src/lib/libmisc/stackchk/check.c c/src/lib/libmisc/stackchk/internal.h c/src/lib/libmisc/stackchk/stackchk.h c/src/lib/start/README c/src/lib/start/i960/start.s c/src/lib/start/m68k/start.s c/src/libchip/shmdr/README c/src/libchip/shmdr/addlq.c c/src/libchip/shmdr/cnvpkt.c c/src/libchip/shmdr/dump.c c/src/libchip/shmdr/fatal.c c/src/libchip/shmdr/getlq.c c/src/libchip/shmdr/getpkt.c c/src/libchip/shmdr/init.c c/src/libchip/shmdr/initlq.c c/src/libchip/shmdr/intr.c c/src/libchip/shmdr/mpci.h c/src/libchip/shmdr/mpisr.c c/src/libchip/shmdr/poll.c c/src/libchip/shmdr/receive.c c/src/libchip/shmdr/retpkt.c c/src/libchip/shmdr/send.c c/src/libchip/shmdr/setckvec.c c/src/libchip/shmdr/shm_driver.h c/src/libmisc/README c/src/libmisc/monitor/README c/src/libmisc/monitor/mon-monitor.c c/src/libmisc/monitor/mon-symbols.c c/src/libmisc/monitor/monitor.h c/src/libmisc/monitor/symbols.h c/src/libmisc/stackchk/README c/src/libmisc/stackchk/check.c c/src/libmisc/stackchk/internal.h c/src/libmisc/stackchk/stackchk.h c/src/optman/rtems/no-dpmem.c c/src/optman/rtems/no-event.c c/src/optman/rtems/no-mp.c c/src/optman/rtems/no-msg.c c/src/optman/rtems/no-part.c c/src/optman/rtems/no-region.c c/src/optman/rtems/no-rtmon.c c/src/optman/rtems/no-sem.c c/src/optman/rtems/no-signal.c c/src/optman/rtems/no-timer.c c/src/optman/sapi/no-ext.c c/src/optman/sapi/no-io.c c/src/tests/README c/src/tests/libtests/README c/src/tests/libtests/stackchk/blow.c c/src/tests/libtests/stackchk/init.c c/src/tests/libtests/stackchk/stackchk.scn c/src/tests/libtests/stackchk/task1.c c/src/tests/mptests/README c/src/tests/mptests/mp01/init.c c/src/tests/mptests/mp01/node1/mp01.doc c/src/tests/mptests/mp01/node1/mp01.scn c/src/tests/mptests/mp01/node2/mp01.doc c/src/tests/mptests/mp01/node2/mp01.scn c/src/tests/mptests/mp01/system.h c/src/tests/mptests/mp01/task1.c c/src/tests/mptests/mp02/init.c c/src/tests/mptests/mp02/node1/mp02.doc c/src/tests/mptests/mp02/node1/mp02.scn c/src/tests/mptests/mp02/node2/mp02.doc c/src/tests/mptests/mp02/node2/mp02.scn c/src/tests/mptests/mp02/system.h c/src/tests/mptests/mp02/task1.c c/src/tests/mptests/mp03/delay.c c/src/tests/mptests/mp03/init.c c/src/tests/mptests/mp03/node1/mp03.doc c/src/tests/mptests/mp03/node1/mp03.scn c/src/tests/mptests/mp03/node2/mp03.doc c/src/tests/mptests/mp03/node2/mp03.scn c/src/tests/mptests/mp03/system.h c/src/tests/mptests/mp03/task1.c c/src/tests/mptests/mp04/init.c c/src/tests/mptests/mp04/node1/mp04.doc c/src/tests/mptests/mp04/node1/mp04.scn c/src/tests/mptests/mp04/node2/mp04.doc c/src/tests/mptests/mp04/node2/mp04.scn c/src/tests/mptests/mp04/system.h c/src/tests/mptests/mp04/task1.c c/src/tests/mptests/mp05/asr.c c/src/tests/mptests/mp05/init.c c/src/tests/mptests/mp05/node1/mp05.doc c/src/tests/mptests/mp05/node1/mp05.scn c/src/tests/mptests/mp05/node2/mp05.doc c/src/tests/mptests/mp05/node2/mp05.scn c/src/tests/mptests/mp05/system.h c/src/tests/mptests/mp05/task1.c c/src/tests/mptests/mp06/init.c c/src/tests/mptests/mp06/node1/mp06.doc c/src/tests/mptests/mp06/node1/mp06.scn c/src/tests/mptests/mp06/node2/mp06.doc c/src/tests/mptests/mp06/node2/mp06.scn c/src/tests/mptests/mp06/system.h c/src/tests/mptests/mp06/task1.c c/src/tests/mptests/mp07/init.c c/src/tests/mptests/mp07/node1/mp07.doc c/src/tests/mptests/mp07/node1/mp07.scn c/src/tests/mptests/mp07/node2/mp07.doc c/src/tests/mptests/mp07/node2/mp07.scn c/src/tests/mptests/mp07/system.h c/src/tests/mptests/mp07/task1.c c/src/tests/mptests/mp08/init.c c/src/tests/mptests/mp08/node1/mp08.doc c/src/tests/mptests/mp08/node1/mp08.scn c/src/tests/mptests/mp08/node2/mp08.doc c/src/tests/mptests/mp08/node2/mp08.scn c/src/tests/mptests/mp08/system.h c/src/tests/mptests/mp08/task1.c c/src/tests/mptests/mp09/init.c c/src/tests/mptests/mp09/node1/mp09.doc c/src/tests/mptests/mp09/node1/mp09.scn c/src/tests/mptests/mp09/node2/mp09.doc c/src/tests/mptests/mp09/node2/mp09.scn c/src/tests/mptests/mp09/recvmsg.c c/src/tests/mptests/mp09/sendmsg.c c/src/tests/mptests/mp09/system.h c/src/tests/mptests/mp09/task1.c c/src/tests/mptests/mp10/init.c c/src/tests/mptests/mp10/node1/mp10.doc c/src/tests/mptests/mp10/node1/mp10.scn c/src/tests/mptests/mp10/node2/mp10.doc c/src/tests/mptests/mp10/node2/mp10.scn c/src/tests/mptests/mp10/system.h c/src/tests/mptests/mp10/task1.c c/src/tests/mptests/mp10/task2.c c/src/tests/mptests/mp10/task3.c c/src/tests/mptests/mp11/init.c c/src/tests/mptests/mp11/node1/mp11.doc c/src/tests/mptests/mp11/node1/mp11.scn c/src/tests/mptests/mp11/node2/mp11.doc c/src/tests/mptests/mp11/node2/mp11.scn c/src/tests/mptests/mp11/system.h c/src/tests/mptests/mp12/init.c c/src/tests/mptests/mp12/node1/mp12.doc c/src/tests/mptests/mp12/node1/mp12.scn c/src/tests/mptests/mp12/node2/mp12.doc c/src/tests/mptests/mp12/node2/mp12.scn c/src/tests/mptests/mp12/system.h c/src/tests/mptests/mp13/init.c c/src/tests/mptests/mp13/node1/mp13.doc c/src/tests/mptests/mp13/node1/mp13.scn c/src/tests/mptests/mp13/node2/mp13.doc c/src/tests/mptests/mp13/node2/mp13.scn c/src/tests/mptests/mp13/system.h c/src/tests/mptests/mp13/task1.c c/src/tests/mptests/mp13/task2.c c/src/tests/mptests/mp14/delay.c c/src/tests/mptests/mp14/evtask1.c c/src/tests/mptests/mp14/evtmtask.c c/src/tests/mptests/mp14/exit.c c/src/tests/mptests/mp14/init.c c/src/tests/mptests/mp14/msgtask1.c c/src/tests/mptests/mp14/node1/mp14.doc c/src/tests/mptests/mp14/node1/mp14.scn c/src/tests/mptests/mp14/node2/mp14.doc c/src/tests/mptests/mp14/node2/mp14.scn c/src/tests/mptests/mp14/pttask1.c c/src/tests/mptests/mp14/smtask1.c c/src/tests/mptests/mp14/system.h c/src/tests/samples/README c/src/tests/samples/base_mp/apptask.c c/src/tests/samples/base_mp/init.c c/src/tests/samples/base_mp/node1/base_mp.doc c/src/tests/samples/base_mp/node1/base_mp.scn c/src/tests/samples/base_mp/node2/base_mp.doc c/src/tests/samples/base_mp/node2/base_mp.scn c/src/tests/samples/base_mp/system.h c/src/tests/samples/base_sp/apptask.c c/src/tests/samples/base_sp/base_sp.doc c/src/tests/samples/base_sp/base_sp.scn c/src/tests/samples/base_sp/init.c c/src/tests/samples/base_sp/system.h c/src/tests/samples/cdtest/cdtest.scn c/src/tests/samples/cdtest/init.c c/src/tests/samples/cdtest/main.cc c/src/tests/samples/cdtest/system.h c/src/tests/samples/hello/hello.doc c/src/tests/samples/hello/hello.scn c/src/tests/samples/hello/init.c c/src/tests/samples/hello/system.h c/src/tests/samples/paranoia/init.c c/src/tests/samples/paranoia/paranoia.c c/src/tests/samples/paranoia/paranoia.doc c/src/tests/samples/paranoia/system.h c/src/tests/samples/ticker/init.c c/src/tests/samples/ticker/system.h c/src/tests/samples/ticker/tasks.c c/src/tests/samples/ticker/ticker.doc c/src/tests/samples/ticker/ticker.scn c/src/tests/sptests/README c/src/tests/sptests/sp01/init.c c/src/tests/sptests/sp01/sp01.doc c/src/tests/sptests/sp01/sp01.scn c/src/tests/sptests/sp01/system.h c/src/tests/sptests/sp01/task1.c c/src/tests/sptests/sp02/init.c c/src/tests/sptests/sp02/preempt.c c/src/tests/sptests/sp02/sp02.doc c/src/tests/sptests/sp02/sp02.scn c/src/tests/sptests/sp02/system.h c/src/tests/sptests/sp02/task1.c c/src/tests/sptests/sp02/task2.c c/src/tests/sptests/sp02/task3.c c/src/tests/sptests/sp03/init.c c/src/tests/sptests/sp03/sp03.doc c/src/tests/sptests/sp03/sp03.scn c/src/tests/sptests/sp03/system.h c/src/tests/sptests/sp03/task1.c c/src/tests/sptests/sp03/task2.c c/src/tests/sptests/sp04/init.c c/src/tests/sptests/sp04/sp04.doc c/src/tests/sptests/sp04/sp04.scn c/src/tests/sptests/sp04/system.h c/src/tests/sptests/sp04/task1.c c/src/tests/sptests/sp04/task2.c c/src/tests/sptests/sp04/task3.c c/src/tests/sptests/sp04/tswitch.c c/src/tests/sptests/sp05/init.c c/src/tests/sptests/sp05/sp05.doc c/src/tests/sptests/sp05/sp05.scn c/src/tests/sptests/sp05/system.h c/src/tests/sptests/sp05/task1.c c/src/tests/sptests/sp05/task2.c c/src/tests/sptests/sp05/task3.c c/src/tests/sptests/sp06/init.c c/src/tests/sptests/sp06/sp06.doc c/src/tests/sptests/sp06/sp06.scn c/src/tests/sptests/sp06/system.h c/src/tests/sptests/sp06/task1.c c/src/tests/sptests/sp06/task2.c c/src/tests/sptests/sp06/task3.c c/src/tests/sptests/sp07/init.c c/src/tests/sptests/sp07/sp07.doc c/src/tests/sptests/sp07/sp07.scn c/src/tests/sptests/sp07/system.h c/src/tests/sptests/sp07/task1.c c/src/tests/sptests/sp07/task2.c c/src/tests/sptests/sp07/task3.c c/src/tests/sptests/sp07/task4.c c/src/tests/sptests/sp07/taskexit.c c/src/tests/sptests/sp07/tcreate.c c/src/tests/sptests/sp07/tdelete.c c/src/tests/sptests/sp07/trestart.c c/src/tests/sptests/sp07/tstart.c c/src/tests/sptests/sp08/init.c c/src/tests/sptests/sp08/sp08.doc c/src/tests/sptests/sp08/sp08.scn c/src/tests/sptests/sp08/system.h c/src/tests/sptests/sp08/task1.c c/src/tests/sptests/sp09/delay.c c/src/tests/sptests/sp09/init.c c/src/tests/sptests/sp09/isr.c c/src/tests/sptests/sp09/screen01.c c/src/tests/sptests/sp09/screen02.c c/src/tests/sptests/sp09/screen03.c c/src/tests/sptests/sp09/screen04.c c/src/tests/sptests/sp09/screen05.c c/src/tests/sptests/sp09/screen06.c c/src/tests/sptests/sp09/screen07.c c/src/tests/sptests/sp09/screen08.c c/src/tests/sptests/sp09/screen09.c c/src/tests/sptests/sp09/screen10.c c/src/tests/sptests/sp09/screen11.c c/src/tests/sptests/sp09/screen12.c c/src/tests/sptests/sp09/screen13.c c/src/tests/sptests/sp09/screen14.c c/src/tests/sptests/sp09/sp09.doc c/src/tests/sptests/sp09/sp09.scn c/src/tests/sptests/sp09/system.h c/src/tests/sptests/sp09/task1.c c/src/tests/sptests/sp09/task2.c c/src/tests/sptests/sp09/task3.c c/src/tests/sptests/sp09/task4.c c/src/tests/sptests/sp11/init.c c/src/tests/sptests/sp11/sp11.doc c/src/tests/sptests/sp11/sp11.scn c/src/tests/sptests/sp11/system.h c/src/tests/sptests/sp11/task1.c c/src/tests/sptests/sp11/task2.c c/src/tests/sptests/sp11/timer.c c/src/tests/sptests/sp12/init.c c/src/tests/sptests/sp12/pridrv.c c/src/tests/sptests/sp12/pritask.c c/src/tests/sptests/sp12/sp12.doc c/src/tests/sptests/sp12/sp12.scn c/src/tests/sptests/sp12/system.h c/src/tests/sptests/sp12/task1.c c/src/tests/sptests/sp12/task2.c c/src/tests/sptests/sp12/task3.c c/src/tests/sptests/sp12/task4.c c/src/tests/sptests/sp12/task5.c c/src/tests/sptests/sp13/fillbuff.c c/src/tests/sptests/sp13/init.c c/src/tests/sptests/sp13/putbuff.c c/src/tests/sptests/sp13/sp13.doc c/src/tests/sptests/sp13/sp13.scn c/src/tests/sptests/sp13/system.h c/src/tests/sptests/sp13/task1.c c/src/tests/sptests/sp13/task2.c c/src/tests/sptests/sp13/task3.c c/src/tests/sptests/sp14/asr.c c/src/tests/sptests/sp14/init.c c/src/tests/sptests/sp14/sp14.doc c/src/tests/sptests/sp14/sp14.scn c/src/tests/sptests/sp14/system.h c/src/tests/sptests/sp14/task1.c c/src/tests/sptests/sp14/task2.c c/src/tests/sptests/sp15/init.c c/src/tests/sptests/sp15/sp15.doc c/src/tests/sptests/sp15/sp15.scn c/src/tests/sptests/sp15/system.h c/src/tests/sptests/sp15/task1.c c/src/tests/sptests/sp16/init.c c/src/tests/sptests/sp16/sp16.doc c/src/tests/sptests/sp16/sp16.scn c/src/tests/sptests/sp16/system.h c/src/tests/sptests/sp16/task1.c c/src/tests/sptests/sp16/task2.c c/src/tests/sptests/sp16/task3.c c/src/tests/sptests/sp16/task4.c c/src/tests/sptests/sp16/task5.c c/src/tests/sptests/sp17/asr.c c/src/tests/sptests/sp17/init.c c/src/tests/sptests/sp17/sp17.doc c/src/tests/sptests/sp17/sp17.scn c/src/tests/sptests/sp17/system.h c/src/tests/sptests/sp17/task1.c c/src/tests/sptests/sp17/task2.c c/src/tests/sptests/sp19/first.c c/src/tests/sptests/sp19/fptask.c c/src/tests/sptests/sp19/fptest.h c/src/tests/sptests/sp19/init.c c/src/tests/sptests/sp19/inttest.h c/src/tests/sptests/sp19/sp19.doc c/src/tests/sptests/sp19/sp19.scn c/src/tests/sptests/sp19/system.h c/src/tests/sptests/sp19/task1.c c/src/tests/sptests/sp20/getall.c c/src/tests/sptests/sp20/init.c c/src/tests/sptests/sp20/sp20.doc c/src/tests/sptests/sp20/sp20.scn c/src/tests/sptests/sp20/system.h c/src/tests/sptests/sp20/task1.c c/src/tests/sptests/sp21/init.c c/src/tests/sptests/sp21/sp21.doc c/src/tests/sptests/sp21/sp21.scn c/src/tests/sptests/sp21/system.h c/src/tests/sptests/sp21/task1.c c/src/tests/sptests/sp22/delay.c c/src/tests/sptests/sp22/init.c c/src/tests/sptests/sp22/prtime.c c/src/tests/sptests/sp22/sp22.doc c/src/tests/sptests/sp22/sp22.scn c/src/tests/sptests/sp22/system.h c/src/tests/sptests/sp22/task1.c c/src/tests/sptests/sp23/init.c c/src/tests/sptests/sp23/sp23.doc c/src/tests/sptests/sp23/sp23.scn c/src/tests/sptests/sp23/system.h c/src/tests/sptests/sp23/task1.c c/src/tests/sptests/sp24/init.c c/src/tests/sptests/sp24/resume.c c/src/tests/sptests/sp24/sp24.doc c/src/tests/sptests/sp24/system.h c/src/tests/sptests/sp24/task1.c c/src/tests/sptests/sp25/init.c c/src/tests/sptests/sp25/sp25.doc c/src/tests/sptests/sp25/sp25.scn c/src/tests/sptests/sp25/system.h c/src/tests/sptests/sp25/task1.c c/src/tests/sptests/spfatal/fatal.c c/src/tests/sptests/spfatal/init.c c/src/tests/sptests/spfatal/puterr.c c/src/tests/sptests/spfatal/spfatal.doc c/src/tests/sptests/spfatal/spfatal.scn c/src/tests/sptests/spfatal/system.h c/src/tests/sptests/spfatal/task1.c c/src/tests/sptests/spsize/getint.c c/src/tests/sptests/spsize/init.c c/src/tests/sptests/spsize/size.c c/src/tests/support/include/tmacros.h c/src/tests/support/stubdr/close.c c/src/tests/support/stubdr/cntrl.c c/src/tests/support/stubdr/init.c c/src/tests/support/stubdr/open.c c/src/tests/support/stubdr/read.c c/src/tests/support/stubdr/stubdrv.h c/src/tests/support/stubdr/write.c c/src/tests/tmtests/README c/src/tests/tmtests/include/timesys.h c/src/tests/tmtests/tm01/system.h c/src/tests/tmtests/tm01/task1.c c/src/tests/tmtests/tm01/tm01.doc c/src/tests/tmtests/tm02/system.h c/src/tests/tmtests/tm02/task1.c c/src/tests/tmtests/tm02/tm02.doc c/src/tests/tmtests/tm03/system.h c/src/tests/tmtests/tm03/task1.c c/src/tests/tmtests/tm03/tm03.doc c/src/tests/tmtests/tm04/system.h c/src/tests/tmtests/tm04/task1.c c/src/tests/tmtests/tm04/tm04.doc c/src/tests/tmtests/tm05/system.h c/src/tests/tmtests/tm05/task1.c c/src/tests/tmtests/tm05/tm05.doc c/src/tests/tmtests/tm06/system.h c/src/tests/tmtests/tm06/task1.c c/src/tests/tmtests/tm06/tm06.doc c/src/tests/tmtests/tm07/system.h c/src/tests/tmtests/tm07/task1.c c/src/tests/tmtests/tm07/tm07.doc c/src/tests/tmtests/tm08/system.h c/src/tests/tmtests/tm08/task1.c c/src/tests/tmtests/tm08/tm08.doc c/src/tests/tmtests/tm09/system.h c/src/tests/tmtests/tm09/task1.c c/src/tests/tmtests/tm09/tm09.doc c/src/tests/tmtests/tm10/system.h c/src/tests/tmtests/tm10/task1.c c/src/tests/tmtests/tm10/tm10.doc c/src/tests/tmtests/tm11/system.h c/src/tests/tmtests/tm11/task1.c c/src/tests/tmtests/tm11/tm11.doc c/src/tests/tmtests/tm12/system.h c/src/tests/tmtests/tm12/task1.c c/src/tests/tmtests/tm12/tm12.doc c/src/tests/tmtests/tm13/system.h c/src/tests/tmtests/tm13/task1.c c/src/tests/tmtests/tm13/tm13.doc c/src/tests/tmtests/tm14/system.h c/src/tests/tmtests/tm14/task1.c c/src/tests/tmtests/tm14/tm14.doc c/src/tests/tmtests/tm15/system.h c/src/tests/tmtests/tm15/task1.c c/src/tests/tmtests/tm15/tm15.doc c/src/tests/tmtests/tm16/system.h c/src/tests/tmtests/tm16/task1.c c/src/tests/tmtests/tm16/tm16.doc c/src/tests/tmtests/tm17/system.h c/src/tests/tmtests/tm17/task1.c c/src/tests/tmtests/tm17/tm17.doc c/src/tests/tmtests/tm18/system.h c/src/tests/tmtests/tm18/task1.c c/src/tests/tmtests/tm18/tm18.doc c/src/tests/tmtests/tm19/system.h c/src/tests/tmtests/tm19/task1.c c/src/tests/tmtests/tm19/tm19.doc c/src/tests/tmtests/tm20/system.h c/src/tests/tmtests/tm20/task1.c c/src/tests/tmtests/tm20/tm20.doc c/src/tests/tmtests/tm21/system.h c/src/tests/tmtests/tm21/task1.c c/src/tests/tmtests/tm21/tm21.doc c/src/tests/tmtests/tm22/system.h c/src/tests/tmtests/tm22/task1.c c/src/tests/tmtests/tm22/tm22.doc c/src/tests/tmtests/tm23/system.h c/src/tests/tmtests/tm23/task1.c c/src/tests/tmtests/tm23/tm23.doc c/src/tests/tmtests/tm24/system.h c/src/tests/tmtests/tm24/task1.c c/src/tests/tmtests/tm24/tm24.doc c/src/tests/tmtests/tm25/system.h c/src/tests/tmtests/tm25/task1.c c/src/tests/tmtests/tm25/tm25.doc c/src/tests/tmtests/tm26/fptest.h c/src/tests/tmtests/tm26/system.h c/src/tests/tmtests/tm26/task1.c c/src/tests/tmtests/tm26/tm26.doc c/src/tests/tmtests/tm27/system.h c/src/tests/tmtests/tm27/task1.c c/src/tests/tmtests/tm27/tm27.doc c/src/tests/tmtests/tm28/system.h c/src/tests/tmtests/tm28/task1.c c/src/tests/tmtests/tm28/tm28.doc c/src/tests/tmtests/tm29/system.h c/src/tests/tmtests/tm29/task1.c c/src/tests/tmtests/tm29/tm29.doc c/src/tests/tmtests/tmck/system.h c/src/tests/tmtests/tmck/task1.c c/src/tests/tmtests/tmck/tmck.doc c/src/tests/tmtests/tmoverhd/dumrtems.h c/src/tests/tmtests/tmoverhd/empty.c c/src/tests/tmtests/tmoverhd/system.h c/src/tests/tmtests/tmoverhd/testtask.c c/src/tests/tmtests/tmoverhd/tmoverhd.doc c/src/tests/tools/generic/difftest c/update-tools/310_to_320_list c/update-tools/README cpukit/libcsupport/include/clockdrv.h cpukit/libcsupport/include/console.h cpukit/libcsupport/include/iosupp.h cpukit/libcsupport/include/rtems/libcsupport.h cpukit/libcsupport/include/spurious.h cpukit/libcsupport/include/timerdrv.h cpukit/libcsupport/include/vmeintr.h cpukit/libcsupport/src/README cpukit/libcsupport/src/__brk.c cpukit/libcsupport/src/__gettod.c cpukit/libcsupport/src/__times.c cpukit/libcsupport/src/malloc.c cpukit/libcsupport/src/newlibc.c cpukit/libcsupport/src/no_libc.c cpukit/libcsupport/src/unixlibc.c cpukit/libmisc/README cpukit/libmisc/monitor/README cpukit/libmisc/monitor/mon-monitor.c cpukit/libmisc/monitor/mon-symbols.c cpukit/libmisc/monitor/monitor.h cpukit/libmisc/monitor/symbols.h cpukit/libmisc/stackchk/README cpukit/libmisc/stackchk/check.c cpukit/libmisc/stackchk/internal.h cpukit/libmisc/stackchk/stackchk.h cpukit/rtems/include/rtems.h cpukit/rtems/include/rtems/rtems/asr.h cpukit/rtems/include/rtems/rtems/attr.h cpukit/rtems/include/rtems/rtems/clock.h cpukit/rtems/include/rtems/rtems/dpmem.h cpukit/rtems/include/rtems/rtems/event.h cpukit/rtems/include/rtems/rtems/eventmp.h cpukit/rtems/include/rtems/rtems/eventset.h cpukit/rtems/include/rtems/rtems/intr.h cpukit/rtems/include/rtems/rtems/message.h cpukit/rtems/include/rtems/rtems/modes.h cpukit/rtems/include/rtems/rtems/mp.h cpukit/rtems/include/rtems/rtems/msgmp.h cpukit/rtems/include/rtems/rtems/options.h cpukit/rtems/include/rtems/rtems/part.h cpukit/rtems/include/rtems/rtems/partmp.h cpukit/rtems/include/rtems/rtems/ratemon.h cpukit/rtems/include/rtems/rtems/region.h cpukit/rtems/include/rtems/rtems/regionmp.h cpukit/rtems/include/rtems/rtems/sem.h cpukit/rtems/include/rtems/rtems/semmp.h cpukit/rtems/include/rtems/rtems/signal.h cpukit/rtems/include/rtems/rtems/signalmp.h cpukit/rtems/include/rtems/rtems/status.h cpukit/rtems/include/rtems/rtems/taskmp.h cpukit/rtems/include/rtems/rtems/tasks.h cpukit/rtems/include/rtems/rtems/timer.h cpukit/rtems/inline/rtems/rtems/asr.inl cpukit/rtems/inline/rtems/rtems/attr.inl cpukit/rtems/inline/rtems/rtems/dpmem.inl cpukit/rtems/inline/rtems/rtems/event.inl cpukit/rtems/inline/rtems/rtems/eventset.inl cpukit/rtems/inline/rtems/rtems/message.inl cpukit/rtems/inline/rtems/rtems/modes.inl cpukit/rtems/inline/rtems/rtems/options.inl cpukit/rtems/inline/rtems/rtems/part.inl cpukit/rtems/inline/rtems/rtems/ratemon.inl cpukit/rtems/inline/rtems/rtems/region.inl cpukit/rtems/inline/rtems/rtems/sem.inl cpukit/rtems/inline/rtems/rtems/status.inl cpukit/rtems/inline/rtems/rtems/tasks.inl cpukit/rtems/inline/rtems/rtems/timer.inl cpukit/rtems/macros/rtems/rtems/asr.inl cpukit/rtems/macros/rtems/rtems/attr.inl cpukit/rtems/macros/rtems/rtems/dpmem.inl cpukit/rtems/macros/rtems/rtems/event.inl cpukit/rtems/macros/rtems/rtems/eventset.inl cpukit/rtems/macros/rtems/rtems/message.inl cpukit/rtems/macros/rtems/rtems/modes.inl cpukit/rtems/macros/rtems/rtems/options.inl cpukit/rtems/macros/rtems/rtems/part.inl cpukit/rtems/macros/rtems/rtems/ratemon.inl cpukit/rtems/macros/rtems/rtems/region.inl cpukit/rtems/macros/rtems/rtems/sem.inl cpukit/rtems/macros/rtems/rtems/status.inl cpukit/rtems/macros/rtems/rtems/tasks.inl cpukit/rtems/macros/rtems/rtems/timer.inl cpukit/rtems/src/dpmem.c cpukit/rtems/src/event.c cpukit/rtems/src/eventmp.c cpukit/rtems/src/intr.c cpukit/rtems/src/mp.c cpukit/rtems/src/msg.c cpukit/rtems/src/msgmp.c cpukit/rtems/src/part.c cpukit/rtems/src/partmp.c cpukit/rtems/src/ratemon.c cpukit/rtems/src/region.c cpukit/rtems/src/regionmp.c cpukit/rtems/src/rtclock.c cpukit/rtems/src/rtemstimer.c cpukit/rtems/src/sem.c cpukit/rtems/src/semmp.c cpukit/rtems/src/signal.c cpukit/rtems/src/signalmp.c cpukit/rtems/src/taskmp.c cpukit/rtems/src/tasks.c cpukit/sapi/include/rtems/config.h cpukit/sapi/include/rtems/extension.h cpukit/sapi/include/rtems/fatal.h cpukit/sapi/include/rtems/init.h cpukit/sapi/include/rtems/io.h cpukit/sapi/include/rtems/mptables.h cpukit/sapi/inline/rtems/extension.inl cpukit/sapi/macros/rtems/extension.inl cpukit/sapi/src/debug.c cpukit/sapi/src/exinit.c cpukit/sapi/src/extension.c cpukit/sapi/src/fatal.c cpukit/sapi/src/io.c cpukit/score/cpu/hppa1.1/cpu.c cpukit/score/cpu/i386/asm.h cpukit/score/cpu/i386/cpu.c cpukit/score/cpu/i386/rtems/asm.h cpukit/score/cpu/i960/asm.h cpukit/score/cpu/i960/cpu.c cpukit/score/cpu/m68k/asm.h cpukit/score/cpu/m68k/cpu.c cpukit/score/cpu/m68k/rtems/asm.h cpukit/score/cpu/no_cpu/asm.h cpukit/score/cpu/no_cpu/cpu.c cpukit/score/cpu/no_cpu/cpu_asm.c cpukit/score/cpu/no_cpu/rtems/asm.h cpukit/score/cpu/unix/cpu.c cpukit/score/include/rtems/debug.h cpukit/score/include/rtems/score/address.h cpukit/score/include/rtems/score/bitfield.h cpukit/score/include/rtems/score/chain.h cpukit/score/include/rtems/score/context.h cpukit/score/include/rtems/score/copyrt.h cpukit/score/include/rtems/score/heap.h cpukit/score/include/rtems/score/isr.h cpukit/score/include/rtems/score/mpci.h cpukit/score/include/rtems/score/mppkt.h cpukit/score/include/rtems/score/object.h cpukit/score/include/rtems/score/objectmp.h cpukit/score/include/rtems/score/priority.h cpukit/score/include/rtems/score/stack.h cpukit/score/include/rtems/score/states.h cpukit/score/include/rtems/score/sysstate.h cpukit/score/include/rtems/score/thread.h cpukit/score/include/rtems/score/threadmp.h cpukit/score/include/rtems/score/threadq.h cpukit/score/include/rtems/score/tod.h cpukit/score/include/rtems/score/tqdata.h cpukit/score/include/rtems/score/userext.h cpukit/score/include/rtems/score/watchdog.h cpukit/score/include/rtems/score/wkspace.h cpukit/score/include/rtems/system.h cpukit/score/inline/rtems/score/address.inl cpukit/score/inline/rtems/score/chain.inl cpukit/score/inline/rtems/score/heap.inl cpukit/score/inline/rtems/score/isr.inl cpukit/score/inline/rtems/score/mppkt.inl cpukit/score/inline/rtems/score/object.inl cpukit/score/inline/rtems/score/objectmp.inl cpukit/score/inline/rtems/score/priority.inl cpukit/score/inline/rtems/score/stack.inl cpukit/score/inline/rtems/score/states.inl cpukit/score/inline/rtems/score/sysstate.inl cpukit/score/inline/rtems/score/thread.inl cpukit/score/inline/rtems/score/threadmp.inl cpukit/score/inline/rtems/score/tod.inl cpukit/score/inline/rtems/score/tqdata.inl cpukit/score/inline/rtems/score/userext.inl cpukit/score/inline/rtems/score/watchdog.inl cpukit/score/inline/rtems/score/wkspace.inl cpukit/score/macros/README cpukit/score/macros/rtems/score/README cpukit/score/macros/rtems/score/address.inl cpukit/score/macros/rtems/score/chain.inl cpukit/score/macros/rtems/score/heap.inl cpukit/score/macros/rtems/score/isr.inl cpukit/score/macros/rtems/score/mppkt.inl cpukit/score/macros/rtems/score/object.inl cpukit/score/macros/rtems/score/objectmp.inl cpukit/score/macros/rtems/score/priority.inl cpukit/score/macros/rtems/score/stack.inl cpukit/score/macros/rtems/score/states.inl cpukit/score/macros/rtems/score/sysstate.inl cpukit/score/macros/rtems/score/thread.inl cpukit/score/macros/rtems/score/threadmp.inl cpukit/score/macros/rtems/score/tod.inl cpukit/score/macros/rtems/score/tqdata.inl cpukit/score/macros/rtems/score/userext.inl cpukit/score/macros/rtems/score/watchdog.inl cpukit/score/macros/rtems/score/wkspace.inl cpukit/score/src/chain.c cpukit/score/src/coretod.c cpukit/score/src/heap.c cpukit/score/src/mpci.c cpukit/score/src/object.c cpukit/score/src/objectmp.c cpukit/score/src/thread.c cpukit/score/src/threadmp.c cpukit/score/src/threadq.c cpukit/score/src/watchdog.c cpukit/score/src/wkspace.c testsuites/README testsuites/libtests/README testsuites/libtests/stackchk/blow.c testsuites/libtests/stackchk/init.c testsuites/libtests/stackchk/stackchk.scn testsuites/libtests/stackchk/task1.c testsuites/mptests/README testsuites/mptests/mp01/init.c testsuites/mptests/mp01/node1/mp01.doc testsuites/mptests/mp01/node1/mp01.scn testsuites/mptests/mp01/node2/mp01.doc testsuites/mptests/mp01/node2/mp01.scn testsuites/mptests/mp01/system.h testsuites/mptests/mp01/task1.c testsuites/mptests/mp02/init.c testsuites/mptests/mp02/node1/mp02.doc testsuites/mptests/mp02/node1/mp02.scn testsuites/mptests/mp02/node2/mp02.doc testsuites/mptests/mp02/node2/mp02.scn testsuites/mptests/mp02/system.h testsuites/mptests/mp02/task1.c testsuites/mptests/mp03/delay.c testsuites/mptests/mp03/init.c testsuites/mptests/mp03/node1/mp03.doc testsuites/mptests/mp03/node1/mp03.scn testsuites/mptests/mp03/node2/mp03.doc testsuites/mptests/mp03/node2/mp03.scn testsuites/mptests/mp03/system.h testsuites/mptests/mp03/task1.c testsuites/mptests/mp04/init.c testsuites/mptests/mp04/node1/mp04.doc testsuites/mptests/mp04/node1/mp04.scn testsuites/mptests/mp04/node2/mp04.doc testsuites/mptests/mp04/node2/mp04.scn testsuites/mptests/mp04/system.h testsuites/mptests/mp04/task1.c testsuites/mptests/mp05/asr.c testsuites/mptests/mp05/init.c testsuites/mptests/mp05/node1/mp05.doc testsuites/mptests/mp05/node1/mp05.scn testsuites/mptests/mp05/node2/mp05.doc testsuites/mptests/mp05/node2/mp05.scn testsuites/mptests/mp05/system.h testsuites/mptests/mp05/task1.c testsuites/mptests/mp06/init.c testsuites/mptests/mp06/node1/mp06.doc testsuites/mptests/mp06/node1/mp06.scn testsuites/mptests/mp06/node2/mp06.doc testsuites/mptests/mp06/node2/mp06.scn testsuites/mptests/mp06/system.h testsuites/mptests/mp06/task1.c testsuites/mptests/mp07/init.c testsuites/mptests/mp07/node1/mp07.doc testsuites/mptests/mp07/node1/mp07.scn testsuites/mptests/mp07/node2/mp07.doc testsuites/mptests/mp07/node2/mp07.scn testsuites/mptests/mp07/system.h testsuites/mptests/mp07/task1.c testsuites/mptests/mp08/init.c testsuites/mptests/mp08/node1/mp08.doc testsuites/mptests/mp08/node1/mp08.scn testsuites/mptests/mp08/node2/mp08.doc testsuites/mptests/mp08/node2/mp08.scn testsuites/mptests/mp08/system.h testsuites/mptests/mp08/task1.c testsuites/mptests/mp09/init.c testsuites/mptests/mp09/node1/mp09.doc testsuites/mptests/mp09/node1/mp09.scn testsuites/mptests/mp09/node2/mp09.doc testsuites/mptests/mp09/node2/mp09.scn testsuites/mptests/mp09/recvmsg.c testsuites/mptests/mp09/sendmsg.c testsuites/mptests/mp09/system.h testsuites/mptests/mp09/task1.c testsuites/mptests/mp10/init.c testsuites/mptests/mp10/node1/mp10.doc testsuites/mptests/mp10/node1/mp10.scn testsuites/mptests/mp10/node2/mp10.doc testsuites/mptests/mp10/node2/mp10.scn testsuites/mptests/mp10/system.h testsuites/mptests/mp10/task1.c testsuites/mptests/mp10/task2.c testsuites/mptests/mp10/task3.c testsuites/mptests/mp11/init.c testsuites/mptests/mp11/node1/mp11.doc testsuites/mptests/mp11/node1/mp11.scn testsuites/mptests/mp11/node2/mp11.doc testsuites/mptests/mp11/node2/mp11.scn testsuites/mptests/mp11/system.h testsuites/mptests/mp12/init.c testsuites/mptests/mp12/node1/mp12.doc testsuites/mptests/mp12/node1/mp12.scn testsuites/mptests/mp12/node2/mp12.doc testsuites/mptests/mp12/node2/mp12.scn testsuites/mptests/mp12/system.h testsuites/mptests/mp13/init.c testsuites/mptests/mp13/node1/mp13.doc testsuites/mptests/mp13/node1/mp13.scn testsuites/mptests/mp13/node2/mp13.doc testsuites/mptests/mp13/node2/mp13.scn testsuites/mptests/mp13/system.h testsuites/mptests/mp13/task1.c testsuites/mptests/mp13/task2.c testsuites/mptests/mp14/delay.c testsuites/mptests/mp14/evtask1.c testsuites/mptests/mp14/evtmtask.c testsuites/mptests/mp14/exit.c testsuites/mptests/mp14/init.c testsuites/mptests/mp14/msgtask1.c testsuites/mptests/mp14/node1/mp14.doc testsuites/mptests/mp14/node1/mp14.scn testsuites/mptests/mp14/node2/mp14.doc testsuites/mptests/mp14/node2/mp14.scn testsuites/mptests/mp14/pttask1.c testsuites/mptests/mp14/smtask1.c testsuites/mptests/mp14/system.h testsuites/samples/README testsuites/samples/base_mp/apptask.c testsuites/samples/base_mp/init.c testsuites/samples/base_mp/node1/base_mp.doc testsuites/samples/base_mp/node1/base_mp.scn testsuites/samples/base_mp/node2/base_mp.doc testsuites/samples/base_mp/node2/base_mp.scn testsuites/samples/base_mp/system.h testsuites/samples/base_sp/apptask.c testsuites/samples/base_sp/base_sp.doc testsuites/samples/base_sp/base_sp.scn testsuites/samples/base_sp/init.c testsuites/samples/base_sp/system.h testsuites/samples/cdtest/cdtest.scn testsuites/samples/cdtest/init.c testsuites/samples/cdtest/main.cc testsuites/samples/cdtest/system.h testsuites/samples/hello/hello.doc testsuites/samples/hello/hello.scn testsuites/samples/hello/init.c testsuites/samples/hello/system.h testsuites/samples/paranoia/init.c testsuites/samples/paranoia/paranoia.c testsuites/samples/paranoia/paranoia.doc testsuites/samples/paranoia/system.h testsuites/samples/ticker/init.c testsuites/samples/ticker/system.h testsuites/samples/ticker/tasks.c testsuites/samples/ticker/ticker.doc testsuites/samples/ticker/ticker.scn testsuites/sptests/README testsuites/sptests/sp01/init.c testsuites/sptests/sp01/sp01.doc testsuites/sptests/sp01/sp01.scn testsuites/sptests/sp01/system.h testsuites/sptests/sp01/task1.c testsuites/sptests/sp02/init.c testsuites/sptests/sp02/preempt.c testsuites/sptests/sp02/sp02.doc testsuites/sptests/sp02/sp02.scn testsuites/sptests/sp02/system.h testsuites/sptests/sp02/task1.c testsuites/sptests/sp02/task2.c testsuites/sptests/sp02/task3.c testsuites/sptests/sp03/init.c testsuites/sptests/sp03/sp03.doc testsuites/sptests/sp03/sp03.scn testsuites/sptests/sp03/system.h testsuites/sptests/sp03/task1.c testsuites/sptests/sp03/task2.c testsuites/sptests/sp04/init.c testsuites/sptests/sp04/sp04.doc testsuites/sptests/sp04/sp04.scn testsuites/sptests/sp04/system.h testsuites/sptests/sp04/task1.c testsuites/sptests/sp04/task2.c testsuites/sptests/sp04/task3.c testsuites/sptests/sp04/tswitch.c testsuites/sptests/sp05/init.c testsuites/sptests/sp05/sp05.doc testsuites/sptests/sp05/sp05.scn testsuites/sptests/sp05/system.h testsuites/sptests/sp05/task1.c testsuites/sptests/sp05/task2.c testsuites/sptests/sp05/task3.c testsuites/sptests/sp06/init.c testsuites/sptests/sp06/sp06.doc testsuites/sptests/sp06/sp06.scn testsuites/sptests/sp06/system.h testsuites/sptests/sp06/task1.c testsuites/sptests/sp06/task2.c testsuites/sptests/sp06/task3.c testsuites/sptests/sp07/init.c testsuites/sptests/sp07/sp07.doc testsuites/sptests/sp07/sp07.scn testsuites/sptests/sp07/system.h testsuites/sptests/sp07/task1.c testsuites/sptests/sp07/task2.c testsuites/sptests/sp07/task3.c testsuites/sptests/sp07/task4.c testsuites/sptests/sp07/taskexit.c testsuites/sptests/sp07/tcreate.c testsuites/sptests/sp07/tdelete.c testsuites/sptests/sp07/trestart.c testsuites/sptests/sp07/tstart.c testsuites/sptests/sp08/init.c testsuites/sptests/sp08/sp08.doc testsuites/sptests/sp08/sp08.scn testsuites/sptests/sp08/system.h testsuites/sptests/sp08/task1.c testsuites/sptests/sp09/delay.c testsuites/sptests/sp09/init.c testsuites/sptests/sp09/isr.c testsuites/sptests/sp09/screen01.c testsuites/sptests/sp09/screen02.c testsuites/sptests/sp09/screen03.c testsuites/sptests/sp09/screen04.c testsuites/sptests/sp09/screen05.c testsuites/sptests/sp09/screen06.c testsuites/sptests/sp09/screen07.c testsuites/sptests/sp09/screen08.c testsuites/sptests/sp09/screen09.c testsuites/sptests/sp09/screen10.c testsuites/sptests/sp09/screen11.c testsuites/sptests/sp09/screen12.c testsuites/sptests/sp09/screen13.c testsuites/sptests/sp09/screen14.c testsuites/sptests/sp09/sp09.doc testsuites/sptests/sp09/sp09.scn testsuites/sptests/sp09/system.h testsuites/sptests/sp09/task1.c testsuites/sptests/sp09/task2.c testsuites/sptests/sp09/task3.c testsuites/sptests/sp09/task4.c testsuites/sptests/sp11/init.c testsuites/sptests/sp11/sp11.doc testsuites/sptests/sp11/sp11.scn testsuites/sptests/sp11/system.h testsuites/sptests/sp11/task1.c testsuites/sptests/sp11/task2.c testsuites/sptests/sp11/timer.c testsuites/sptests/sp12/init.c testsuites/sptests/sp12/pridrv.c testsuites/sptests/sp12/pritask.c testsuites/sptests/sp12/sp12.doc testsuites/sptests/sp12/sp12.scn testsuites/sptests/sp12/system.h testsuites/sptests/sp12/task1.c testsuites/sptests/sp12/task2.c testsuites/sptests/sp12/task3.c testsuites/sptests/sp12/task4.c testsuites/sptests/sp12/task5.c testsuites/sptests/sp13/fillbuff.c testsuites/sptests/sp13/init.c testsuites/sptests/sp13/putbuff.c testsuites/sptests/sp13/sp13.doc testsuites/sptests/sp13/sp13.scn testsuites/sptests/sp13/system.h testsuites/sptests/sp13/task1.c testsuites/sptests/sp13/task2.c testsuites/sptests/sp13/task3.c testsuites/sptests/sp14/asr.c testsuites/sptests/sp14/init.c testsuites/sptests/sp14/sp14.doc testsuites/sptests/sp14/sp14.scn testsuites/sptests/sp14/system.h testsuites/sptests/sp14/task1.c testsuites/sptests/sp14/task2.c testsuites/sptests/sp15/init.c testsuites/sptests/sp15/sp15.doc testsuites/sptests/sp15/sp15.scn testsuites/sptests/sp15/system.h testsuites/sptests/sp15/task1.c testsuites/sptests/sp16/init.c testsuites/sptests/sp16/sp16.doc testsuites/sptests/sp16/sp16.scn testsuites/sptests/sp16/system.h testsuites/sptests/sp16/task1.c testsuites/sptests/sp16/task2.c testsuites/sptests/sp16/task3.c testsuites/sptests/sp16/task4.c testsuites/sptests/sp16/task5.c testsuites/sptests/sp17/asr.c testsuites/sptests/sp17/init.c testsuites/sptests/sp17/sp17.doc testsuites/sptests/sp17/sp17.scn testsuites/sptests/sp17/system.h testsuites/sptests/sp17/task1.c testsuites/sptests/sp17/task2.c testsuites/sptests/sp19/first.c testsuites/sptests/sp19/fptask.c testsuites/sptests/sp19/fptest.h testsuites/sptests/sp19/init.c testsuites/sptests/sp19/inttest.h testsuites/sptests/sp19/sp19.doc testsuites/sptests/sp19/sp19.scn testsuites/sptests/sp19/system.h testsuites/sptests/sp19/task1.c testsuites/sptests/sp20/getall.c testsuites/sptests/sp20/init.c testsuites/sptests/sp20/sp20.doc testsuites/sptests/sp20/sp20.scn testsuites/sptests/sp20/system.h testsuites/sptests/sp20/task1.c testsuites/sptests/sp21/init.c testsuites/sptests/sp21/sp21.doc testsuites/sptests/sp21/sp21.scn testsuites/sptests/sp21/system.h testsuites/sptests/sp21/task1.c testsuites/sptests/sp22/delay.c testsuites/sptests/sp22/init.c testsuites/sptests/sp22/prtime.c testsuites/sptests/sp22/sp22.doc testsuites/sptests/sp22/sp22.scn testsuites/sptests/sp22/system.h testsuites/sptests/sp22/task1.c testsuites/sptests/sp23/init.c testsuites/sptests/sp23/sp23.doc testsuites/sptests/sp23/sp23.scn testsuites/sptests/sp23/system.h testsuites/sptests/sp23/task1.c testsuites/sptests/sp24/init.c testsuites/sptests/sp24/resume.c testsuites/sptests/sp24/sp24.doc testsuites/sptests/sp24/sp24.scn testsuites/sptests/sp24/system.h testsuites/sptests/sp24/task1.c testsuites/sptests/sp25/init.c testsuites/sptests/sp25/sp25.doc testsuites/sptests/sp25/sp25.scn testsuites/sptests/sp25/system.h testsuites/sptests/sp25/task1.c testsuites/sptests/spfatal/fatal.c testsuites/sptests/spfatal/init.c testsuites/sptests/spfatal/puterr.c testsuites/sptests/spfatal/spfatal.doc testsuites/sptests/spfatal/spfatal.scn testsuites/sptests/spfatal/system.h testsuites/sptests/spfatal/task1.c testsuites/sptests/spsize/getint.c testsuites/sptests/spsize/init.c testsuites/sptests/spsize/size.c testsuites/support/include/tmacros.h testsuites/tmtests/README testsuites/tmtests/include/timesys.h testsuites/tmtests/tm01/system.h testsuites/tmtests/tm01/task1.c testsuites/tmtests/tm01/tm01.doc testsuites/tmtests/tm02/system.h testsuites/tmtests/tm02/task1.c testsuites/tmtests/tm02/tm02.doc testsuites/tmtests/tm03/system.h testsuites/tmtests/tm03/task1.c testsuites/tmtests/tm03/tm03.doc testsuites/tmtests/tm04/system.h testsuites/tmtests/tm04/task1.c testsuites/tmtests/tm04/tm04.doc testsuites/tmtests/tm05/system.h testsuites/tmtests/tm05/task1.c testsuites/tmtests/tm05/tm05.doc testsuites/tmtests/tm06/system.h testsuites/tmtests/tm06/task1.c testsuites/tmtests/tm06/tm06.doc testsuites/tmtests/tm07/system.h testsuites/tmtests/tm07/task1.c testsuites/tmtests/tm07/tm07.doc testsuites/tmtests/tm08/system.h testsuites/tmtests/tm08/task1.c testsuites/tmtests/tm08/tm08.doc testsuites/tmtests/tm09/system.h testsuites/tmtests/tm09/task1.c testsuites/tmtests/tm09/tm09.doc testsuites/tmtests/tm10/system.h testsuites/tmtests/tm10/task1.c testsuites/tmtests/tm10/tm10.doc testsuites/tmtests/tm11/system.h testsuites/tmtests/tm11/task1.c testsuites/tmtests/tm11/tm11.doc testsuites/tmtests/tm12/system.h testsuites/tmtests/tm12/task1.c testsuites/tmtests/tm12/tm12.doc testsuites/tmtests/tm13/system.h testsuites/tmtests/tm13/task1.c testsuites/tmtests/tm13/tm13.doc testsuites/tmtests/tm14/system.h testsuites/tmtests/tm14/task1.c testsuites/tmtests/tm14/tm14.doc testsuites/tmtests/tm15/system.h testsuites/tmtests/tm15/task1.c testsuites/tmtests/tm15/tm15.doc testsuites/tmtests/tm16/system.h testsuites/tmtests/tm16/task1.c testsuites/tmtests/tm16/tm16.doc testsuites/tmtests/tm17/system.h testsuites/tmtests/tm17/task1.c testsuites/tmtests/tm17/tm17.doc testsuites/tmtests/tm18/system.h testsuites/tmtests/tm18/task1.c testsuites/tmtests/tm18/tm18.doc testsuites/tmtests/tm19/system.h testsuites/tmtests/tm19/task1.c testsuites/tmtests/tm19/tm19.doc testsuites/tmtests/tm20/system.h testsuites/tmtests/tm20/task1.c testsuites/tmtests/tm20/tm20.doc testsuites/tmtests/tm21/system.h testsuites/tmtests/tm21/task1.c testsuites/tmtests/tm21/tm21.doc testsuites/tmtests/tm22/system.h testsuites/tmtests/tm22/task1.c testsuites/tmtests/tm22/tm22.doc testsuites/tmtests/tm23/system.h testsuites/tmtests/tm23/task1.c testsuites/tmtests/tm23/tm23.doc testsuites/tmtests/tm24/system.h testsuites/tmtests/tm24/task1.c testsuites/tmtests/tm24/tm24.doc testsuites/tmtests/tm25/system.h testsuites/tmtests/tm25/task1.c testsuites/tmtests/tm25/tm25.doc testsuites/tmtests/tm26/fptest.h testsuites/tmtests/tm26/system.h testsuites/tmtests/tm26/task1.c testsuites/tmtests/tm26/tm26.doc testsuites/tmtests/tm27/system.h testsuites/tmtests/tm27/task1.c testsuites/tmtests/tm27/tm27.doc testsuites/tmtests/tm28/system.h testsuites/tmtests/tm28/task1.c testsuites/tmtests/tm28/tm28.doc testsuites/tmtests/tm29/system.h testsuites/tmtests/tm29/task1.c testsuites/tmtests/tm29/tm29.doc testsuites/tmtests/tmck/system.h testsuites/tmtests/tmck/task1.c testsuites/tmtests/tmck/tmck.doc testsuites/tmtests/tmoverhd/dumrtems.h testsuites/tmtests/tmoverhd/empty.c testsuites/tmtests/tmoverhd/system.h testsuites/tmtests/tmoverhd/testtask.c testsuites/tmtests/tmoverhd/tmoverhd.doc tools/build/README tools/build/cklength.c tools/build/eolstrip.c tools/build/packhex.c tools/build/scripts/README tools/build/src/cklength.c tools/build/src/eolstrip.c tools/build/src/packhex.c tools/build/src/unhex.c tools/build/unhex.c tools/cpu/hppa1.1/genoffsets.c tools/update/310_to_320_list tools/update/README --- INSTALL | 56 - LICENSE | 118 - README | 93 - SUPPORT | 18 - c/ACKNOWLEDGEMENTS | 51 - c/PROBLEMS | 39 - c/README | 45 - c/REQUIRES | 13 - c/UPDATE_HELP | 17 - c/build-tools/README | 32 - c/build-tools/cklength.c | 364 ---- c/build-tools/eolstrip.c | 351 --- c/build-tools/packhex.c | 513 ----- c/build-tools/scripts/README | 32 - c/build-tools/src/cklength.c | 364 ---- c/build-tools/src/eolstrip.c | 351 --- c/build-tools/src/packhex.c | 513 ----- c/build-tools/src/unhex.c | 719 ------ c/build-tools/unhex.c | 719 ------ c/src/README | 27 - c/src/exec/libcsupport/include/clockdrv.h | 58 - c/src/exec/libcsupport/include/console.h | 40 - c/src/exec/libcsupport/include/iosupp.h | 44 - c/src/exec/libcsupport/include/rtems/libcsupport.h | 47 - c/src/exec/libcsupport/include/spurious.h | 38 - c/src/exec/libcsupport/include/timerdrv.h | 40 - c/src/exec/libcsupport/include/vmeintr.h | 58 - c/src/exec/libcsupport/src/README | 37 - c/src/exec/libcsupport/src/__brk.c | 40 - c/src/exec/libcsupport/src/__gettod.c | 84 - c/src/exec/libcsupport/src/__times.c | 65 - c/src/exec/libcsupport/src/malloc.c | 280 --- c/src/exec/libcsupport/src/newlibc.c | 292 --- c/src/exec/libcsupport/src/no_libc.c | 45 - c/src/exec/libcsupport/src/unixlibc.c | 7 - c/src/exec/rtems/headers/asr.h | 177 -- c/src/exec/rtems/headers/attr.h | 188 -- c/src/exec/rtems/headers/clock.h | 102 - c/src/exec/rtems/headers/dpmem.h | 210 -- c/src/exec/rtems/headers/event.h | 158 -- c/src/exec/rtems/headers/eventmp.h | 147 -- c/src/exec/rtems/headers/eventset.h | 142 -- c/src/exec/rtems/headers/intr.h | 125 -- c/src/exec/rtems/headers/message.h | 461 ---- c/src/exec/rtems/headers/modes.h | 183 -- c/src/exec/rtems/headers/mp.h | 67 - c/src/exec/rtems/headers/msgmp.h | 175 -- c/src/exec/rtems/headers/options.h | 79 - c/src/exec/rtems/headers/part.h | 290 --- c/src/exec/rtems/headers/partmp.h | 160 -- c/src/exec/rtems/headers/ratemon.h | 285 --- c/src/exec/rtems/headers/region.h | 311 --- c/src/exec/rtems/headers/regionmp.h | 165 -- c/src/exec/rtems/headers/rtems.h | 79 - c/src/exec/rtems/headers/sem.h | 238 -- c/src/exec/rtems/headers/semmp.h | 163 -- c/src/exec/rtems/headers/signal.h | 72 - c/src/exec/rtems/headers/signalmp.h | 147 -- c/src/exec/rtems/headers/status.h | 109 - c/src/exec/rtems/headers/taskmp.h | 167 -- c/src/exec/rtems/headers/tasks.h | 315 --- c/src/exec/rtems/headers/timer.h | 292 --- c/src/exec/rtems/include/rtems.h | 79 - c/src/exec/rtems/include/rtems/rtems/asr.h | 177 -- c/src/exec/rtems/include/rtems/rtems/attr.h | 188 -- c/src/exec/rtems/include/rtems/rtems/clock.h | 102 - c/src/exec/rtems/include/rtems/rtems/dpmem.h | 210 -- c/src/exec/rtems/include/rtems/rtems/event.h | 158 -- c/src/exec/rtems/include/rtems/rtems/eventmp.h | 147 -- c/src/exec/rtems/include/rtems/rtems/eventset.h | 142 -- c/src/exec/rtems/include/rtems/rtems/intr.h | 125 -- c/src/exec/rtems/include/rtems/rtems/message.h | 461 ---- c/src/exec/rtems/include/rtems/rtems/modes.h | 183 -- c/src/exec/rtems/include/rtems/rtems/mp.h | 67 - c/src/exec/rtems/include/rtems/rtems/msgmp.h | 175 -- c/src/exec/rtems/include/rtems/rtems/options.h | 79 - c/src/exec/rtems/include/rtems/rtems/part.h | 290 --- c/src/exec/rtems/include/rtems/rtems/partmp.h | 160 -- c/src/exec/rtems/include/rtems/rtems/ratemon.h | 285 --- c/src/exec/rtems/include/rtems/rtems/region.h | 311 --- c/src/exec/rtems/include/rtems/rtems/regionmp.h | 165 -- c/src/exec/rtems/include/rtems/rtems/sem.h | 238 -- c/src/exec/rtems/include/rtems/rtems/semmp.h | 163 -- c/src/exec/rtems/include/rtems/rtems/signal.h | 72 - c/src/exec/rtems/include/rtems/rtems/signalmp.h | 147 -- c/src/exec/rtems/include/rtems/rtems/status.h | 109 - c/src/exec/rtems/include/rtems/rtems/taskmp.h | 167 -- c/src/exec/rtems/include/rtems/rtems/tasks.h | 315 --- c/src/exec/rtems/include/rtems/rtems/timer.h | 292 --- c/src/exec/rtems/inline/asr.inl | 105 - c/src/exec/rtems/inline/attr.inl | 125 -- c/src/exec/rtems/inline/dpmem.inl | 75 - c/src/exec/rtems/inline/event.inl | 30 - c/src/exec/rtems/inline/eventset.inl | 71 - c/src/exec/rtems/inline/message.inl | 160 -- c/src/exec/rtems/inline/modes.inl | 136 -- c/src/exec/rtems/inline/options.inl | 47 - c/src/exec/rtems/inline/part.inl | 157 -- c/src/exec/rtems/inline/ratemon.inl | 113 - c/src/exec/rtems/inline/region.inl | 101 - c/src/exec/rtems/inline/rtems/rtems/asr.inl | 105 - c/src/exec/rtems/inline/rtems/rtems/attr.inl | 125 -- c/src/exec/rtems/inline/rtems/rtems/dpmem.inl | 75 - c/src/exec/rtems/inline/rtems/rtems/event.inl | 30 - c/src/exec/rtems/inline/rtems/rtems/eventset.inl | 71 - c/src/exec/rtems/inline/rtems/rtems/message.inl | 160 -- c/src/exec/rtems/inline/rtems/rtems/modes.inl | 136 -- c/src/exec/rtems/inline/rtems/rtems/options.inl | 47 - c/src/exec/rtems/inline/rtems/rtems/part.inl | 157 -- c/src/exec/rtems/inline/rtems/rtems/ratemon.inl | 113 - c/src/exec/rtems/inline/rtems/rtems/region.inl | 101 - c/src/exec/rtems/inline/rtems/rtems/sem.inl | 73 - c/src/exec/rtems/inline/rtems/rtems/status.inl | 60 - c/src/exec/rtems/inline/rtems/rtems/tasks.inl | 90 - c/src/exec/rtems/inline/rtems/rtems/timer.inl | 112 - c/src/exec/rtems/inline/sem.inl | 73 - c/src/exec/rtems/inline/status.inl | 60 - c/src/exec/rtems/inline/tasks.inl | 90 - c/src/exec/rtems/inline/timer.inl | 112 - c/src/exec/rtems/macros/asr.inl | 89 - c/src/exec/rtems/macros/attr.inl | 91 - c/src/exec/rtems/macros/dpmem.inl | 59 - c/src/exec/rtems/macros/event.inl | 28 - c/src/exec/rtems/macros/eventset.inl | 53 - c/src/exec/rtems/macros/message.inl | 118 - c/src/exec/rtems/macros/modes.inl | 101 - c/src/exec/rtems/macros/options.inl | 39 - c/src/exec/rtems/macros/part.inl | 117 - c/src/exec/rtems/macros/ratemon.inl | 85 - c/src/exec/rtems/macros/region.inl | 75 - c/src/exec/rtems/macros/rtems/rtems/asr.inl | 89 - c/src/exec/rtems/macros/rtems/rtems/attr.inl | 91 - c/src/exec/rtems/macros/rtems/rtems/dpmem.inl | 59 - c/src/exec/rtems/macros/rtems/rtems/event.inl | 28 - c/src/exec/rtems/macros/rtems/rtems/eventset.inl | 53 - c/src/exec/rtems/macros/rtems/rtems/message.inl | 118 - c/src/exec/rtems/macros/rtems/rtems/modes.inl | 101 - c/src/exec/rtems/macros/rtems/rtems/options.inl | 39 - c/src/exec/rtems/macros/rtems/rtems/part.inl | 117 - c/src/exec/rtems/macros/rtems/rtems/ratemon.inl | 85 - c/src/exec/rtems/macros/rtems/rtems/region.inl | 75 - c/src/exec/rtems/macros/rtems/rtems/sem.inl | 58 - c/src/exec/rtems/macros/rtems/rtems/status.inl | 47 - c/src/exec/rtems/macros/rtems/rtems/tasks.inl | 82 - c/src/exec/rtems/macros/rtems/rtems/timer.inl | 85 - c/src/exec/rtems/macros/sem.inl | 58 - c/src/exec/rtems/macros/status.inl | 47 - c/src/exec/rtems/macros/tasks.inl | 82 - c/src/exec/rtems/macros/timer.inl | 85 - c/src/exec/rtems/optman/no-dpmem.c | 69 - c/src/exec/rtems/optman/no-event.c | 60 - c/src/exec/rtems/optman/no-mp.c | 101 - c/src/exec/rtems/optman/no-msg.c | 128 -- c/src/exec/rtems/optman/no-part.c | 71 - c/src/exec/rtems/optman/no-region.c | 83 - c/src/exec/rtems/optman/no-rtmon.c | 78 - c/src/exec/rtems/optman/no-sem.c | 82 - c/src/exec/rtems/optman/no-signal.c | 37 - c/src/exec/rtems/optman/no-timer.c | 84 - c/src/exec/rtems/src/clock.c | 153 -- c/src/exec/rtems/src/dpmem.c | 268 --- c/src/exec/rtems/src/event.c | 294 --- c/src/exec/rtems/src/eventmp.c | 188 -- c/src/exec/rtems/src/intr.c | 85 - c/src/exec/rtems/src/mp.c | 128 -- c/src/exec/rtems/src/msg.c | 708 ------ c/src/exec/rtems/src/msgmp.c | 397 ---- c/src/exec/rtems/src/part.c | 322 --- c/src/exec/rtems/src/partmp.c | 300 --- c/src/exec/rtems/src/ratemon.c | 401 ---- c/src/exec/rtems/src/region.c | 456 ---- c/src/exec/rtems/src/regionmp.c | 308 --- c/src/exec/rtems/src/rtclock.c | 153 -- c/src/exec/rtems/src/rtemstimer.c | 343 --- c/src/exec/rtems/src/sem.c | 483 ---- c/src/exec/rtems/src/semmp.c | 306 --- c/src/exec/rtems/src/signal.c | 110 - c/src/exec/rtems/src/signalmp.c | 187 -- c/src/exec/rtems/src/taskmp.c | 338 --- c/src/exec/rtems/src/tasks.c | 816 ------- c/src/exec/rtems/src/timer.c | 343 --- c/src/exec/sapi/headers/config.h | 321 --- c/src/exec/sapi/headers/directives.h | 108 - c/src/exec/sapi/headers/extension.h | 169 -- c/src/exec/sapi/headers/fatal.h | 49 - c/src/exec/sapi/headers/init.h | 101 - c/src/exec/sapi/headers/io.h | 204 -- c/src/exec/sapi/headers/mptables.h | 29 - c/src/exec/sapi/headers/sptables.h | 140 -- c/src/exec/sapi/include/rtems/config.h | 321 --- c/src/exec/sapi/include/rtems/directives.h | 108 - c/src/exec/sapi/include/rtems/extension.h | 169 -- c/src/exec/sapi/include/rtems/fatal.h | 49 - c/src/exec/sapi/include/rtems/init.h | 101 - c/src/exec/sapi/include/rtems/io.h | 204 -- c/src/exec/sapi/include/rtems/mptables.h | 29 - c/src/exec/sapi/include/rtems/sptables.h | 140 -- c/src/exec/sapi/inline/extension.inl | 73 - c/src/exec/sapi/inline/rtems/extension.inl | 73 - c/src/exec/sapi/macros/extension.inl | 58 - c/src/exec/sapi/macros/rtems/extension.inl | 58 - c/src/exec/sapi/optman/no-ext.c | 49 - c/src/exec/sapi/optman/no-io.c | 95 - c/src/exec/sapi/src/debug.c | 62 - c/src/exec/sapi/src/exinit.c | 245 --- c/src/exec/sapi/src/extension.c | 156 -- c/src/exec/sapi/src/fatal.c | 54 - c/src/exec/sapi/src/io.c | 316 --- c/src/exec/score/cpu/hppa1.1/cpu.c | 313 --- c/src/exec/score/cpu/hppa1.1/cpu.h | 581 ----- c/src/exec/score/cpu/hppa1.1/cpu_asm.h | 73 - c/src/exec/score/cpu/hppa1.1/cpu_asm.s | 797 ------- c/src/exec/score/cpu/hppa1.1/hppa.h | 704 ------ c/src/exec/score/cpu/hppa1.1/rtems.s | 53 - c/src/exec/score/cpu/i386/asm.h | 131 -- c/src/exec/score/cpu/i386/cpu.c | 121 - c/src/exec/score/cpu/i386/cpu.h | 367 ---- c/src/exec/score/cpu/i386/cpu_asm.s | 654 ------ c/src/exec/score/cpu/i386/i386.h | 493 ----- c/src/exec/score/cpu/i386/rtems.s | 31 - c/src/exec/score/cpu/i960/asm.h | 107 - c/src/exec/score/cpu/i960/cpu.c | 124 -- c/src/exec/score/cpu/i960/cpu.h | 424 ---- c/src/exec/score/cpu/i960/cpu_asm.s | 199 -- c/src/exec/score/cpu/i960/i960.h | 289 --- c/src/exec/score/cpu/i960/rtems.s | 25 - c/src/exec/score/cpu/m68k/asm.h | 127 -- c/src/exec/score/cpu/m68k/cpu.c | 97 - c/src/exec/score/cpu/m68k/cpu.h | 412 ---- c/src/exec/score/cpu/m68k/cpu_asm.s | 202 -- c/src/exec/score/cpu/m68k/m68k.h | 282 --- c/src/exec/score/cpu/m68k/rtems.s | 46 - c/src/exec/score/cpu/no_cpu/asm.h | 98 - c/src/exec/score/cpu/no_cpu/cpu.c | 132 -- c/src/exec/score/cpu/no_cpu/cpu.h | 818 ------- c/src/exec/score/cpu/no_cpu/cpu_asm.c | 152 -- c/src/exec/score/cpu/no_cpu/cpu_asm.h | 70 - c/src/exec/score/cpu/no_cpu/no_cpu.h | 86 - c/src/exec/score/cpu/no_cpu/rtems.c | 45 - c/src/exec/score/cpu/unix/cpu.c | 529 ----- c/src/exec/score/cpu/unix/cpu.h | 929 -------- c/src/exec/score/cpu/unix/unix.h | 90 - c/src/exec/score/headers/address.h | 122 -- c/src/exec/score/headers/bitfield.h | 49 - c/src/exec/score/headers/chain.h | 432 ---- c/src/exec/score/headers/context.h | 133 -- c/src/exec/score/headers/copyrt.h | 42 - c/src/exec/score/headers/debug.h | 98 - c/src/exec/score/headers/heap.h | 396 ---- c/src/exec/score/headers/isr.h | 239 -- c/src/exec/score/headers/mpci.h | 171 -- c/src/exec/score/headers/mppkt.h | 123 -- c/src/exec/score/headers/object.h | 380 ---- c/src/exec/score/headers/objectmp.h | 165 -- c/src/exec/score/headers/priority.h | 195 -- c/src/exec/score/headers/stack.h | 95 - c/src/exec/score/headers/states.h | 337 --- c/src/exec/score/headers/sysstate.h | 143 -- c/src/exec/score/headers/system.h | 132 -- c/src/exec/score/headers/thread.h | 721 ------ c/src/exec/score/headers/threadmp.h | 134 -- c/src/exec/score/headers/threadq.h | 264 --- c/src/exec/score/headers/tod.h | 300 --- c/src/exec/score/headers/tqdata.h | 90 - c/src/exec/score/headers/userext.h | 213 -- c/src/exec/score/headers/watchdog.h | 471 ---- c/src/exec/score/headers/wkspace.h | 99 - c/src/exec/score/include/rtems/debug.h | 98 - c/src/exec/score/include/rtems/score/address.h | 122 -- c/src/exec/score/include/rtems/score/bitfield.h | 49 - c/src/exec/score/include/rtems/score/chain.h | 432 ---- c/src/exec/score/include/rtems/score/context.h | 133 -- c/src/exec/score/include/rtems/score/copyrt.h | 42 - c/src/exec/score/include/rtems/score/heap.h | 396 ---- c/src/exec/score/include/rtems/score/isr.h | 239 -- c/src/exec/score/include/rtems/score/mpci.h | 171 -- c/src/exec/score/include/rtems/score/mppkt.h | 123 -- c/src/exec/score/include/rtems/score/object.h | 380 ---- c/src/exec/score/include/rtems/score/objectmp.h | 165 -- c/src/exec/score/include/rtems/score/priority.h | 195 -- c/src/exec/score/include/rtems/score/stack.h | 95 - c/src/exec/score/include/rtems/score/states.h | 337 --- c/src/exec/score/include/rtems/score/sysstate.h | 143 -- c/src/exec/score/include/rtems/score/thread.h | 721 ------ c/src/exec/score/include/rtems/score/threadmp.h | 134 -- c/src/exec/score/include/rtems/score/threadq.h | 264 --- c/src/exec/score/include/rtems/score/tod.h | 300 --- c/src/exec/score/include/rtems/score/tqdata.h | 90 - c/src/exec/score/include/rtems/score/userext.h | 213 -- c/src/exec/score/include/rtems/score/watchdog.h | 471 ---- c/src/exec/score/include/rtems/score/wkspace.h | 99 - c/src/exec/score/include/rtems/system.h | 132 -- c/src/exec/score/inline/address.inl | 109 - c/src/exec/score/inline/chain.inl | 292 --- c/src/exec/score/inline/heap.inl | 203 -- c/src/exec/score/inline/isr.inl | 70 - c/src/exec/score/inline/mppkt.inl | 49 - c/src/exec/score/inline/object.inl | 198 -- c/src/exec/score/inline/objectmp.inl | 62 - c/src/exec/score/inline/priority.inl | 168 -- c/src/exec/score/inline/rtems/score/address.inl | 109 - c/src/exec/score/inline/rtems/score/chain.inl | 292 --- c/src/exec/score/inline/rtems/score/heap.inl | 203 -- c/src/exec/score/inline/rtems/score/isr.inl | 70 - c/src/exec/score/inline/rtems/score/mppkt.inl | 49 - c/src/exec/score/inline/rtems/score/object.inl | 198 -- c/src/exec/score/inline/rtems/score/objectmp.inl | 62 - c/src/exec/score/inline/rtems/score/priority.inl | 168 -- c/src/exec/score/inline/rtems/score/stack.inl | 63 - c/src/exec/score/inline/rtems/score/states.inl | 285 --- c/src/exec/score/inline/rtems/score/sysstate.inl | 103 - c/src/exec/score/inline/rtems/score/thread.inl | 252 --- c/src/exec/score/inline/rtems/score/threadmp.inl | 53 - c/src/exec/score/inline/rtems/score/tod.inl | 72 - c/src/exec/score/inline/rtems/score/tqdata.inl | 47 - c/src/exec/score/inline/rtems/score/userext.inl | 268 --- c/src/exec/score/inline/rtems/score/watchdog.inl | 296 --- c/src/exec/score/inline/rtems/score/wkspace.inl | 104 - c/src/exec/score/inline/stack.inl | 63 - c/src/exec/score/inline/states.inl | 285 --- c/src/exec/score/inline/sysstate.inl | 103 - c/src/exec/score/inline/thread.inl | 252 --- c/src/exec/score/inline/threadmp.inl | 53 - c/src/exec/score/inline/tod.inl | 72 - c/src/exec/score/inline/tqdata.inl | 47 - c/src/exec/score/inline/userext.inl | 268 --- c/src/exec/score/inline/watchdog.inl | 296 --- c/src/exec/score/inline/wkspace.inl | 104 - c/src/exec/score/macros/README | 18 - c/src/exec/score/macros/address.inl | 79 - c/src/exec/score/macros/chain.inl | 200 -- c/src/exec/score/macros/heap.inl | 136 -- c/src/exec/score/macros/isr.inl | 60 - c/src/exec/score/macros/mppkt.inl | 41 - c/src/exec/score/macros/object.inl | 146 -- c/src/exec/score/macros/objectmp.inl | 50 - c/src/exec/score/macros/priority.inl | 144 -- c/src/exec/score/macros/rtems/score/README | 18 - c/src/exec/score/macros/rtems/score/address.inl | 79 - c/src/exec/score/macros/rtems/score/chain.inl | 200 -- c/src/exec/score/macros/rtems/score/heap.inl | 136 -- c/src/exec/score/macros/rtems/score/isr.inl | 60 - c/src/exec/score/macros/rtems/score/mppkt.inl | 41 - c/src/exec/score/macros/rtems/score/object.inl | 146 -- c/src/exec/score/macros/rtems/score/objectmp.inl | 50 - c/src/exec/score/macros/rtems/score/priority.inl | 144 -- c/src/exec/score/macros/rtems/score/stack.inl | 50 - c/src/exec/score/macros/rtems/score/states.inl | 201 -- c/src/exec/score/macros/rtems/score/sysstate.inl | 77 - c/src/exec/score/macros/rtems/score/thread.inl | 193 -- c/src/exec/score/macros/rtems/score/threadmp.inl | 50 - c/src/exec/score/macros/rtems/score/tod.inl | 59 - c/src/exec/score/macros/rtems/score/tqdata.inl | 39 - c/src/exec/score/macros/rtems/score/userext.inl | 184 -- c/src/exec/score/macros/rtems/score/watchdog.inl | 202 -- c/src/exec/score/macros/rtems/score/wkspace.inl | 101 - c/src/exec/score/macros/stack.inl | 50 - c/src/exec/score/macros/states.inl | 201 -- c/src/exec/score/macros/sysstate.inl | 77 - c/src/exec/score/macros/thread.inl | 193 -- c/src/exec/score/macros/threadmp.inl | 50 - c/src/exec/score/macros/tod.inl | 59 - c/src/exec/score/macros/tqdata.inl | 39 - c/src/exec/score/macros/userext.inl | 184 -- c/src/exec/score/macros/watchdog.inl | 202 -- c/src/exec/score/macros/wkspace.inl | 101 - c/src/exec/score/src/chain.c | 202 -- c/src/exec/score/src/coretod.c | 236 -- c/src/exec/score/src/heap.c | 478 ---- c/src/exec/score/src/mpci.c | 237 -- c/src/exec/score/src/object.c | 228 -- c/src/exec/score/src/objectmp.c | 250 --- c/src/exec/score/src/thread.c | 805 ------- c/src/exec/score/src/threadmp.c | 229 -- c/src/exec/score/src/threadq.c | 837 ------- c/src/exec/score/src/tod.c | 236 -- c/src/exec/score/src/watchdog.c | 225 -- c/src/exec/score/src/wkspace.c | 47 - c/src/exec/score/tools/hppa1.1/genoffsets.c | 191 -- c/src/lib/include/clockdrv.h | 58 - c/src/lib/include/console.h | 40 - c/src/lib/include/iosupp.h | 44 - c/src/lib/include/rtems/libcsupport.h | 47 - c/src/lib/include/spurious.h | 38 - c/src/lib/include/timerdrv.h | 40 - c/src/lib/include/vmeintr.h | 58 - c/src/lib/libbsp/README | 46 - c/src/lib/libbsp/hppa1.1/simhppa/include/bsp.h | 93 - c/src/lib/libbsp/hppa1.1/simhppa/include/coverhd.h | 104 - c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/README | 9 - .../lib/libbsp/hppa1.1/simhppa/shmsupp/addrconv.c | 30 - c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/getcfg.c | 84 - c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/intr.c | 64 - c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/lock.c | 75 - c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/mpisr.c | 27 - .../lib/libbsp/hppa1.1/simhppa/startup/bspclean.c | 36 - .../lib/libbsp/hppa1.1/simhppa/startup/bspstart.c | 387 ---- c/src/lib/libbsp/hppa1.1/simhppa/startup/setvec.c | 66 - .../lib/libbsp/hppa1.1/simhppa/tools/print_dump.c | 332 --- c/src/lib/libbsp/i386/force386/clock/ckinit.c | 75 - c/src/lib/libbsp/i386/force386/console/console.c | 219 -- c/src/lib/libbsp/i386/force386/include/bsp.h | 156 -- c/src/lib/libbsp/i386/force386/include/coverhd.h | 104 - c/src/lib/libbsp/i386/force386/shmsupp/addrconv.c | 32 - c/src/lib/libbsp/i386/force386/shmsupp/getcfg.c | 73 - c/src/lib/libbsp/i386/force386/shmsupp/lock.c | 83 - c/src/lib/libbsp/i386/force386/shmsupp/mpisr.c | 31 - c/src/lib/libbsp/i386/force386/startup/bspstart.c | 144 -- c/src/lib/libbsp/i386/force386/startup/exit.c | 29 - c/src/lib/libbsp/i386/force386/startup/ldsegs.s | 86 - c/src/lib/libbsp/i386/force386/startup/linkcmds | 44 - c/src/lib/libbsp/i386/force386/startup/setvec.c | 59 - c/src/lib/libbsp/i386/force386/timer/timer.c | 96 - c/src/lib/libbsp/i386/force386/timer/timerisr.s | 34 - c/src/lib/libbsp/i960/cvme961/clock/ckinit.c | 77 - c/src/lib/libbsp/i960/cvme961/console/console.c | 147 -- c/src/lib/libbsp/i960/cvme961/include/bsp.h | 129 -- c/src/lib/libbsp/i960/cvme961/include/coverhd.h | 104 - c/src/lib/libbsp/i960/cvme961/shmsupp/addrconv.c | 37 - c/src/lib/libbsp/i960/cvme961/shmsupp/getcfg.c | 98 - c/src/lib/libbsp/i960/cvme961/shmsupp/lock.c | 77 - c/src/lib/libbsp/i960/cvme961/shmsupp/mpisr.c | 70 - c/src/lib/libbsp/i960/cvme961/startup/bspclean.c | 32 - c/src/lib/libbsp/i960/cvme961/startup/bspstart.c | 163 -- c/src/lib/libbsp/i960/cvme961/startup/exit.c | 38 - c/src/lib/libbsp/i960/cvme961/startup/linkcmds | 48 - c/src/lib/libbsp/i960/cvme961/startup/setvec.c | 145 -- c/src/lib/libbsp/i960/cvme961/timer/timer.c | 107 - c/src/lib/libbsp/i960/cvme961/timer/timerisr.s | 59 - c/src/lib/libbsp/m68k/dmv152/clock/ckinit.c | 101 - c/src/lib/libbsp/m68k/dmv152/console/console.c | 186 -- c/src/lib/libbsp/m68k/dmv152/include/bsp.h | 169 -- c/src/lib/libbsp/m68k/dmv152/include/coverhd.h | 104 - c/src/lib/libbsp/m68k/dmv152/spurious/spinit.c | 46 - c/src/lib/libbsp/m68k/dmv152/startup/bspstart.c | 171 -- c/src/lib/libbsp/m68k/dmv152/startup/linkcmds | 48 - c/src/lib/libbsp/m68k/dmv152/startup/vmeintr.c | 60 - c/src/lib/libbsp/m68k/dmv152/timer/timer.c | 105 - c/src/lib/libbsp/m68k/dmv152/timer/timerisr.s | 38 - c/src/lib/libbsp/m68k/idp/README | 31 - c/src/lib/libbsp/m68k/idp/clock/ckinit.c | 126 -- c/src/lib/libbsp/m68k/idp/console/console.c | 216 -- c/src/lib/libbsp/m68k/idp/console/duart.c | 170 -- c/src/lib/libbsp/m68k/idp/console/leds.c | 80 - c/src/lib/libbsp/m68k/idp/console/mc68ec.c | 18 - c/src/lib/libbsp/m68k/idp/include/README | 13 - c/src/lib/libbsp/m68k/idp/include/bsp.h | 79 - c/src/lib/libbsp/m68k/idp/include/coverhd.h | 106 - c/src/lib/libbsp/m68k/idp/include/leds.h | 25 - c/src/lib/libbsp/m68k/idp/startup/bspstart.c | 175 -- c/src/lib/libbsp/m68k/idp/startup/linkcmds | 44 - c/src/lib/libbsp/m68k/idp/timer/timer.c | 121 - c/src/lib/libbsp/m68k/idp/timer/timerisr.s | 38 - c/src/lib/libbsp/m68k/mvme136/clock/ckinit.c | 111 - c/src/lib/libbsp/m68k/mvme136/console/console.c | 159 -- c/src/lib/libbsp/m68k/mvme136/include/bsp.h | 142 -- c/src/lib/libbsp/m68k/mvme136/include/coverhd.h | 104 - c/src/lib/libbsp/m68k/mvme136/shmsupp/addrconv.c | 32 - c/src/lib/libbsp/m68k/mvme136/shmsupp/getcfg.c | 85 - c/src/lib/libbsp/m68k/mvme136/shmsupp/lock.c | 75 - c/src/lib/libbsp/m68k/mvme136/shmsupp/mpisr.c | 42 - c/src/lib/libbsp/m68k/mvme136/startup/bspclean.c | 46 - c/src/lib/libbsp/m68k/mvme136/startup/bspstart.c | 156 -- c/src/lib/libbsp/m68k/mvme136/startup/linkcmds | 48 - c/src/lib/libbsp/m68k/mvme136/timer/timer.c | 108 - c/src/lib/libbsp/m68k/mvme136/timer/timerisr.s | 39 - c/src/lib/libbsp/m68k/mvme162/README | 124 -- c/src/lib/libbsp/m68k/mvme162/clock/ckinit.c | 91 - c/src/lib/libbsp/m68k/mvme162/console/console.c | 193 -- c/src/lib/libbsp/m68k/mvme162/include/bsp.h | 225 -- c/src/lib/libbsp/m68k/mvme162/include/coverhd.h | 104 - c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c | 53 - c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c | 171 -- c/src/lib/libbsp/m68k/mvme162/startup/linkcmds | 50 - c/src/lib/libbsp/m68k/mvme162/timer/timer.c | 91 - c/src/lib/libbsp/m68k/mvme162/timer/timerisr.s | 46 - c/src/lib/libbsp/m68k/mvme162/tools/sload.c | 542 ----- c/src/lib/libbsp/no_cpu/no_bsp/README | 69 - c/src/lib/libbsp/no_cpu/no_bsp/clock/ckinit.c | 143 -- c/src/lib/libbsp/no_cpu/no_bsp/console/console.c | 158 -- c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h | 85 - c/src/lib/libbsp/no_cpu/no_bsp/include/coverhd.h | 115 - c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/addrconv.c | 31 - c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/getcfg.c | 77 - c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/lock.c | 86 - c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/mpisr.c | 47 - c/src/lib/libbsp/no_cpu/no_bsp/startup/bspclean.c | 26 - c/src/lib/libbsp/no_cpu/no_bsp/startup/bspstart.c | 164 -- c/src/lib/libbsp/no_cpu/no_bsp/startup/linkcmds | 46 - c/src/lib/libbsp/no_cpu/no_bsp/startup/main.c | 33 - c/src/lib/libbsp/no_cpu/no_bsp/startup/setvec.c | 44 - c/src/lib/libbsp/no_cpu/no_bsp/timer/timer.c | 105 - c/src/lib/libbsp/no_cpu/no_bsp/timer/timerisr.c | 37 - c/src/lib/libbsp/shmdr/README | 9 - c/src/lib/libbsp/shmdr/addlq.c | 43 - c/src/lib/libbsp/shmdr/cnvpkt.c | 42 - c/src/lib/libbsp/shmdr/dump.c | 50 - c/src/lib/libbsp/shmdr/fatal.c | 37 - c/src/lib/libbsp/shmdr/getlq.c | 46 - c/src/lib/libbsp/shmdr/getpkt.c | 36 - c/src/lib/libbsp/shmdr/init.c | 248 --- c/src/lib/libbsp/shmdr/initlq.c | 35 - c/src/lib/libbsp/shmdr/intr.c | 58 - c/src/lib/libbsp/shmdr/mpci.h | 59 - c/src/lib/libbsp/shmdr/mpisr.c | 23 - c/src/lib/libbsp/shmdr/poll.c | 40 - c/src/lib/libbsp/shmdr/receive.c | 44 - c/src/lib/libbsp/shmdr/retpkt.c | 32 - c/src/lib/libbsp/shmdr/send.c | 61 - c/src/lib/libbsp/shmdr/setckvec.c | 28 - c/src/lib/libbsp/shmdr/shm.h | 542 ----- c/src/lib/libbsp/shmdr/shm_driver.h | 542 ----- c/src/lib/libc/README | 37 - c/src/lib/libc/__brk.c | 40 - c/src/lib/libc/__gettod.c | 84 - c/src/lib/libc/__times.c | 65 - c/src/lib/libc/internal.h | 41 - c/src/lib/libc/libcsupport.h | 47 - c/src/lib/libc/malloc.c | 280 --- c/src/lib/libc/newlibc.c | 292 --- c/src/lib/libc/no_libc.c | 45 - c/src/lib/libc/support.c | 44 - c/src/lib/libc/syscalls.c | 77 - c/src/lib/libc/unixlibc.c | 7 - c/src/lib/libcpu/README | 14 - c/src/lib/libcpu/hppa1.1/clock/clock.c | 220 -- c/src/lib/libcpu/hppa1.1/runway/runway.h | 37 - c/src/lib/libcpu/hppa1.1/semaphore/semaphore.c | 308 --- c/src/lib/libcpu/hppa1.1/semaphore/semaphore.h | 84 - c/src/lib/libcpu/hppa1.1/timer/timer.c | 62 - c/src/lib/libmisc/README | 16 - c/src/lib/libmisc/monitor/README | 7 - c/src/lib/libmisc/monitor/mon-monitor.c | 307 --- c/src/lib/libmisc/monitor/mon-symbols.c | 327 --- c/src/lib/libmisc/monitor/monitor.h | 38 - c/src/lib/libmisc/monitor/symbols.h | 80 - c/src/lib/libmisc/stackchk/README | 41 - c/src/lib/libmisc/stackchk/check.c | 439 ---- c/src/lib/libmisc/stackchk/internal.h | 94 - c/src/lib/libmisc/stackchk/stackchk.h | 41 - c/src/lib/start/README | 10 - c/src/lib/start/i960/start.s | 105 - c/src/lib/start/m68k/start.s | 160 -- c/src/libchip/shmdr/README | 9 - c/src/libchip/shmdr/addlq.c | 43 - c/src/libchip/shmdr/cnvpkt.c | 42 - c/src/libchip/shmdr/dump.c | 50 - c/src/libchip/shmdr/fatal.c | 37 - c/src/libchip/shmdr/getlq.c | 46 - c/src/libchip/shmdr/getpkt.c | 36 - c/src/libchip/shmdr/init.c | 248 --- c/src/libchip/shmdr/initlq.c | 35 - c/src/libchip/shmdr/intr.c | 58 - c/src/libchip/shmdr/mpci.h | 59 - c/src/libchip/shmdr/mpisr.c | 23 - c/src/libchip/shmdr/poll.c | 40 - c/src/libchip/shmdr/receive.c | 44 - c/src/libchip/shmdr/retpkt.c | 32 - c/src/libchip/shmdr/send.c | 61 - c/src/libchip/shmdr/setckvec.c | 28 - c/src/libchip/shmdr/shm_driver.h | 542 ----- c/src/libmisc/README | 16 - c/src/libmisc/monitor/README | 7 - c/src/libmisc/monitor/mon-monitor.c | 307 --- c/src/libmisc/monitor/mon-symbols.c | 327 --- c/src/libmisc/monitor/monitor.h | 38 - c/src/libmisc/monitor/symbols.h | 80 - c/src/libmisc/stackchk/README | 41 - c/src/libmisc/stackchk/check.c | 439 ---- c/src/libmisc/stackchk/internal.h | 94 - c/src/libmisc/stackchk/stackchk.h | 41 - c/src/optman/rtems/no-dpmem.c | 69 - c/src/optman/rtems/no-event.c | 60 - c/src/optman/rtems/no-mp.c | 101 - c/src/optman/rtems/no-msg.c | 128 -- c/src/optman/rtems/no-part.c | 71 - c/src/optman/rtems/no-region.c | 83 - c/src/optman/rtems/no-rtmon.c | 78 - c/src/optman/rtems/no-sem.c | 82 - c/src/optman/rtems/no-signal.c | 37 - c/src/optman/rtems/no-timer.c | 84 - c/src/optman/sapi/no-ext.c | 49 - c/src/optman/sapi/no-io.c | 95 - c/src/tests/README | 39 - c/src/tests/libtests/README | 10 - c/src/tests/libtests/stackchk/blow.c | 47 - c/src/tests/libtests/stackchk/init.c | 89 - c/src/tests/libtests/stackchk/stackchk.scn | 9 - c/src/tests/libtests/stackchk/task1.c | 44 - c/src/tests/mptests/README | 10 - c/src/tests/mptests/mp01/init.c | 99 - c/src/tests/mptests/mp01/node1/mp01.doc | 53 - c/src/tests/mptests/mp01/node1/mp01.scn | 15 - c/src/tests/mptests/mp01/node2/mp01.doc | 13 - c/src/tests/mptests/mp01/node2/mp01.scn | 15 - c/src/tests/mptests/mp01/system.h | 30 - c/src/tests/mptests/mp01/task1.c | 84 - c/src/tests/mptests/mp02/init.c | 63 - c/src/tests/mptests/mp02/node1/mp02.doc | 47 - c/src/tests/mptests/mp02/node1/mp02.scn | 14 - c/src/tests/mptests/mp02/node2/mp02.doc | 13 - c/src/tests/mptests/mp02/node2/mp02.scn | 14 - c/src/tests/mptests/mp02/system.h | 30 - c/src/tests/mptests/mp02/task1.c | 118 - c/src/tests/mptests/mp03/delay.c | 31 - c/src/tests/mptests/mp03/init.c | 68 - c/src/tests/mptests/mp03/node1/mp03.doc | 45 - c/src/tests/mptests/mp03/node1/mp03.scn | 24 - c/src/tests/mptests/mp03/node2/mp03.doc | 13 - c/src/tests/mptests/mp03/node2/mp03.scn | 24 - c/src/tests/mptests/mp03/system.h | 30 - c/src/tests/mptests/mp03/task1.c | 155 -- c/src/tests/mptests/mp04/init.c | 63 - c/src/tests/mptests/mp04/node1/mp04.doc | 41 - c/src/tests/mptests/mp04/node1/mp04.scn | 8 - c/src/tests/mptests/mp04/node2/mp04.doc | 13 - c/src/tests/mptests/mp04/node2/mp04.scn | 8 - c/src/tests/mptests/mp04/system.h | 30 - c/src/tests/mptests/mp04/task1.c | 83 - c/src/tests/mptests/mp05/asr.c | 37 - c/src/tests/mptests/mp05/init.c | 68 - c/src/tests/mptests/mp05/node1/mp05.doc | 45 - c/src/tests/mptests/mp05/node1/mp05.scn | 11 - c/src/tests/mptests/mp05/node2/mp05.doc | 13 - c/src/tests/mptests/mp05/node2/mp05.scn | 10 - c/src/tests/mptests/mp05/system.h | 30 - c/src/tests/mptests/mp05/task1.c | 106 - c/src/tests/mptests/mp06/init.c | 68 - c/src/tests/mptests/mp06/node1/mp06.doc | 45 - c/src/tests/mptests/mp06/node1/mp06.scn | 11 - c/src/tests/mptests/mp06/node2/mp06.doc | 13 - c/src/tests/mptests/mp06/node2/mp06.scn | 12 - c/src/tests/mptests/mp06/system.h | 31 - c/src/tests/mptests/mp06/task1.c | 176 -- c/src/tests/mptests/mp07/init.c | 68 - c/src/tests/mptests/mp07/node1/mp07.doc | 46 - c/src/tests/mptests/mp07/node1/mp07.scn | 10 - c/src/tests/mptests/mp07/node2/mp07.doc | 13 - c/src/tests/mptests/mp07/node2/mp07.scn | 9 - c/src/tests/mptests/mp07/system.h | 28 - c/src/tests/mptests/mp07/task1.c | 95 - c/src/tests/mptests/mp08/init.c | 76 - c/src/tests/mptests/mp08/node1/mp08.doc | 52 - c/src/tests/mptests/mp08/node1/mp08.scn | 11 - c/src/tests/mptests/mp08/node2/mp08.doc | 13 - c/src/tests/mptests/mp08/node2/mp08.scn | 12 - c/src/tests/mptests/mp08/system.h | 30 - c/src/tests/mptests/mp08/task1.c | 89 - c/src/tests/mptests/mp09/init.c | 76 - c/src/tests/mptests/mp09/node1/mp09.doc | 50 - c/src/tests/mptests/mp09/node1/mp09.scn | 21 - c/src/tests/mptests/mp09/node2/mp09.doc | 13 - c/src/tests/mptests/mp09/node2/mp09.scn | 27 - c/src/tests/mptests/mp09/recvmsg.c | 45 - c/src/tests/mptests/mp09/sendmsg.c | 59 - c/src/tests/mptests/mp09/system.h | 30 - c/src/tests/mptests/mp09/task1.c | 107 - c/src/tests/mptests/mp10/init.c | 144 -- c/src/tests/mptests/mp10/node1/mp10.doc | 46 - c/src/tests/mptests/mp10/node1/mp10.scn | 4 - c/src/tests/mptests/mp10/node2/mp10.doc | 13 - c/src/tests/mptests/mp10/node2/mp10.scn | 19 - c/src/tests/mptests/mp10/system.h | 30 - c/src/tests/mptests/mp10/task1.c | 50 - c/src/tests/mptests/mp10/task2.c | 47 - c/src/tests/mptests/mp10/task3.c | 50 - c/src/tests/mptests/mp11/init.c | 106 - c/src/tests/mptests/mp11/node1/mp11.doc | 42 - c/src/tests/mptests/mp11/node1/mp11.scn | 10 - c/src/tests/mptests/mp11/node2/mp11.doc | 13 - c/src/tests/mptests/mp11/node2/mp11.scn | 2 - c/src/tests/mptests/mp11/system.h | 30 - c/src/tests/mptests/mp12/init.c | 116 - c/src/tests/mptests/mp12/node1/mp12.doc | 52 - c/src/tests/mptests/mp12/node1/mp12.scn | 6 - c/src/tests/mptests/mp12/node2/mp12.doc | 13 - c/src/tests/mptests/mp12/node2/mp12.scn | 10 - c/src/tests/mptests/mp12/system.h | 30 - c/src/tests/mptests/mp13/init.c | 116 - c/src/tests/mptests/mp13/node1/mp13.doc | 48 - c/src/tests/mptests/mp13/node1/mp13.scn | 14 - c/src/tests/mptests/mp13/node2/mp13.doc | 13 - c/src/tests/mptests/mp13/node2/mp13.scn | 16 - c/src/tests/mptests/mp13/system.h | 30 - c/src/tests/mptests/mp13/task1.c | 70 - c/src/tests/mptests/mp13/task2.c | 106 - c/src/tests/mptests/mp14/delay.c | 34 - c/src/tests/mptests/mp14/evtask1.c | 86 - c/src/tests/mptests/mp14/evtmtask.c | 65 - c/src/tests/mptests/mp14/exit.c | 33 - c/src/tests/mptests/mp14/init.c | 194 -- c/src/tests/mptests/mp14/msgtask1.c | 102 - c/src/tests/mptests/mp14/node1/mp14.doc | 50 - c/src/tests/mptests/mp14/node1/mp14.scn | 38 - c/src/tests/mptests/mp14/node2/mp14.doc | 13 - c/src/tests/mptests/mp14/node2/mp14.scn | 35 - c/src/tests/mptests/mp14/pttask1.c | 65 - c/src/tests/mptests/mp14/smtask1.c | 70 - c/src/tests/mptests/mp14/system.h | 31 - c/src/tests/samples/README | 71 - c/src/tests/samples/base_mp/apptask.c | 38 - c/src/tests/samples/base_mp/init.c | 46 - c/src/tests/samples/base_mp/node1/base_mp.doc | 13 - c/src/tests/samples/base_mp/node1/base_mp.scn | 5 - c/src/tests/samples/base_mp/node2/base_mp.doc | 13 - c/src/tests/samples/base_mp/node2/base_mp.scn | 5 - c/src/tests/samples/base_mp/system.h | 31 - c/src/tests/samples/base_sp/apptask.c | 39 - c/src/tests/samples/base_sp/base_sp.doc | 13 - c/src/tests/samples/base_sp/base_sp.scn | 5 - c/src/tests/samples/base_sp/init.c | 51 - c/src/tests/samples/base_sp/system.h | 30 - c/src/tests/samples/cdtest/cdtest.scn | 31 - c/src/tests/samples/cdtest/init.c | 30 - c/src/tests/samples/cdtest/main.cc | 146 -- c/src/tests/samples/cdtest/system.h | 30 - c/src/tests/samples/hello/hello.doc | 13 - c/src/tests/samples/hello/hello.scn | 3 - c/src/tests/samples/hello/init.c | 41 - c/src/tests/samples/hello/system.h | 30 - c/src/tests/samples/paranoia/init.c | 43 - c/src/tests/samples/paranoia/paranoia.c | 2300 -------------------- c/src/tests/samples/paranoia/paranoia.doc | 13 - c/src/tests/samples/paranoia/system.h | 30 - c/src/tests/samples/ticker/init.c | 58 - c/src/tests/samples/ticker/system.h | 30 - c/src/tests/samples/ticker/tasks.c | 44 - c/src/tests/samples/ticker/ticker.doc | 13 - c/src/tests/samples/ticker/ticker.scn | 16 - c/src/tests/sptests/README | 9 - c/src/tests/sptests/sp01/init.c | 89 - c/src/tests/sptests/sp01/sp01.doc | 43 - c/src/tests/sptests/sp01/sp01.scn | 18 - c/src/tests/sptests/sp01/system.h | 30 - c/src/tests/sptests/sp01/task1.c | 50 - c/src/tests/sptests/sp02/init.c | 155 -- c/src/tests/sptests/sp02/preempt.c | 32 - c/src/tests/sptests/sp02/sp02.doc | 37 - c/src/tests/sptests/sp02/sp02.scn | 15 - c/src/tests/sptests/sp02/system.h | 31 - c/src/tests/sptests/sp02/task1.c | 66 - c/src/tests/sptests/sp02/task2.c | 34 - c/src/tests/sptests/sp02/task3.c | 37 - c/src/tests/sptests/sp03/init.c | 70 - c/src/tests/sptests/sp03/sp03.doc | 24 - c/src/tests/sptests/sp03/sp03.scn | 26 - c/src/tests/sptests/sp03/system.h | 30 - c/src/tests/sptests/sp03/task1.c | 59 - c/src/tests/sptests/sp03/task2.c | 46 - c/src/tests/sptests/sp04/init.c | 113 - c/src/tests/sptests/sp04/sp04.doc | 38 - c/src/tests/sptests/sp04/sp04.scn | 24 - c/src/tests/sptests/sp04/system.h | 30 - c/src/tests/sptests/sp04/task1.c | 104 - c/src/tests/sptests/sp04/task2.c | 29 - c/src/tests/sptests/sp04/task3.c | 29 - c/src/tests/sptests/sp04/tswitch.c | 59 - c/src/tests/sptests/sp05/init.c | 84 - c/src/tests/sptests/sp05/sp05.doc | 26 - c/src/tests/sptests/sp05/sp05.scn | 47 - c/src/tests/sptests/sp05/system.h | 30 - c/src/tests/sptests/sp05/task1.c | 78 - c/src/tests/sptests/sp05/task2.c | 39 - c/src/tests/sptests/sp05/task3.c | 39 - c/src/tests/sptests/sp06/init.c | 90 - c/src/tests/sptests/sp06/sp06.doc | 26 - c/src/tests/sptests/sp06/sp06.scn | 40 - c/src/tests/sptests/sp06/system.h | 30 - c/src/tests/sptests/sp06/task1.c | 61 - c/src/tests/sptests/sp06/task2.c | 40 - c/src/tests/sptests/sp06/task3.c | 32 - c/src/tests/sptests/sp07/init.c | 131 -- c/src/tests/sptests/sp07/sp07.doc | 37 - c/src/tests/sptests/sp07/sp07.scn | 33 - c/src/tests/sptests/sp07/system.h | 35 - c/src/tests/sptests/sp07/task1.c | 85 - c/src/tests/sptests/sp07/task2.c | 78 - c/src/tests/sptests/sp07/task3.c | 34 - c/src/tests/sptests/sp07/task4.c | 30 - c/src/tests/sptests/sp07/taskexit.c | 33 - c/src/tests/sptests/sp07/tcreate.c | 34 - c/src/tests/sptests/sp07/tdelete.c | 37 - c/src/tests/sptests/sp07/trestart.c | 34 - c/src/tests/sptests/sp07/tstart.c | 34 - c/src/tests/sptests/sp08/init.c | 56 - c/src/tests/sptests/sp08/sp08.doc | 26 - c/src/tests/sptests/sp08/sp08.scn | 22 - c/src/tests/sptests/sp08/system.h | 33 - c/src/tests/sptests/sp08/task1.c | 256 --- c/src/tests/sptests/sp09/delay.c | 28 - c/src/tests/sptests/sp09/init.c | 123 -- c/src/tests/sptests/sp09/isr.c | 27 - c/src/tests/sptests/sp09/screen01.c | 168 -- c/src/tests/sptests/sp09/screen02.c | 192 -- c/src/tests/sptests/sp09/screen03.c | 204 -- c/src/tests/sptests/sp09/screen04.c | 85 - c/src/tests/sptests/sp09/screen05.c | 148 -- c/src/tests/sptests/sp09/screen06.c | 125 -- c/src/tests/sptests/sp09/screen07.c | 184 -- c/src/tests/sptests/sp09/screen08.c | 121 - c/src/tests/sptests/sp09/screen09.c | 140 -- c/src/tests/sptests/sp09/screen10.c | 164 -- c/src/tests/sptests/sp09/screen11.c | 250 --- c/src/tests/sptests/sp09/screen12.c | 327 --- c/src/tests/sptests/sp09/screen13.c | 115 - c/src/tests/sptests/sp09/screen14.c | 162 -- c/src/tests/sptests/sp09/sp09.doc | 36 - c/src/tests/sptests/sp09/sp09.scn | 249 --- c/src/tests/sptests/sp09/system.h | 30 - c/src/tests/sptests/sp09/task1.c | 74 - c/src/tests/sptests/sp09/task2.c | 48 - c/src/tests/sptests/sp09/task3.c | 51 - c/src/tests/sptests/sp09/task4.c | 50 - c/src/tests/sptests/sp11/init.c | 95 - c/src/tests/sptests/sp11/sp11.doc | 26 - c/src/tests/sptests/sp11/sp11.scn | 74 - c/src/tests/sptests/sp11/system.h | 30 - c/src/tests/sptests/sp11/task1.c | 410 ---- c/src/tests/sptests/sp11/task2.c | 126 -- c/src/tests/sptests/sp11/timer.c | 97 - c/src/tests/sptests/sp12/init.c | 176 -- c/src/tests/sptests/sp12/pridrv.c | 131 -- c/src/tests/sptests/sp12/pritask.c | 91 - c/src/tests/sptests/sp12/sp12.doc | 27 - c/src/tests/sptests/sp12/sp12.scn | 78 - c/src/tests/sptests/sp12/system.h | 30 - c/src/tests/sptests/sp12/task1.c | 153 -- c/src/tests/sptests/sp12/task2.c | 65 - c/src/tests/sptests/sp12/task3.c | 50 - c/src/tests/sptests/sp12/task4.c | 37 - c/src/tests/sptests/sp12/task5.c | 55 - c/src/tests/sptests/sp13/fillbuff.c | 31 - c/src/tests/sptests/sp13/init.c | 112 - c/src/tests/sptests/sp13/putbuff.c | 31 - c/src/tests/sptests/sp13/sp13.doc | 25 - c/src/tests/sptests/sp13/sp13.scn | 66 - c/src/tests/sptests/sp13/system.h | 30 - c/src/tests/sptests/sp13/task1.c | 213 -- c/src/tests/sptests/sp13/task2.c | 132 -- c/src/tests/sptests/sp13/task3.c | 74 - c/src/tests/sptests/sp14/asr.c | 47 - c/src/tests/sptests/sp14/init.c | 75 - c/src/tests/sptests/sp14/sp14.doc | 24 - c/src/tests/sptests/sp14/sp14.scn | 33 - c/src/tests/sptests/sp14/system.h | 30 - c/src/tests/sptests/sp14/task1.c | 116 - c/src/tests/sptests/sp14/task2.c | 48 - c/src/tests/sptests/sp15/init.c | 81 - c/src/tests/sptests/sp15/sp15.doc | 24 - c/src/tests/sptests/sp15/sp15.scn | 16 - c/src/tests/sptests/sp15/system.h | 30 - c/src/tests/sptests/sp15/task1.c | 129 -- c/src/tests/sptests/sp16/init.c | 131 -- c/src/tests/sptests/sp16/sp16.doc | 24 - c/src/tests/sptests/sp16/sp16.scn | 58 - c/src/tests/sptests/sp16/system.h | 32 - c/src/tests/sptests/sp16/task1.c | 282 --- c/src/tests/sptests/sp16/task2.c | 86 - c/src/tests/sptests/sp16/task3.c | 57 - c/src/tests/sptests/sp16/task4.c | 60 - c/src/tests/sptests/sp16/task5.c | 73 - c/src/tests/sptests/sp17/asr.c | 32 - c/src/tests/sptests/sp17/init.c | 72 - c/src/tests/sptests/sp17/sp17.doc | 35 - c/src/tests/sptests/sp17/sp17.scn | 8 - c/src/tests/sptests/sp17/system.h | 30 - c/src/tests/sptests/sp17/task1.c | 48 - c/src/tests/sptests/sp17/task2.c | 45 - c/src/tests/sptests/sp19/first.c | 66 - c/src/tests/sptests/sp19/fptask.c | 98 - c/src/tests/sptests/sp19/fptest.h | 165 -- c/src/tests/sptests/sp19/init.c | 153 -- c/src/tests/sptests/sp19/inttest.h | 149 -- c/src/tests/sptests/sp19/sp19.doc | 23 - c/src/tests/sptests/sp19/sp19.scn | 55 - c/src/tests/sptests/sp19/system.h | 30 - c/src/tests/sptests/sp19/task1.c | 59 - c/src/tests/sptests/sp20/getall.c | 43 - c/src/tests/sptests/sp20/init.c | 71 - c/src/tests/sptests/sp20/sp20.doc | 24 - c/src/tests/sptests/sp20/sp20.scn | 27 - c/src/tests/sptests/sp20/system.h | 34 - c/src/tests/sptests/sp20/task1.c | 116 - c/src/tests/sptests/sp21/init.c | 56 - c/src/tests/sptests/sp21/sp21.doc | 28 - c/src/tests/sptests/sp21/sp21.scn | 19 - c/src/tests/sptests/sp21/system.h | 30 - c/src/tests/sptests/sp21/task1.c | 106 - c/src/tests/sptests/sp22/delay.c | 32 - c/src/tests/sptests/sp22/init.c | 69 - c/src/tests/sptests/sp22/prtime.c | 32 - c/src/tests/sptests/sp22/sp22.doc | 20 - c/src/tests/sptests/sp22/sp22.scn | 29 - c/src/tests/sptests/sp22/system.h | 30 - c/src/tests/sptests/sp22/task1.c | 164 -- c/src/tests/sptests/sp23/init.c | 72 - c/src/tests/sptests/sp23/sp23.doc | 26 - c/src/tests/sptests/sp23/sp23.scn | 9 - c/src/tests/sptests/sp23/system.h | 30 - c/src/tests/sptests/sp23/task1.c | 96 - c/src/tests/sptests/sp24/init.c | 79 - c/src/tests/sptests/sp24/resume.c | 34 - c/src/tests/sptests/sp24/sp24.doc | 51 - c/src/tests/sptests/sp24/system.h | 30 - c/src/tests/sptests/sp24/task1.c | 58 - c/src/tests/sptests/sp25/init.c | 69 - c/src/tests/sptests/sp25/sp25.doc | 32 - c/src/tests/sptests/sp25/sp25.scn | 29 - c/src/tests/sptests/sp25/system.h | 32 - c/src/tests/sptests/sp25/task1.c | 241 -- c/src/tests/sptests/spfatal/fatal.c | 134 -- c/src/tests/sptests/spfatal/init.c | 54 - c/src/tests/sptests/spfatal/puterr.c | 68 - c/src/tests/sptests/spfatal/spfatal.doc | 28 - c/src/tests/sptests/spfatal/spfatal.scn | 8 - c/src/tests/sptests/spfatal/system.h | 30 - c/src/tests/sptests/spfatal/task1.c | 29 - c/src/tests/sptests/spsize/getint.c | 32 - c/src/tests/sptests/spsize/init.c | 58 - c/src/tests/sptests/spsize/size.c | 601 ----- c/src/tests/support/include/tmacros.h | 116 - c/src/tests/support/stubdr/close.c | 38 - c/src/tests/support/stubdr/cntrl.c | 38 - c/src/tests/support/stubdr/init.c | 41 - c/src/tests/support/stubdr/open.c | 38 - c/src/tests/support/stubdr/read.c | 38 - c/src/tests/support/stubdr/stubdrv.h | 81 - c/src/tests/support/stubdr/write.c | 38 - c/src/tests/tmtests/README | 21 - c/src/tests/tmtests/include/timesys.h | 30 - c/src/tests/tmtests/tm01/system.h | 23 - c/src/tests/tmtests/tm01/task1.c | 187 -- c/src/tests/tmtests/tm01/tm01.doc | 13 - c/src/tests/tmtests/tm02/system.h | 23 - c/src/tests/tmtests/tm02/task1.c | 156 -- c/src/tests/tmtests/tm02/tm02.doc | 13 - c/src/tests/tmtests/tm03/system.h | 23 - c/src/tests/tmtests/tm03/task1.c | 149 -- c/src/tests/tmtests/tm03/tm03.doc | 13 - c/src/tests/tmtests/tm04/system.h | 23 - c/src/tests/tmtests/tm04/task1.c | 387 ---- c/src/tests/tmtests/tm04/tm04.doc | 13 - c/src/tests/tmtests/tm05/system.h | 23 - c/src/tests/tmtests/tm05/task1.c | 132 -- c/src/tests/tmtests/tm05/tm05.doc | 13 - c/src/tests/tmtests/tm06/system.h | 23 - c/src/tests/tmtests/tm06/task1.c | 162 -- c/src/tests/tmtests/tm06/tm06.doc | 13 - c/src/tests/tmtests/tm07/system.h | 23 - c/src/tests/tmtests/tm07/task1.c | 120 - c/src/tests/tmtests/tm07/tm07.doc | 13 - c/src/tests/tmtests/tm08/system.h | 23 - c/src/tests/tmtests/tm08/task1.c | 255 --- c/src/tests/tmtests/tm08/tm08.doc | 13 - c/src/tests/tmtests/tm09/system.h | 23 - c/src/tests/tmtests/tm09/task1.c | 221 -- c/src/tests/tmtests/tm09/tm09.doc | 13 - c/src/tests/tmtests/tm10/system.h | 23 - c/src/tests/tmtests/tm10/task1.c | 156 -- c/src/tests/tmtests/tm10/tm10.doc | 13 - c/src/tests/tmtests/tm11/system.h | 23 - c/src/tests/tmtests/tm11/task1.c | 148 -- c/src/tests/tmtests/tm11/tm11.doc | 13 - c/src/tests/tmtests/tm12/system.h | 23 - c/src/tests/tmtests/tm12/task1.c | 142 -- c/src/tests/tmtests/tm12/tm12.doc | 13 - c/src/tests/tmtests/tm13/system.h | 23 - c/src/tests/tmtests/tm13/task1.c | 147 -- c/src/tests/tmtests/tm13/tm13.doc | 13 - c/src/tests/tmtests/tm14/system.h | 23 - c/src/tests/tmtests/tm14/task1.c | 142 -- c/src/tests/tmtests/tm14/tm14.doc | 13 - c/src/tests/tmtests/tm15/system.h | 23 - c/src/tests/tmtests/tm15/task1.c | 222 -- c/src/tests/tmtests/tm15/tm15.doc | 13 - c/src/tests/tmtests/tm16/system.h | 23 - c/src/tests/tmtests/tm16/task1.c | 148 -- c/src/tests/tmtests/tm16/tm16.doc | 13 - c/src/tests/tmtests/tm17/system.h | 23 - c/src/tests/tmtests/tm17/task1.c | 127 -- c/src/tests/tmtests/tm17/tm17.doc | 13 - c/src/tests/tmtests/tm18/system.h | 23 - c/src/tests/tmtests/tm18/task1.c | 112 - c/src/tests/tmtests/tm18/tm18.doc | 13 - c/src/tests/tmtests/tm19/system.h | 23 - c/src/tests/tmtests/tm19/task1.c | 212 -- c/src/tests/tmtests/tm19/tm19.doc | 13 - c/src/tests/tmtests/tm20/system.h | 23 - c/src/tests/tmtests/tm20/task1.c | 467 ---- c/src/tests/tmtests/tm20/tm20.doc | 13 - c/src/tests/tmtests/tm21/system.h | 23 - c/src/tests/tmtests/tm21/task1.c | 234 -- c/src/tests/tmtests/tm21/tm21.doc | 13 - c/src/tests/tmtests/tm22/system.h | 23 - c/src/tests/tmtests/tm22/task1.c | 193 -- c/src/tests/tmtests/tm22/tm22.doc | 13 - c/src/tests/tmtests/tm23/system.h | 23 - c/src/tests/tmtests/tm23/task1.c | 302 --- c/src/tests/tmtests/tm23/tm23.doc | 13 - c/src/tests/tmtests/tm24/system.h | 23 - c/src/tests/tmtests/tm24/task1.c | 124 -- c/src/tests/tmtests/tm24/tm24.doc | 13 - c/src/tests/tmtests/tm25/system.h | 23 - c/src/tests/tmtests/tm25/task1.c | 108 - c/src/tests/tmtests/tm25/tm25.doc | 13 - c/src/tests/tmtests/tm26/fptest.h | 165 -- c/src/tests/tmtests/tm26/system.h | 23 - c/src/tests/tmtests/tm26/task1.c | 470 ---- c/src/tests/tmtests/tm26/tm26.doc | 13 - c/src/tests/tmtests/tm27/system.h | 23 - c/src/tests/tmtests/tm27/task1.c | 237 -- c/src/tests/tmtests/tm27/tm27.doc | 13 - c/src/tests/tmtests/tm28/system.h | 23 - c/src/tests/tmtests/tm28/task1.c | 134 -- c/src/tests/tmtests/tm28/tm28.doc | 13 - c/src/tests/tmtests/tm29/system.h | 23 - c/src/tests/tmtests/tm29/task1.c | 207 -- c/src/tests/tmtests/tm29/tm29.doc | 13 - c/src/tests/tmtests/tmck/system.h | 23 - c/src/tests/tmtests/tmck/task1.c | 180 -- c/src/tests/tmtests/tmck/tmck.doc | 20 - c/src/tests/tmtests/tmoverhd/dumrtems.h | 255 --- c/src/tests/tmtests/tmoverhd/empty.c | 41 - c/src/tests/tmtests/tmoverhd/system.h | 23 - c/src/tests/tmtests/tmoverhd/testtask.c | 1279 ----------- c/src/tests/tmtests/tmoverhd/tmoverhd.doc | 13 - c/src/tests/tools/generic/difftest | 110 - c/update-tools/310_to_320_list | 543 ----- c/update-tools/README | 7 - cpukit/libcsupport/include/clockdrv.h | 58 - cpukit/libcsupport/include/console.h | 40 - cpukit/libcsupport/include/iosupp.h | 44 - cpukit/libcsupport/include/rtems/libcsupport.h | 47 - cpukit/libcsupport/include/spurious.h | 38 - cpukit/libcsupport/include/timerdrv.h | 40 - cpukit/libcsupport/include/vmeintr.h | 58 - cpukit/libcsupport/src/README | 37 - cpukit/libcsupport/src/__brk.c | 40 - cpukit/libcsupport/src/__gettod.c | 84 - cpukit/libcsupport/src/__times.c | 65 - cpukit/libcsupport/src/malloc.c | 280 --- cpukit/libcsupport/src/newlibc.c | 292 --- cpukit/libcsupport/src/no_libc.c | 45 - cpukit/libcsupport/src/unixlibc.c | 7 - cpukit/libmisc/README | 16 - cpukit/libmisc/monitor/README | 7 - cpukit/libmisc/monitor/mon-monitor.c | 307 --- cpukit/libmisc/monitor/mon-symbols.c | 327 --- cpukit/libmisc/monitor/monitor.h | 38 - cpukit/libmisc/monitor/symbols.h | 80 - cpukit/libmisc/stackchk/README | 41 - cpukit/libmisc/stackchk/check.c | 439 ---- cpukit/libmisc/stackchk/internal.h | 94 - cpukit/libmisc/stackchk/stackchk.h | 41 - cpukit/rtems/include/rtems.h | 79 - cpukit/rtems/include/rtems/rtems/asr.h | 177 -- cpukit/rtems/include/rtems/rtems/attr.h | 188 -- cpukit/rtems/include/rtems/rtems/clock.h | 102 - cpukit/rtems/include/rtems/rtems/dpmem.h | 210 -- cpukit/rtems/include/rtems/rtems/event.h | 158 -- cpukit/rtems/include/rtems/rtems/eventmp.h | 147 -- cpukit/rtems/include/rtems/rtems/eventset.h | 142 -- cpukit/rtems/include/rtems/rtems/intr.h | 125 -- cpukit/rtems/include/rtems/rtems/message.h | 461 ---- cpukit/rtems/include/rtems/rtems/modes.h | 183 -- cpukit/rtems/include/rtems/rtems/mp.h | 67 - cpukit/rtems/include/rtems/rtems/msgmp.h | 175 -- cpukit/rtems/include/rtems/rtems/options.h | 79 - cpukit/rtems/include/rtems/rtems/part.h | 290 --- cpukit/rtems/include/rtems/rtems/partmp.h | 160 -- cpukit/rtems/include/rtems/rtems/ratemon.h | 285 --- cpukit/rtems/include/rtems/rtems/region.h | 311 --- cpukit/rtems/include/rtems/rtems/regionmp.h | 165 -- cpukit/rtems/include/rtems/rtems/sem.h | 238 -- cpukit/rtems/include/rtems/rtems/semmp.h | 163 -- cpukit/rtems/include/rtems/rtems/signal.h | 72 - cpukit/rtems/include/rtems/rtems/signalmp.h | 147 -- cpukit/rtems/include/rtems/rtems/status.h | 109 - cpukit/rtems/include/rtems/rtems/taskmp.h | 167 -- cpukit/rtems/include/rtems/rtems/tasks.h | 315 --- cpukit/rtems/include/rtems/rtems/timer.h | 292 --- cpukit/rtems/inline/rtems/rtems/asr.inl | 105 - cpukit/rtems/inline/rtems/rtems/attr.inl | 125 -- cpukit/rtems/inline/rtems/rtems/dpmem.inl | 75 - cpukit/rtems/inline/rtems/rtems/event.inl | 30 - cpukit/rtems/inline/rtems/rtems/eventset.inl | 71 - cpukit/rtems/inline/rtems/rtems/message.inl | 160 -- cpukit/rtems/inline/rtems/rtems/modes.inl | 136 -- cpukit/rtems/inline/rtems/rtems/options.inl | 47 - cpukit/rtems/inline/rtems/rtems/part.inl | 157 -- cpukit/rtems/inline/rtems/rtems/ratemon.inl | 113 - cpukit/rtems/inline/rtems/rtems/region.inl | 101 - cpukit/rtems/inline/rtems/rtems/sem.inl | 73 - cpukit/rtems/inline/rtems/rtems/status.inl | 60 - cpukit/rtems/inline/rtems/rtems/tasks.inl | 90 - cpukit/rtems/inline/rtems/rtems/timer.inl | 112 - cpukit/rtems/macros/rtems/rtems/asr.inl | 89 - cpukit/rtems/macros/rtems/rtems/attr.inl | 91 - cpukit/rtems/macros/rtems/rtems/dpmem.inl | 59 - cpukit/rtems/macros/rtems/rtems/event.inl | 28 - cpukit/rtems/macros/rtems/rtems/eventset.inl | 53 - cpukit/rtems/macros/rtems/rtems/message.inl | 118 - cpukit/rtems/macros/rtems/rtems/modes.inl | 101 - cpukit/rtems/macros/rtems/rtems/options.inl | 39 - cpukit/rtems/macros/rtems/rtems/part.inl | 117 - cpukit/rtems/macros/rtems/rtems/ratemon.inl | 85 - cpukit/rtems/macros/rtems/rtems/region.inl | 75 - cpukit/rtems/macros/rtems/rtems/sem.inl | 58 - cpukit/rtems/macros/rtems/rtems/status.inl | 47 - cpukit/rtems/macros/rtems/rtems/tasks.inl | 82 - cpukit/rtems/macros/rtems/rtems/timer.inl | 85 - cpukit/rtems/src/dpmem.c | 268 --- cpukit/rtems/src/event.c | 294 --- cpukit/rtems/src/eventmp.c | 188 -- cpukit/rtems/src/intr.c | 85 - cpukit/rtems/src/mp.c | 128 -- cpukit/rtems/src/msg.c | 708 ------ cpukit/rtems/src/msgmp.c | 397 ---- cpukit/rtems/src/part.c | 322 --- cpukit/rtems/src/partmp.c | 300 --- cpukit/rtems/src/ratemon.c | 401 ---- cpukit/rtems/src/region.c | 456 ---- cpukit/rtems/src/regionmp.c | 308 --- cpukit/rtems/src/rtclock.c | 153 -- cpukit/rtems/src/rtemstimer.c | 343 --- cpukit/rtems/src/sem.c | 483 ---- cpukit/rtems/src/semmp.c | 306 --- cpukit/rtems/src/signal.c | 110 - cpukit/rtems/src/signalmp.c | 187 -- cpukit/rtems/src/taskmp.c | 338 --- cpukit/rtems/src/tasks.c | 816 ------- cpukit/sapi/include/rtems/config.h | 321 --- cpukit/sapi/include/rtems/extension.h | 169 -- cpukit/sapi/include/rtems/fatal.h | 49 - cpukit/sapi/include/rtems/init.h | 101 - cpukit/sapi/include/rtems/io.h | 204 -- cpukit/sapi/include/rtems/mptables.h | 29 - cpukit/sapi/inline/rtems/extension.inl | 73 - cpukit/sapi/macros/rtems/extension.inl | 58 - cpukit/sapi/src/debug.c | 62 - cpukit/sapi/src/exinit.c | 245 --- cpukit/sapi/src/extension.c | 156 -- cpukit/sapi/src/fatal.c | 54 - cpukit/sapi/src/io.c | 316 --- cpukit/score/cpu/hppa1.1/cpu.c | 313 --- cpukit/score/cpu/i386/asm.h | 131 -- cpukit/score/cpu/i386/cpu.c | 121 - cpukit/score/cpu/i386/rtems/asm.h | 131 -- cpukit/score/cpu/i960/asm.h | 107 - cpukit/score/cpu/i960/cpu.c | 124 -- cpukit/score/cpu/m68k/asm.h | 127 -- cpukit/score/cpu/m68k/cpu.c | 97 - cpukit/score/cpu/m68k/rtems/asm.h | 127 -- cpukit/score/cpu/no_cpu/asm.h | 98 - cpukit/score/cpu/no_cpu/cpu.c | 132 -- cpukit/score/cpu/no_cpu/cpu_asm.c | 152 -- cpukit/score/cpu/no_cpu/rtems/asm.h | 98 - cpukit/score/cpu/unix/cpu.c | 529 ----- cpukit/score/include/rtems/debug.h | 98 - cpukit/score/include/rtems/score/address.h | 122 -- cpukit/score/include/rtems/score/bitfield.h | 49 - cpukit/score/include/rtems/score/chain.h | 432 ---- cpukit/score/include/rtems/score/context.h | 133 -- cpukit/score/include/rtems/score/copyrt.h | 42 - cpukit/score/include/rtems/score/heap.h | 396 ---- cpukit/score/include/rtems/score/isr.h | 239 -- cpukit/score/include/rtems/score/mpci.h | 171 -- cpukit/score/include/rtems/score/mppkt.h | 123 -- cpukit/score/include/rtems/score/object.h | 380 ---- cpukit/score/include/rtems/score/objectmp.h | 165 -- cpukit/score/include/rtems/score/priority.h | 195 -- cpukit/score/include/rtems/score/stack.h | 95 - cpukit/score/include/rtems/score/states.h | 337 --- cpukit/score/include/rtems/score/sysstate.h | 143 -- cpukit/score/include/rtems/score/thread.h | 721 ------ cpukit/score/include/rtems/score/threadmp.h | 134 -- cpukit/score/include/rtems/score/threadq.h | 264 --- cpukit/score/include/rtems/score/tod.h | 300 --- cpukit/score/include/rtems/score/tqdata.h | 90 - cpukit/score/include/rtems/score/userext.h | 213 -- cpukit/score/include/rtems/score/watchdog.h | 471 ---- cpukit/score/include/rtems/score/wkspace.h | 99 - cpukit/score/include/rtems/system.h | 132 -- cpukit/score/inline/rtems/score/address.inl | 109 - cpukit/score/inline/rtems/score/chain.inl | 292 --- cpukit/score/inline/rtems/score/heap.inl | 203 -- cpukit/score/inline/rtems/score/isr.inl | 70 - cpukit/score/inline/rtems/score/mppkt.inl | 49 - cpukit/score/inline/rtems/score/object.inl | 198 -- cpukit/score/inline/rtems/score/objectmp.inl | 62 - cpukit/score/inline/rtems/score/priority.inl | 168 -- cpukit/score/inline/rtems/score/stack.inl | 63 - cpukit/score/inline/rtems/score/states.inl | 285 --- cpukit/score/inline/rtems/score/sysstate.inl | 103 - cpukit/score/inline/rtems/score/thread.inl | 252 --- cpukit/score/inline/rtems/score/threadmp.inl | 53 - cpukit/score/inline/rtems/score/tod.inl | 72 - cpukit/score/inline/rtems/score/tqdata.inl | 47 - cpukit/score/inline/rtems/score/userext.inl | 268 --- cpukit/score/inline/rtems/score/watchdog.inl | 296 --- cpukit/score/inline/rtems/score/wkspace.inl | 104 - cpukit/score/macros/README | 18 - cpukit/score/macros/rtems/score/README | 18 - cpukit/score/macros/rtems/score/address.inl | 79 - cpukit/score/macros/rtems/score/chain.inl | 200 -- cpukit/score/macros/rtems/score/heap.inl | 136 -- cpukit/score/macros/rtems/score/isr.inl | 60 - cpukit/score/macros/rtems/score/mppkt.inl | 41 - cpukit/score/macros/rtems/score/object.inl | 146 -- cpukit/score/macros/rtems/score/objectmp.inl | 50 - cpukit/score/macros/rtems/score/priority.inl | 144 -- cpukit/score/macros/rtems/score/stack.inl | 50 - cpukit/score/macros/rtems/score/states.inl | 201 -- cpukit/score/macros/rtems/score/sysstate.inl | 77 - cpukit/score/macros/rtems/score/thread.inl | 193 -- cpukit/score/macros/rtems/score/threadmp.inl | 50 - cpukit/score/macros/rtems/score/tod.inl | 59 - cpukit/score/macros/rtems/score/tqdata.inl | 39 - cpukit/score/macros/rtems/score/userext.inl | 184 -- cpukit/score/macros/rtems/score/watchdog.inl | 202 -- cpukit/score/macros/rtems/score/wkspace.inl | 101 - cpukit/score/src/chain.c | 202 -- cpukit/score/src/coretod.c | 236 -- cpukit/score/src/heap.c | 478 ---- cpukit/score/src/mpci.c | 237 -- cpukit/score/src/object.c | 228 -- cpukit/score/src/objectmp.c | 250 --- cpukit/score/src/thread.c | 805 ------- cpukit/score/src/threadmp.c | 229 -- cpukit/score/src/threadq.c | 837 ------- cpukit/score/src/watchdog.c | 225 -- cpukit/score/src/wkspace.c | 47 - testsuites/README | 39 - testsuites/libtests/README | 10 - testsuites/libtests/stackchk/blow.c | 47 - testsuites/libtests/stackchk/init.c | 89 - testsuites/libtests/stackchk/stackchk.scn | 9 - testsuites/libtests/stackchk/task1.c | 44 - testsuites/mptests/README | 10 - testsuites/mptests/mp01/init.c | 99 - testsuites/mptests/mp01/node1/mp01.doc | 53 - testsuites/mptests/mp01/node1/mp01.scn | 15 - testsuites/mptests/mp01/node2/mp01.doc | 13 - testsuites/mptests/mp01/node2/mp01.scn | 15 - testsuites/mptests/mp01/system.h | 30 - testsuites/mptests/mp01/task1.c | 84 - testsuites/mptests/mp02/init.c | 63 - testsuites/mptests/mp02/node1/mp02.doc | 47 - testsuites/mptests/mp02/node1/mp02.scn | 14 - testsuites/mptests/mp02/node2/mp02.doc | 13 - testsuites/mptests/mp02/node2/mp02.scn | 14 - testsuites/mptests/mp02/system.h | 30 - testsuites/mptests/mp02/task1.c | 118 - testsuites/mptests/mp03/delay.c | 31 - testsuites/mptests/mp03/init.c | 68 - testsuites/mptests/mp03/node1/mp03.doc | 45 - testsuites/mptests/mp03/node1/mp03.scn | 24 - testsuites/mptests/mp03/node2/mp03.doc | 13 - testsuites/mptests/mp03/node2/mp03.scn | 24 - testsuites/mptests/mp03/system.h | 30 - testsuites/mptests/mp03/task1.c | 155 -- testsuites/mptests/mp04/init.c | 63 - testsuites/mptests/mp04/node1/mp04.doc | 41 - testsuites/mptests/mp04/node1/mp04.scn | 8 - testsuites/mptests/mp04/node2/mp04.doc | 13 - testsuites/mptests/mp04/node2/mp04.scn | 8 - testsuites/mptests/mp04/system.h | 30 - testsuites/mptests/mp04/task1.c | 83 - testsuites/mptests/mp05/asr.c | 37 - testsuites/mptests/mp05/init.c | 68 - testsuites/mptests/mp05/node1/mp05.doc | 45 - testsuites/mptests/mp05/node1/mp05.scn | 11 - testsuites/mptests/mp05/node2/mp05.doc | 13 - testsuites/mptests/mp05/node2/mp05.scn | 10 - testsuites/mptests/mp05/system.h | 30 - testsuites/mptests/mp05/task1.c | 106 - testsuites/mptests/mp06/init.c | 68 - testsuites/mptests/mp06/node1/mp06.doc | 45 - testsuites/mptests/mp06/node1/mp06.scn | 11 - testsuites/mptests/mp06/node2/mp06.doc | 13 - testsuites/mptests/mp06/node2/mp06.scn | 12 - testsuites/mptests/mp06/system.h | 31 - testsuites/mptests/mp06/task1.c | 176 -- testsuites/mptests/mp07/init.c | 68 - testsuites/mptests/mp07/node1/mp07.doc | 46 - testsuites/mptests/mp07/node1/mp07.scn | 10 - testsuites/mptests/mp07/node2/mp07.doc | 13 - testsuites/mptests/mp07/node2/mp07.scn | 9 - testsuites/mptests/mp07/system.h | 28 - testsuites/mptests/mp07/task1.c | 95 - testsuites/mptests/mp08/init.c | 76 - testsuites/mptests/mp08/node1/mp08.doc | 52 - testsuites/mptests/mp08/node1/mp08.scn | 11 - testsuites/mptests/mp08/node2/mp08.doc | 13 - testsuites/mptests/mp08/node2/mp08.scn | 12 - testsuites/mptests/mp08/system.h | 30 - testsuites/mptests/mp08/task1.c | 89 - testsuites/mptests/mp09/init.c | 76 - testsuites/mptests/mp09/node1/mp09.doc | 50 - testsuites/mptests/mp09/node1/mp09.scn | 21 - testsuites/mptests/mp09/node2/mp09.doc | 13 - testsuites/mptests/mp09/node2/mp09.scn | 27 - testsuites/mptests/mp09/recvmsg.c | 45 - testsuites/mptests/mp09/sendmsg.c | 59 - testsuites/mptests/mp09/system.h | 30 - testsuites/mptests/mp09/task1.c | 107 - testsuites/mptests/mp10/init.c | 144 -- testsuites/mptests/mp10/node1/mp10.doc | 46 - testsuites/mptests/mp10/node1/mp10.scn | 4 - testsuites/mptests/mp10/node2/mp10.doc | 13 - testsuites/mptests/mp10/node2/mp10.scn | 19 - testsuites/mptests/mp10/system.h | 30 - testsuites/mptests/mp10/task1.c | 50 - testsuites/mptests/mp10/task2.c | 47 - testsuites/mptests/mp10/task3.c | 50 - testsuites/mptests/mp11/init.c | 106 - testsuites/mptests/mp11/node1/mp11.doc | 42 - testsuites/mptests/mp11/node1/mp11.scn | 10 - testsuites/mptests/mp11/node2/mp11.doc | 13 - testsuites/mptests/mp11/node2/mp11.scn | 2 - testsuites/mptests/mp11/system.h | 30 - testsuites/mptests/mp12/init.c | 116 - testsuites/mptests/mp12/node1/mp12.doc | 52 - testsuites/mptests/mp12/node1/mp12.scn | 6 - testsuites/mptests/mp12/node2/mp12.doc | 13 - testsuites/mptests/mp12/node2/mp12.scn | 10 - testsuites/mptests/mp12/system.h | 30 - testsuites/mptests/mp13/init.c | 116 - testsuites/mptests/mp13/node1/mp13.doc | 48 - testsuites/mptests/mp13/node1/mp13.scn | 14 - testsuites/mptests/mp13/node2/mp13.doc | 13 - testsuites/mptests/mp13/node2/mp13.scn | 16 - testsuites/mptests/mp13/system.h | 30 - testsuites/mptests/mp13/task1.c | 70 - testsuites/mptests/mp13/task2.c | 106 - testsuites/mptests/mp14/delay.c | 34 - testsuites/mptests/mp14/evtask1.c | 86 - testsuites/mptests/mp14/evtmtask.c | 65 - testsuites/mptests/mp14/exit.c | 33 - testsuites/mptests/mp14/init.c | 194 -- testsuites/mptests/mp14/msgtask1.c | 102 - testsuites/mptests/mp14/node1/mp14.doc | 50 - testsuites/mptests/mp14/node1/mp14.scn | 38 - testsuites/mptests/mp14/node2/mp14.doc | 13 - testsuites/mptests/mp14/node2/mp14.scn | 35 - testsuites/mptests/mp14/pttask1.c | 65 - testsuites/mptests/mp14/smtask1.c | 70 - testsuites/mptests/mp14/system.h | 31 - testsuites/samples/README | 71 - testsuites/samples/base_mp/apptask.c | 38 - testsuites/samples/base_mp/init.c | 46 - testsuites/samples/base_mp/node1/base_mp.doc | 13 - testsuites/samples/base_mp/node1/base_mp.scn | 5 - testsuites/samples/base_mp/node2/base_mp.doc | 13 - testsuites/samples/base_mp/node2/base_mp.scn | 5 - testsuites/samples/base_mp/system.h | 31 - testsuites/samples/base_sp/apptask.c | 39 - testsuites/samples/base_sp/base_sp.doc | 13 - testsuites/samples/base_sp/base_sp.scn | 5 - testsuites/samples/base_sp/init.c | 51 - testsuites/samples/base_sp/system.h | 30 - testsuites/samples/cdtest/cdtest.scn | 31 - testsuites/samples/cdtest/init.c | 30 - testsuites/samples/cdtest/main.cc | 146 -- testsuites/samples/cdtest/system.h | 30 - testsuites/samples/hello/hello.doc | 13 - testsuites/samples/hello/hello.scn | 3 - testsuites/samples/hello/init.c | 41 - testsuites/samples/hello/system.h | 30 - testsuites/samples/paranoia/init.c | 43 - testsuites/samples/paranoia/paranoia.c | 2300 -------------------- testsuites/samples/paranoia/paranoia.doc | 13 - testsuites/samples/paranoia/system.h | 30 - testsuites/samples/ticker/init.c | 58 - testsuites/samples/ticker/system.h | 30 - testsuites/samples/ticker/tasks.c | 44 - testsuites/samples/ticker/ticker.doc | 13 - testsuites/samples/ticker/ticker.scn | 16 - testsuites/sptests/README | 9 - testsuites/sptests/sp01/init.c | 89 - testsuites/sptests/sp01/sp01.doc | 43 - testsuites/sptests/sp01/sp01.scn | 18 - testsuites/sptests/sp01/system.h | 30 - testsuites/sptests/sp01/task1.c | 50 - testsuites/sptests/sp02/init.c | 155 -- testsuites/sptests/sp02/preempt.c | 32 - testsuites/sptests/sp02/sp02.doc | 37 - testsuites/sptests/sp02/sp02.scn | 15 - testsuites/sptests/sp02/system.h | 31 - testsuites/sptests/sp02/task1.c | 66 - testsuites/sptests/sp02/task2.c | 34 - testsuites/sptests/sp02/task3.c | 37 - testsuites/sptests/sp03/init.c | 70 - testsuites/sptests/sp03/sp03.doc | 24 - testsuites/sptests/sp03/sp03.scn | 26 - testsuites/sptests/sp03/system.h | 30 - testsuites/sptests/sp03/task1.c | 59 - testsuites/sptests/sp03/task2.c | 46 - testsuites/sptests/sp04/init.c | 113 - testsuites/sptests/sp04/sp04.doc | 38 - testsuites/sptests/sp04/sp04.scn | 24 - testsuites/sptests/sp04/system.h | 30 - testsuites/sptests/sp04/task1.c | 104 - testsuites/sptests/sp04/task2.c | 29 - testsuites/sptests/sp04/task3.c | 29 - testsuites/sptests/sp04/tswitch.c | 59 - testsuites/sptests/sp05/init.c | 84 - testsuites/sptests/sp05/sp05.doc | 26 - testsuites/sptests/sp05/sp05.scn | 47 - testsuites/sptests/sp05/system.h | 30 - testsuites/sptests/sp05/task1.c | 78 - testsuites/sptests/sp05/task2.c | 39 - testsuites/sptests/sp05/task3.c | 39 - testsuites/sptests/sp06/init.c | 90 - testsuites/sptests/sp06/sp06.doc | 26 - testsuites/sptests/sp06/sp06.scn | 40 - testsuites/sptests/sp06/system.h | 30 - testsuites/sptests/sp06/task1.c | 61 - testsuites/sptests/sp06/task2.c | 40 - testsuites/sptests/sp06/task3.c | 32 - testsuites/sptests/sp07/init.c | 131 -- testsuites/sptests/sp07/sp07.doc | 37 - testsuites/sptests/sp07/sp07.scn | 33 - testsuites/sptests/sp07/system.h | 35 - testsuites/sptests/sp07/task1.c | 85 - testsuites/sptests/sp07/task2.c | 78 - testsuites/sptests/sp07/task3.c | 34 - testsuites/sptests/sp07/task4.c | 30 - testsuites/sptests/sp07/taskexit.c | 33 - testsuites/sptests/sp07/tcreate.c | 34 - testsuites/sptests/sp07/tdelete.c | 37 - testsuites/sptests/sp07/trestart.c | 34 - testsuites/sptests/sp07/tstart.c | 34 - testsuites/sptests/sp08/init.c | 56 - testsuites/sptests/sp08/sp08.doc | 26 - testsuites/sptests/sp08/sp08.scn | 22 - testsuites/sptests/sp08/system.h | 33 - testsuites/sptests/sp08/task1.c | 256 --- testsuites/sptests/sp09/delay.c | 28 - testsuites/sptests/sp09/init.c | 123 -- testsuites/sptests/sp09/isr.c | 27 - testsuites/sptests/sp09/screen01.c | 168 -- testsuites/sptests/sp09/screen02.c | 192 -- testsuites/sptests/sp09/screen03.c | 204 -- testsuites/sptests/sp09/screen04.c | 85 - testsuites/sptests/sp09/screen05.c | 148 -- testsuites/sptests/sp09/screen06.c | 125 -- testsuites/sptests/sp09/screen07.c | 184 -- testsuites/sptests/sp09/screen08.c | 121 - testsuites/sptests/sp09/screen09.c | 140 -- testsuites/sptests/sp09/screen10.c | 164 -- testsuites/sptests/sp09/screen11.c | 250 --- testsuites/sptests/sp09/screen12.c | 327 --- testsuites/sptests/sp09/screen13.c | 115 - testsuites/sptests/sp09/screen14.c | 162 -- testsuites/sptests/sp09/sp09.doc | 36 - testsuites/sptests/sp09/sp09.scn | 249 --- testsuites/sptests/sp09/system.h | 30 - testsuites/sptests/sp09/task1.c | 74 - testsuites/sptests/sp09/task2.c | 48 - testsuites/sptests/sp09/task3.c | 51 - testsuites/sptests/sp09/task4.c | 50 - testsuites/sptests/sp11/init.c | 95 - testsuites/sptests/sp11/sp11.doc | 26 - testsuites/sptests/sp11/sp11.scn | 74 - testsuites/sptests/sp11/system.h | 30 - testsuites/sptests/sp11/task1.c | 410 ---- testsuites/sptests/sp11/task2.c | 126 -- testsuites/sptests/sp11/timer.c | 97 - testsuites/sptests/sp12/init.c | 176 -- testsuites/sptests/sp12/pridrv.c | 131 -- testsuites/sptests/sp12/pritask.c | 91 - testsuites/sptests/sp12/sp12.doc | 27 - testsuites/sptests/sp12/sp12.scn | 78 - testsuites/sptests/sp12/system.h | 30 - testsuites/sptests/sp12/task1.c | 153 -- testsuites/sptests/sp12/task2.c | 65 - testsuites/sptests/sp12/task3.c | 50 - testsuites/sptests/sp12/task4.c | 37 - testsuites/sptests/sp12/task5.c | 55 - testsuites/sptests/sp13/fillbuff.c | 31 - testsuites/sptests/sp13/init.c | 112 - testsuites/sptests/sp13/putbuff.c | 31 - testsuites/sptests/sp13/sp13.doc | 25 - testsuites/sptests/sp13/sp13.scn | 66 - testsuites/sptests/sp13/system.h | 30 - testsuites/sptests/sp13/task1.c | 213 -- testsuites/sptests/sp13/task2.c | 132 -- testsuites/sptests/sp13/task3.c | 74 - testsuites/sptests/sp14/asr.c | 47 - testsuites/sptests/sp14/init.c | 75 - testsuites/sptests/sp14/sp14.doc | 24 - testsuites/sptests/sp14/sp14.scn | 33 - testsuites/sptests/sp14/system.h | 30 - testsuites/sptests/sp14/task1.c | 116 - testsuites/sptests/sp14/task2.c | 48 - testsuites/sptests/sp15/init.c | 81 - testsuites/sptests/sp15/sp15.doc | 24 - testsuites/sptests/sp15/sp15.scn | 16 - testsuites/sptests/sp15/system.h | 30 - testsuites/sptests/sp15/task1.c | 129 -- testsuites/sptests/sp16/init.c | 131 -- testsuites/sptests/sp16/sp16.doc | 24 - testsuites/sptests/sp16/sp16.scn | 58 - testsuites/sptests/sp16/system.h | 32 - testsuites/sptests/sp16/task1.c | 282 --- testsuites/sptests/sp16/task2.c | 86 - testsuites/sptests/sp16/task3.c | 57 - testsuites/sptests/sp16/task4.c | 60 - testsuites/sptests/sp16/task5.c | 73 - testsuites/sptests/sp17/asr.c | 32 - testsuites/sptests/sp17/init.c | 72 - testsuites/sptests/sp17/sp17.doc | 35 - testsuites/sptests/sp17/sp17.scn | 8 - testsuites/sptests/sp17/system.h | 30 - testsuites/sptests/sp17/task1.c | 48 - testsuites/sptests/sp17/task2.c | 45 - testsuites/sptests/sp19/first.c | 66 - testsuites/sptests/sp19/fptask.c | 98 - testsuites/sptests/sp19/fptest.h | 165 -- testsuites/sptests/sp19/init.c | 153 -- testsuites/sptests/sp19/inttest.h | 149 -- testsuites/sptests/sp19/sp19.doc | 23 - testsuites/sptests/sp19/sp19.scn | 55 - testsuites/sptests/sp19/system.h | 30 - testsuites/sptests/sp19/task1.c | 59 - testsuites/sptests/sp20/getall.c | 43 - testsuites/sptests/sp20/init.c | 71 - testsuites/sptests/sp20/sp20.doc | 24 - testsuites/sptests/sp20/sp20.scn | 27 - testsuites/sptests/sp20/system.h | 34 - testsuites/sptests/sp20/task1.c | 116 - testsuites/sptests/sp21/init.c | 56 - testsuites/sptests/sp21/sp21.doc | 28 - testsuites/sptests/sp21/sp21.scn | 19 - testsuites/sptests/sp21/system.h | 30 - testsuites/sptests/sp21/task1.c | 106 - testsuites/sptests/sp22/delay.c | 32 - testsuites/sptests/sp22/init.c | 69 - testsuites/sptests/sp22/prtime.c | 32 - testsuites/sptests/sp22/sp22.doc | 20 - testsuites/sptests/sp22/sp22.scn | 29 - testsuites/sptests/sp22/system.h | 30 - testsuites/sptests/sp22/task1.c | 164 -- testsuites/sptests/sp23/init.c | 72 - testsuites/sptests/sp23/sp23.doc | 26 - testsuites/sptests/sp23/sp23.scn | 9 - testsuites/sptests/sp23/system.h | 30 - testsuites/sptests/sp23/task1.c | 96 - testsuites/sptests/sp24/init.c | 79 - testsuites/sptests/sp24/resume.c | 34 - testsuites/sptests/sp24/sp24.doc | 51 - testsuites/sptests/sp24/sp24.scn | 16 - testsuites/sptests/sp24/system.h | 30 - testsuites/sptests/sp24/task1.c | 58 - testsuites/sptests/sp25/init.c | 69 - testsuites/sptests/sp25/sp25.doc | 32 - testsuites/sptests/sp25/sp25.scn | 29 - testsuites/sptests/sp25/system.h | 32 - testsuites/sptests/sp25/task1.c | 241 -- testsuites/sptests/spfatal/fatal.c | 134 -- testsuites/sptests/spfatal/init.c | 54 - testsuites/sptests/spfatal/puterr.c | 68 - testsuites/sptests/spfatal/spfatal.doc | 28 - testsuites/sptests/spfatal/spfatal.scn | 8 - testsuites/sptests/spfatal/system.h | 30 - testsuites/sptests/spfatal/task1.c | 29 - testsuites/sptests/spsize/getint.c | 32 - testsuites/sptests/spsize/init.c | 58 - testsuites/sptests/spsize/size.c | 601 ----- testsuites/support/include/tmacros.h | 116 - testsuites/tmtests/README | 21 - testsuites/tmtests/include/timesys.h | 30 - testsuites/tmtests/tm01/system.h | 23 - testsuites/tmtests/tm01/task1.c | 187 -- testsuites/tmtests/tm01/tm01.doc | 13 - testsuites/tmtests/tm02/system.h | 23 - testsuites/tmtests/tm02/task1.c | 156 -- testsuites/tmtests/tm02/tm02.doc | 13 - testsuites/tmtests/tm03/system.h | 23 - testsuites/tmtests/tm03/task1.c | 149 -- testsuites/tmtests/tm03/tm03.doc | 13 - testsuites/tmtests/tm04/system.h | 23 - testsuites/tmtests/tm04/task1.c | 387 ---- testsuites/tmtests/tm04/tm04.doc | 13 - testsuites/tmtests/tm05/system.h | 23 - testsuites/tmtests/tm05/task1.c | 132 -- testsuites/tmtests/tm05/tm05.doc | 13 - testsuites/tmtests/tm06/system.h | 23 - testsuites/tmtests/tm06/task1.c | 162 -- testsuites/tmtests/tm06/tm06.doc | 13 - testsuites/tmtests/tm07/system.h | 23 - testsuites/tmtests/tm07/task1.c | 120 - testsuites/tmtests/tm07/tm07.doc | 13 - testsuites/tmtests/tm08/system.h | 23 - testsuites/tmtests/tm08/task1.c | 255 --- testsuites/tmtests/tm08/tm08.doc | 13 - testsuites/tmtests/tm09/system.h | 23 - testsuites/tmtests/tm09/task1.c | 221 -- testsuites/tmtests/tm09/tm09.doc | 13 - testsuites/tmtests/tm10/system.h | 23 - testsuites/tmtests/tm10/task1.c | 156 -- testsuites/tmtests/tm10/tm10.doc | 13 - testsuites/tmtests/tm11/system.h | 23 - testsuites/tmtests/tm11/task1.c | 148 -- testsuites/tmtests/tm11/tm11.doc | 13 - testsuites/tmtests/tm12/system.h | 23 - testsuites/tmtests/tm12/task1.c | 142 -- testsuites/tmtests/tm12/tm12.doc | 13 - testsuites/tmtests/tm13/system.h | 23 - testsuites/tmtests/tm13/task1.c | 147 -- testsuites/tmtests/tm13/tm13.doc | 13 - testsuites/tmtests/tm14/system.h | 23 - testsuites/tmtests/tm14/task1.c | 142 -- testsuites/tmtests/tm14/tm14.doc | 13 - testsuites/tmtests/tm15/system.h | 23 - testsuites/tmtests/tm15/task1.c | 222 -- testsuites/tmtests/tm15/tm15.doc | 13 - testsuites/tmtests/tm16/system.h | 23 - testsuites/tmtests/tm16/task1.c | 148 -- testsuites/tmtests/tm16/tm16.doc | 13 - testsuites/tmtests/tm17/system.h | 23 - testsuites/tmtests/tm17/task1.c | 127 -- testsuites/tmtests/tm17/tm17.doc | 13 - testsuites/tmtests/tm18/system.h | 23 - testsuites/tmtests/tm18/task1.c | 112 - testsuites/tmtests/tm18/tm18.doc | 13 - testsuites/tmtests/tm19/system.h | 23 - testsuites/tmtests/tm19/task1.c | 212 -- testsuites/tmtests/tm19/tm19.doc | 13 - testsuites/tmtests/tm20/system.h | 23 - testsuites/tmtests/tm20/task1.c | 467 ---- testsuites/tmtests/tm20/tm20.doc | 13 - testsuites/tmtests/tm21/system.h | 23 - testsuites/tmtests/tm21/task1.c | 234 -- testsuites/tmtests/tm21/tm21.doc | 13 - testsuites/tmtests/tm22/system.h | 23 - testsuites/tmtests/tm22/task1.c | 193 -- testsuites/tmtests/tm22/tm22.doc | 13 - testsuites/tmtests/tm23/system.h | 23 - testsuites/tmtests/tm23/task1.c | 302 --- testsuites/tmtests/tm23/tm23.doc | 13 - testsuites/tmtests/tm24/system.h | 23 - testsuites/tmtests/tm24/task1.c | 124 -- testsuites/tmtests/tm24/tm24.doc | 13 - testsuites/tmtests/tm25/system.h | 23 - testsuites/tmtests/tm25/task1.c | 108 - testsuites/tmtests/tm25/tm25.doc | 13 - testsuites/tmtests/tm26/fptest.h | 165 -- testsuites/tmtests/tm26/system.h | 23 - testsuites/tmtests/tm26/task1.c | 470 ---- testsuites/tmtests/tm26/tm26.doc | 13 - testsuites/tmtests/tm27/system.h | 23 - testsuites/tmtests/tm27/task1.c | 237 -- testsuites/tmtests/tm27/tm27.doc | 13 - testsuites/tmtests/tm28/system.h | 23 - testsuites/tmtests/tm28/task1.c | 134 -- testsuites/tmtests/tm28/tm28.doc | 13 - testsuites/tmtests/tm29/system.h | 23 - testsuites/tmtests/tm29/task1.c | 207 -- testsuites/tmtests/tm29/tm29.doc | 13 - testsuites/tmtests/tmck/system.h | 23 - testsuites/tmtests/tmck/task1.c | 180 -- testsuites/tmtests/tmck/tmck.doc | 20 - testsuites/tmtests/tmoverhd/dumrtems.h | 255 --- testsuites/tmtests/tmoverhd/empty.c | 41 - testsuites/tmtests/tmoverhd/system.h | 23 - testsuites/tmtests/tmoverhd/testtask.c | 1279 ----------- testsuites/tmtests/tmoverhd/tmoverhd.doc | 13 - tools/build/README | 32 - tools/build/cklength.c | 364 ---- tools/build/eolstrip.c | 351 --- tools/build/packhex.c | 513 ----- tools/build/scripts/README | 32 - tools/build/src/cklength.c | 364 ---- tools/build/src/eolstrip.c | 351 --- tools/build/src/packhex.c | 513 ----- tools/build/src/unhex.c | 719 ------ tools/build/unhex.c | 719 ------ tools/cpu/hppa1.1/genoffsets.c | 191 -- tools/update/310_to_320_list | 543 ----- tools/update/README | 7 - 1682 files changed, 189772 deletions(-) delete mode 100644 INSTALL delete mode 100644 LICENSE delete mode 100644 README delete mode 100644 SUPPORT delete mode 100644 c/ACKNOWLEDGEMENTS delete mode 100644 c/PROBLEMS delete mode 100644 c/README delete mode 100644 c/REQUIRES delete mode 100644 c/UPDATE_HELP delete mode 100644 c/build-tools/README delete mode 100644 c/build-tools/cklength.c delete mode 100644 c/build-tools/eolstrip.c delete mode 100644 c/build-tools/packhex.c delete mode 100644 c/build-tools/scripts/README delete mode 100644 c/build-tools/src/cklength.c delete mode 100644 c/build-tools/src/eolstrip.c delete mode 100644 c/build-tools/src/packhex.c delete mode 100644 c/build-tools/src/unhex.c delete mode 100644 c/build-tools/unhex.c delete mode 100644 c/src/README delete mode 100644 c/src/exec/libcsupport/include/clockdrv.h delete mode 100644 c/src/exec/libcsupport/include/console.h delete mode 100644 c/src/exec/libcsupport/include/iosupp.h delete mode 100644 c/src/exec/libcsupport/include/rtems/libcsupport.h delete mode 100644 c/src/exec/libcsupport/include/spurious.h delete mode 100644 c/src/exec/libcsupport/include/timerdrv.h delete mode 100644 c/src/exec/libcsupport/include/vmeintr.h delete mode 100644 c/src/exec/libcsupport/src/README delete mode 100644 c/src/exec/libcsupport/src/__brk.c delete mode 100644 c/src/exec/libcsupport/src/__gettod.c delete mode 100644 c/src/exec/libcsupport/src/__times.c delete mode 100644 c/src/exec/libcsupport/src/malloc.c delete mode 100644 c/src/exec/libcsupport/src/newlibc.c delete mode 100644 c/src/exec/libcsupport/src/no_libc.c delete mode 100644 c/src/exec/libcsupport/src/unixlibc.c delete mode 100644 c/src/exec/rtems/headers/asr.h delete mode 100644 c/src/exec/rtems/headers/attr.h delete mode 100644 c/src/exec/rtems/headers/clock.h delete mode 100644 c/src/exec/rtems/headers/dpmem.h delete mode 100644 c/src/exec/rtems/headers/event.h delete mode 100644 c/src/exec/rtems/headers/eventmp.h delete mode 100644 c/src/exec/rtems/headers/eventset.h delete mode 100644 c/src/exec/rtems/headers/intr.h delete mode 100644 c/src/exec/rtems/headers/message.h delete mode 100644 c/src/exec/rtems/headers/modes.h delete mode 100644 c/src/exec/rtems/headers/mp.h delete mode 100644 c/src/exec/rtems/headers/msgmp.h delete mode 100644 c/src/exec/rtems/headers/options.h delete mode 100644 c/src/exec/rtems/headers/part.h delete mode 100644 c/src/exec/rtems/headers/partmp.h delete mode 100644 c/src/exec/rtems/headers/ratemon.h delete mode 100644 c/src/exec/rtems/headers/region.h delete mode 100644 c/src/exec/rtems/headers/regionmp.h delete mode 100644 c/src/exec/rtems/headers/rtems.h delete mode 100644 c/src/exec/rtems/headers/sem.h delete mode 100644 c/src/exec/rtems/headers/semmp.h delete mode 100644 c/src/exec/rtems/headers/signal.h delete mode 100644 c/src/exec/rtems/headers/signalmp.h delete mode 100644 c/src/exec/rtems/headers/status.h delete mode 100644 c/src/exec/rtems/headers/taskmp.h delete mode 100644 c/src/exec/rtems/headers/tasks.h delete mode 100644 c/src/exec/rtems/headers/timer.h delete mode 100644 c/src/exec/rtems/include/rtems.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/asr.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/attr.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/clock.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/dpmem.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/event.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/eventmp.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/eventset.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/intr.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/message.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/modes.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/mp.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/msgmp.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/options.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/part.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/partmp.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/ratemon.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/region.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/regionmp.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/sem.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/semmp.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/signal.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/signalmp.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/status.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/taskmp.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/tasks.h delete mode 100644 c/src/exec/rtems/include/rtems/rtems/timer.h delete mode 100644 c/src/exec/rtems/inline/asr.inl delete mode 100644 c/src/exec/rtems/inline/attr.inl delete mode 100644 c/src/exec/rtems/inline/dpmem.inl delete mode 100644 c/src/exec/rtems/inline/event.inl delete mode 100644 c/src/exec/rtems/inline/eventset.inl delete mode 100644 c/src/exec/rtems/inline/message.inl delete mode 100644 c/src/exec/rtems/inline/modes.inl delete mode 100644 c/src/exec/rtems/inline/options.inl delete mode 100644 c/src/exec/rtems/inline/part.inl delete mode 100644 c/src/exec/rtems/inline/ratemon.inl delete mode 100644 c/src/exec/rtems/inline/region.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/asr.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/attr.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/dpmem.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/event.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/eventset.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/message.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/modes.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/options.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/part.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/ratemon.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/region.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/sem.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/status.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/tasks.inl delete mode 100644 c/src/exec/rtems/inline/rtems/rtems/timer.inl delete mode 100644 c/src/exec/rtems/inline/sem.inl delete mode 100644 c/src/exec/rtems/inline/status.inl delete mode 100644 c/src/exec/rtems/inline/tasks.inl delete mode 100644 c/src/exec/rtems/inline/timer.inl delete mode 100644 c/src/exec/rtems/macros/asr.inl delete mode 100644 c/src/exec/rtems/macros/attr.inl delete mode 100644 c/src/exec/rtems/macros/dpmem.inl delete mode 100644 c/src/exec/rtems/macros/event.inl delete mode 100644 c/src/exec/rtems/macros/eventset.inl delete mode 100644 c/src/exec/rtems/macros/message.inl delete mode 100644 c/src/exec/rtems/macros/modes.inl delete mode 100644 c/src/exec/rtems/macros/options.inl delete mode 100644 c/src/exec/rtems/macros/part.inl delete mode 100644 c/src/exec/rtems/macros/ratemon.inl delete mode 100644 c/src/exec/rtems/macros/region.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/asr.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/attr.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/dpmem.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/event.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/eventset.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/message.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/modes.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/options.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/part.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/ratemon.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/region.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/sem.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/status.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/tasks.inl delete mode 100644 c/src/exec/rtems/macros/rtems/rtems/timer.inl delete mode 100644 c/src/exec/rtems/macros/sem.inl delete mode 100644 c/src/exec/rtems/macros/status.inl delete mode 100644 c/src/exec/rtems/macros/tasks.inl delete mode 100644 c/src/exec/rtems/macros/timer.inl delete mode 100644 c/src/exec/rtems/optman/no-dpmem.c delete mode 100644 c/src/exec/rtems/optman/no-event.c delete mode 100644 c/src/exec/rtems/optman/no-mp.c delete mode 100644 c/src/exec/rtems/optman/no-msg.c delete mode 100644 c/src/exec/rtems/optman/no-part.c delete mode 100644 c/src/exec/rtems/optman/no-region.c delete mode 100644 c/src/exec/rtems/optman/no-rtmon.c delete mode 100644 c/src/exec/rtems/optman/no-sem.c delete mode 100644 c/src/exec/rtems/optman/no-signal.c delete mode 100644 c/src/exec/rtems/optman/no-timer.c delete mode 100644 c/src/exec/rtems/src/clock.c delete mode 100644 c/src/exec/rtems/src/dpmem.c delete mode 100644 c/src/exec/rtems/src/event.c delete mode 100644 c/src/exec/rtems/src/eventmp.c delete mode 100644 c/src/exec/rtems/src/intr.c delete mode 100644 c/src/exec/rtems/src/mp.c delete mode 100644 c/src/exec/rtems/src/msg.c delete mode 100644 c/src/exec/rtems/src/msgmp.c delete mode 100644 c/src/exec/rtems/src/part.c delete mode 100644 c/src/exec/rtems/src/partmp.c delete mode 100644 c/src/exec/rtems/src/ratemon.c delete mode 100644 c/src/exec/rtems/src/region.c delete mode 100644 c/src/exec/rtems/src/regionmp.c delete mode 100644 c/src/exec/rtems/src/rtclock.c delete mode 100644 c/src/exec/rtems/src/rtemstimer.c delete mode 100644 c/src/exec/rtems/src/sem.c delete mode 100644 c/src/exec/rtems/src/semmp.c delete mode 100644 c/src/exec/rtems/src/signal.c delete mode 100644 c/src/exec/rtems/src/signalmp.c delete mode 100644 c/src/exec/rtems/src/taskmp.c delete mode 100644 c/src/exec/rtems/src/tasks.c delete mode 100644 c/src/exec/rtems/src/timer.c delete mode 100644 c/src/exec/sapi/headers/config.h delete mode 100644 c/src/exec/sapi/headers/directives.h delete mode 100644 c/src/exec/sapi/headers/extension.h delete mode 100644 c/src/exec/sapi/headers/fatal.h delete mode 100644 c/src/exec/sapi/headers/init.h delete mode 100644 c/src/exec/sapi/headers/io.h delete mode 100644 c/src/exec/sapi/headers/mptables.h delete mode 100644 c/src/exec/sapi/headers/sptables.h delete mode 100644 c/src/exec/sapi/include/rtems/config.h delete mode 100644 c/src/exec/sapi/include/rtems/directives.h delete mode 100644 c/src/exec/sapi/include/rtems/extension.h delete mode 100644 c/src/exec/sapi/include/rtems/fatal.h delete mode 100644 c/src/exec/sapi/include/rtems/init.h delete mode 100644 c/src/exec/sapi/include/rtems/io.h delete mode 100644 c/src/exec/sapi/include/rtems/mptables.h delete mode 100644 c/src/exec/sapi/include/rtems/sptables.h delete mode 100644 c/src/exec/sapi/inline/extension.inl delete mode 100644 c/src/exec/sapi/inline/rtems/extension.inl delete mode 100644 c/src/exec/sapi/macros/extension.inl delete mode 100644 c/src/exec/sapi/macros/rtems/extension.inl delete mode 100644 c/src/exec/sapi/optman/no-ext.c delete mode 100644 c/src/exec/sapi/optman/no-io.c delete mode 100644 c/src/exec/sapi/src/debug.c delete mode 100644 c/src/exec/sapi/src/exinit.c delete mode 100644 c/src/exec/sapi/src/extension.c delete mode 100644 c/src/exec/sapi/src/fatal.c delete mode 100644 c/src/exec/sapi/src/io.c delete mode 100644 c/src/exec/score/cpu/hppa1.1/cpu.c delete mode 100644 c/src/exec/score/cpu/hppa1.1/cpu.h delete mode 100644 c/src/exec/score/cpu/hppa1.1/cpu_asm.h delete mode 100644 c/src/exec/score/cpu/hppa1.1/cpu_asm.s delete mode 100644 c/src/exec/score/cpu/hppa1.1/hppa.h delete mode 100644 c/src/exec/score/cpu/hppa1.1/rtems.s delete mode 100644 c/src/exec/score/cpu/i386/asm.h delete mode 100644 c/src/exec/score/cpu/i386/cpu.c delete mode 100644 c/src/exec/score/cpu/i386/cpu.h delete mode 100644 c/src/exec/score/cpu/i386/cpu_asm.s delete mode 100644 c/src/exec/score/cpu/i386/i386.h delete mode 100644 c/src/exec/score/cpu/i386/rtems.s delete mode 100644 c/src/exec/score/cpu/i960/asm.h delete mode 100644 c/src/exec/score/cpu/i960/cpu.c delete mode 100644 c/src/exec/score/cpu/i960/cpu.h delete mode 100644 c/src/exec/score/cpu/i960/cpu_asm.s delete mode 100644 c/src/exec/score/cpu/i960/i960.h delete mode 100644 c/src/exec/score/cpu/i960/rtems.s delete mode 100644 c/src/exec/score/cpu/m68k/asm.h delete mode 100644 c/src/exec/score/cpu/m68k/cpu.c delete mode 100644 c/src/exec/score/cpu/m68k/cpu.h delete mode 100644 c/src/exec/score/cpu/m68k/cpu_asm.s delete mode 100644 c/src/exec/score/cpu/m68k/m68k.h delete mode 100644 c/src/exec/score/cpu/m68k/rtems.s delete mode 100644 c/src/exec/score/cpu/no_cpu/asm.h delete mode 100644 c/src/exec/score/cpu/no_cpu/cpu.c delete mode 100644 c/src/exec/score/cpu/no_cpu/cpu.h delete mode 100644 c/src/exec/score/cpu/no_cpu/cpu_asm.c delete mode 100644 c/src/exec/score/cpu/no_cpu/cpu_asm.h delete mode 100644 c/src/exec/score/cpu/no_cpu/no_cpu.h delete mode 100644 c/src/exec/score/cpu/no_cpu/rtems.c delete mode 100644 c/src/exec/score/cpu/unix/cpu.c delete mode 100644 c/src/exec/score/cpu/unix/cpu.h delete mode 100644 c/src/exec/score/cpu/unix/unix.h delete mode 100644 c/src/exec/score/headers/address.h delete mode 100644 c/src/exec/score/headers/bitfield.h delete mode 100644 c/src/exec/score/headers/chain.h delete mode 100644 c/src/exec/score/headers/context.h delete mode 100644 c/src/exec/score/headers/copyrt.h delete mode 100644 c/src/exec/score/headers/debug.h delete mode 100644 c/src/exec/score/headers/heap.h delete mode 100644 c/src/exec/score/headers/isr.h delete mode 100644 c/src/exec/score/headers/mpci.h delete mode 100644 c/src/exec/score/headers/mppkt.h delete mode 100644 c/src/exec/score/headers/object.h delete mode 100644 c/src/exec/score/headers/objectmp.h delete mode 100644 c/src/exec/score/headers/priority.h delete mode 100644 c/src/exec/score/headers/stack.h delete mode 100644 c/src/exec/score/headers/states.h delete mode 100644 c/src/exec/score/headers/sysstate.h delete mode 100644 c/src/exec/score/headers/system.h delete mode 100644 c/src/exec/score/headers/thread.h delete mode 100644 c/src/exec/score/headers/threadmp.h delete mode 100644 c/src/exec/score/headers/threadq.h delete mode 100644 c/src/exec/score/headers/tod.h delete mode 100644 c/src/exec/score/headers/tqdata.h delete mode 100644 c/src/exec/score/headers/userext.h delete mode 100644 c/src/exec/score/headers/watchdog.h delete mode 100644 c/src/exec/score/headers/wkspace.h delete mode 100644 c/src/exec/score/include/rtems/debug.h delete mode 100644 c/src/exec/score/include/rtems/score/address.h delete mode 100644 c/src/exec/score/include/rtems/score/bitfield.h delete mode 100644 c/src/exec/score/include/rtems/score/chain.h delete mode 100644 c/src/exec/score/include/rtems/score/context.h delete mode 100644 c/src/exec/score/include/rtems/score/copyrt.h delete mode 100644 c/src/exec/score/include/rtems/score/heap.h delete mode 100644 c/src/exec/score/include/rtems/score/isr.h delete mode 100644 c/src/exec/score/include/rtems/score/mpci.h delete mode 100644 c/src/exec/score/include/rtems/score/mppkt.h delete mode 100644 c/src/exec/score/include/rtems/score/object.h delete mode 100644 c/src/exec/score/include/rtems/score/objectmp.h delete mode 100644 c/src/exec/score/include/rtems/score/priority.h delete mode 100644 c/src/exec/score/include/rtems/score/stack.h delete mode 100644 c/src/exec/score/include/rtems/score/states.h delete mode 100644 c/src/exec/score/include/rtems/score/sysstate.h delete mode 100644 c/src/exec/score/include/rtems/score/thread.h delete mode 100644 c/src/exec/score/include/rtems/score/threadmp.h delete mode 100644 c/src/exec/score/include/rtems/score/threadq.h delete mode 100644 c/src/exec/score/include/rtems/score/tod.h delete mode 100644 c/src/exec/score/include/rtems/score/tqdata.h delete mode 100644 c/src/exec/score/include/rtems/score/userext.h delete mode 100644 c/src/exec/score/include/rtems/score/watchdog.h delete mode 100644 c/src/exec/score/include/rtems/score/wkspace.h delete mode 100644 c/src/exec/score/include/rtems/system.h delete mode 100644 c/src/exec/score/inline/address.inl delete mode 100644 c/src/exec/score/inline/chain.inl delete mode 100644 c/src/exec/score/inline/heap.inl delete mode 100644 c/src/exec/score/inline/isr.inl delete mode 100644 c/src/exec/score/inline/mppkt.inl delete mode 100644 c/src/exec/score/inline/object.inl delete mode 100644 c/src/exec/score/inline/objectmp.inl delete mode 100644 c/src/exec/score/inline/priority.inl delete mode 100644 c/src/exec/score/inline/rtems/score/address.inl delete mode 100644 c/src/exec/score/inline/rtems/score/chain.inl delete mode 100644 c/src/exec/score/inline/rtems/score/heap.inl delete mode 100644 c/src/exec/score/inline/rtems/score/isr.inl delete mode 100644 c/src/exec/score/inline/rtems/score/mppkt.inl delete mode 100644 c/src/exec/score/inline/rtems/score/object.inl delete mode 100644 c/src/exec/score/inline/rtems/score/objectmp.inl delete mode 100644 c/src/exec/score/inline/rtems/score/priority.inl delete mode 100644 c/src/exec/score/inline/rtems/score/stack.inl delete mode 100644 c/src/exec/score/inline/rtems/score/states.inl delete mode 100644 c/src/exec/score/inline/rtems/score/sysstate.inl delete mode 100644 c/src/exec/score/inline/rtems/score/thread.inl delete mode 100644 c/src/exec/score/inline/rtems/score/threadmp.inl delete mode 100644 c/src/exec/score/inline/rtems/score/tod.inl delete mode 100644 c/src/exec/score/inline/rtems/score/tqdata.inl delete mode 100644 c/src/exec/score/inline/rtems/score/userext.inl delete mode 100644 c/src/exec/score/inline/rtems/score/watchdog.inl delete mode 100644 c/src/exec/score/inline/rtems/score/wkspace.inl delete mode 100644 c/src/exec/score/inline/stack.inl delete mode 100644 c/src/exec/score/inline/states.inl delete mode 100644 c/src/exec/score/inline/sysstate.inl delete mode 100644 c/src/exec/score/inline/thread.inl delete mode 100644 c/src/exec/score/inline/threadmp.inl delete mode 100644 c/src/exec/score/inline/tod.inl delete mode 100644 c/src/exec/score/inline/tqdata.inl delete mode 100644 c/src/exec/score/inline/userext.inl delete mode 100644 c/src/exec/score/inline/watchdog.inl delete mode 100644 c/src/exec/score/inline/wkspace.inl delete mode 100644 c/src/exec/score/macros/README delete mode 100644 c/src/exec/score/macros/address.inl delete mode 100644 c/src/exec/score/macros/chain.inl delete mode 100644 c/src/exec/score/macros/heap.inl delete mode 100644 c/src/exec/score/macros/isr.inl delete mode 100644 c/src/exec/score/macros/mppkt.inl delete mode 100644 c/src/exec/score/macros/object.inl delete mode 100644 c/src/exec/score/macros/objectmp.inl delete mode 100644 c/src/exec/score/macros/priority.inl delete mode 100644 c/src/exec/score/macros/rtems/score/README delete mode 100644 c/src/exec/score/macros/rtems/score/address.inl delete mode 100644 c/src/exec/score/macros/rtems/score/chain.inl delete mode 100644 c/src/exec/score/macros/rtems/score/heap.inl delete mode 100644 c/src/exec/score/macros/rtems/score/isr.inl delete mode 100644 c/src/exec/score/macros/rtems/score/mppkt.inl delete mode 100644 c/src/exec/score/macros/rtems/score/object.inl delete mode 100644 c/src/exec/score/macros/rtems/score/objectmp.inl delete mode 100644 c/src/exec/score/macros/rtems/score/priority.inl delete mode 100644 c/src/exec/score/macros/rtems/score/stack.inl delete mode 100644 c/src/exec/score/macros/rtems/score/states.inl delete mode 100644 c/src/exec/score/macros/rtems/score/sysstate.inl delete mode 100644 c/src/exec/score/macros/rtems/score/thread.inl delete mode 100644 c/src/exec/score/macros/rtems/score/threadmp.inl delete mode 100644 c/src/exec/score/macros/rtems/score/tod.inl delete mode 100644 c/src/exec/score/macros/rtems/score/tqdata.inl delete mode 100644 c/src/exec/score/macros/rtems/score/userext.inl delete mode 100644 c/src/exec/score/macros/rtems/score/watchdog.inl delete mode 100644 c/src/exec/score/macros/rtems/score/wkspace.inl delete mode 100644 c/src/exec/score/macros/stack.inl delete mode 100644 c/src/exec/score/macros/states.inl delete mode 100644 c/src/exec/score/macros/sysstate.inl delete mode 100644 c/src/exec/score/macros/thread.inl delete mode 100644 c/src/exec/score/macros/threadmp.inl delete mode 100644 c/src/exec/score/macros/tod.inl delete mode 100644 c/src/exec/score/macros/tqdata.inl delete mode 100644 c/src/exec/score/macros/userext.inl delete mode 100644 c/src/exec/score/macros/watchdog.inl delete mode 100644 c/src/exec/score/macros/wkspace.inl delete mode 100644 c/src/exec/score/src/chain.c delete mode 100644 c/src/exec/score/src/coretod.c delete mode 100644 c/src/exec/score/src/heap.c delete mode 100644 c/src/exec/score/src/mpci.c delete mode 100644 c/src/exec/score/src/object.c delete mode 100644 c/src/exec/score/src/objectmp.c delete mode 100644 c/src/exec/score/src/thread.c delete mode 100644 c/src/exec/score/src/threadmp.c delete mode 100644 c/src/exec/score/src/threadq.c delete mode 100644 c/src/exec/score/src/tod.c delete mode 100644 c/src/exec/score/src/watchdog.c delete mode 100644 c/src/exec/score/src/wkspace.c delete mode 100644 c/src/exec/score/tools/hppa1.1/genoffsets.c delete mode 100644 c/src/lib/include/clockdrv.h delete mode 100644 c/src/lib/include/console.h delete mode 100644 c/src/lib/include/iosupp.h delete mode 100644 c/src/lib/include/rtems/libcsupport.h delete mode 100644 c/src/lib/include/spurious.h delete mode 100644 c/src/lib/include/timerdrv.h delete mode 100644 c/src/lib/include/vmeintr.h delete mode 100644 c/src/lib/libbsp/README delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/include/bsp.h delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/include/coverhd.h delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/README delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/addrconv.c delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/getcfg.c delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/intr.c delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/lock.c delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/mpisr.c delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/startup/bspclean.c delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/startup/bspstart.c delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/startup/setvec.c delete mode 100644 c/src/lib/libbsp/hppa1.1/simhppa/tools/print_dump.c delete mode 100644 c/src/lib/libbsp/i386/force386/clock/ckinit.c delete mode 100644 c/src/lib/libbsp/i386/force386/console/console.c delete mode 100644 c/src/lib/libbsp/i386/force386/include/bsp.h delete mode 100644 c/src/lib/libbsp/i386/force386/include/coverhd.h delete mode 100644 c/src/lib/libbsp/i386/force386/shmsupp/addrconv.c delete mode 100644 c/src/lib/libbsp/i386/force386/shmsupp/getcfg.c delete mode 100644 c/src/lib/libbsp/i386/force386/shmsupp/lock.c delete mode 100644 c/src/lib/libbsp/i386/force386/shmsupp/mpisr.c delete mode 100644 c/src/lib/libbsp/i386/force386/startup/bspstart.c delete mode 100644 c/src/lib/libbsp/i386/force386/startup/exit.c delete mode 100644 c/src/lib/libbsp/i386/force386/startup/ldsegs.s delete mode 100644 c/src/lib/libbsp/i386/force386/startup/linkcmds delete mode 100644 c/src/lib/libbsp/i386/force386/startup/setvec.c delete mode 100644 c/src/lib/libbsp/i386/force386/timer/timer.c delete mode 100644 c/src/lib/libbsp/i386/force386/timer/timerisr.s delete mode 100644 c/src/lib/libbsp/i960/cvme961/clock/ckinit.c delete mode 100644 c/src/lib/libbsp/i960/cvme961/console/console.c delete mode 100644 c/src/lib/libbsp/i960/cvme961/include/bsp.h delete mode 100644 c/src/lib/libbsp/i960/cvme961/include/coverhd.h delete mode 100644 c/src/lib/libbsp/i960/cvme961/shmsupp/addrconv.c delete mode 100644 c/src/lib/libbsp/i960/cvme961/shmsupp/getcfg.c delete mode 100644 c/src/lib/libbsp/i960/cvme961/shmsupp/lock.c delete mode 100644 c/src/lib/libbsp/i960/cvme961/shmsupp/mpisr.c delete mode 100644 c/src/lib/libbsp/i960/cvme961/startup/bspclean.c delete mode 100644 c/src/lib/libbsp/i960/cvme961/startup/bspstart.c delete mode 100644 c/src/lib/libbsp/i960/cvme961/startup/exit.c delete mode 100644 c/src/lib/libbsp/i960/cvme961/startup/linkcmds delete mode 100644 c/src/lib/libbsp/i960/cvme961/startup/setvec.c delete mode 100644 c/src/lib/libbsp/i960/cvme961/timer/timer.c delete mode 100644 c/src/lib/libbsp/i960/cvme961/timer/timerisr.s delete mode 100644 c/src/lib/libbsp/m68k/dmv152/clock/ckinit.c delete mode 100644 c/src/lib/libbsp/m68k/dmv152/console/console.c delete mode 100644 c/src/lib/libbsp/m68k/dmv152/include/bsp.h delete mode 100644 c/src/lib/libbsp/m68k/dmv152/include/coverhd.h delete mode 100644 c/src/lib/libbsp/m68k/dmv152/spurious/spinit.c delete mode 100644 c/src/lib/libbsp/m68k/dmv152/startup/bspstart.c delete mode 100644 c/src/lib/libbsp/m68k/dmv152/startup/linkcmds delete mode 100644 c/src/lib/libbsp/m68k/dmv152/startup/vmeintr.c delete mode 100644 c/src/lib/libbsp/m68k/dmv152/timer/timer.c delete mode 100644 c/src/lib/libbsp/m68k/dmv152/timer/timerisr.s delete mode 100644 c/src/lib/libbsp/m68k/idp/README delete mode 100644 c/src/lib/libbsp/m68k/idp/clock/ckinit.c delete mode 100644 c/src/lib/libbsp/m68k/idp/console/console.c delete mode 100644 c/src/lib/libbsp/m68k/idp/console/duart.c delete mode 100644 c/src/lib/libbsp/m68k/idp/console/leds.c delete mode 100644 c/src/lib/libbsp/m68k/idp/console/mc68ec.c delete mode 100644 c/src/lib/libbsp/m68k/idp/include/README delete mode 100644 c/src/lib/libbsp/m68k/idp/include/bsp.h delete mode 100644 c/src/lib/libbsp/m68k/idp/include/coverhd.h delete mode 100644 c/src/lib/libbsp/m68k/idp/include/leds.h delete mode 100644 c/src/lib/libbsp/m68k/idp/startup/bspstart.c delete mode 100644 c/src/lib/libbsp/m68k/idp/startup/linkcmds delete mode 100644 c/src/lib/libbsp/m68k/idp/timer/timer.c delete mode 100644 c/src/lib/libbsp/m68k/idp/timer/timerisr.s delete mode 100644 c/src/lib/libbsp/m68k/mvme136/clock/ckinit.c delete mode 100644 c/src/lib/libbsp/m68k/mvme136/console/console.c delete mode 100644 c/src/lib/libbsp/m68k/mvme136/include/bsp.h delete mode 100644 c/src/lib/libbsp/m68k/mvme136/include/coverhd.h delete mode 100644 c/src/lib/libbsp/m68k/mvme136/shmsupp/addrconv.c delete mode 100644 c/src/lib/libbsp/m68k/mvme136/shmsupp/getcfg.c delete mode 100644 c/src/lib/libbsp/m68k/mvme136/shmsupp/lock.c delete mode 100644 c/src/lib/libbsp/m68k/mvme136/shmsupp/mpisr.c delete mode 100644 c/src/lib/libbsp/m68k/mvme136/startup/bspclean.c delete mode 100644 c/src/lib/libbsp/m68k/mvme136/startup/bspstart.c delete mode 100644 c/src/lib/libbsp/m68k/mvme136/startup/linkcmds delete mode 100644 c/src/lib/libbsp/m68k/mvme136/timer/timer.c delete mode 100644 c/src/lib/libbsp/m68k/mvme136/timer/timerisr.s delete mode 100644 c/src/lib/libbsp/m68k/mvme162/README delete mode 100644 c/src/lib/libbsp/m68k/mvme162/clock/ckinit.c delete mode 100644 c/src/lib/libbsp/m68k/mvme162/console/console.c delete mode 100644 c/src/lib/libbsp/m68k/mvme162/include/bsp.h delete mode 100644 c/src/lib/libbsp/m68k/mvme162/include/coverhd.h delete mode 100644 c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c delete mode 100644 c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c delete mode 100644 c/src/lib/libbsp/m68k/mvme162/startup/linkcmds delete mode 100644 c/src/lib/libbsp/m68k/mvme162/timer/timer.c delete mode 100644 c/src/lib/libbsp/m68k/mvme162/timer/timerisr.s delete mode 100644 c/src/lib/libbsp/m68k/mvme162/tools/sload.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/README delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/clock/ckinit.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/console/console.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/include/coverhd.h delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/addrconv.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/getcfg.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/lock.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/mpisr.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/startup/bspclean.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/startup/bspstart.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/startup/linkcmds delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/startup/main.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/startup/setvec.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/timer/timer.c delete mode 100644 c/src/lib/libbsp/no_cpu/no_bsp/timer/timerisr.c delete mode 100644 c/src/lib/libbsp/shmdr/README delete mode 100644 c/src/lib/libbsp/shmdr/addlq.c delete mode 100644 c/src/lib/libbsp/shmdr/cnvpkt.c delete mode 100644 c/src/lib/libbsp/shmdr/dump.c delete mode 100644 c/src/lib/libbsp/shmdr/fatal.c delete mode 100644 c/src/lib/libbsp/shmdr/getlq.c delete mode 100644 c/src/lib/libbsp/shmdr/getpkt.c delete mode 100644 c/src/lib/libbsp/shmdr/init.c delete mode 100644 c/src/lib/libbsp/shmdr/initlq.c delete mode 100644 c/src/lib/libbsp/shmdr/intr.c delete mode 100644 c/src/lib/libbsp/shmdr/mpci.h delete mode 100644 c/src/lib/libbsp/shmdr/mpisr.c delete mode 100644 c/src/lib/libbsp/shmdr/poll.c delete mode 100644 c/src/lib/libbsp/shmdr/receive.c delete mode 100644 c/src/lib/libbsp/shmdr/retpkt.c delete mode 100644 c/src/lib/libbsp/shmdr/send.c delete mode 100644 c/src/lib/libbsp/shmdr/setckvec.c delete mode 100644 c/src/lib/libbsp/shmdr/shm.h delete mode 100644 c/src/lib/libbsp/shmdr/shm_driver.h delete mode 100644 c/src/lib/libc/README delete mode 100644 c/src/lib/libc/__brk.c delete mode 100644 c/src/lib/libc/__gettod.c delete mode 100644 c/src/lib/libc/__times.c delete mode 100644 c/src/lib/libc/internal.h delete mode 100644 c/src/lib/libc/libcsupport.h delete mode 100644 c/src/lib/libc/malloc.c delete mode 100644 c/src/lib/libc/newlibc.c delete mode 100644 c/src/lib/libc/no_libc.c delete mode 100644 c/src/lib/libc/support.c delete mode 100644 c/src/lib/libc/syscalls.c delete mode 100644 c/src/lib/libc/unixlibc.c delete mode 100644 c/src/lib/libcpu/README delete mode 100644 c/src/lib/libcpu/hppa1.1/clock/clock.c delete mode 100644 c/src/lib/libcpu/hppa1.1/runway/runway.h delete mode 100644 c/src/lib/libcpu/hppa1.1/semaphore/semaphore.c delete mode 100644 c/src/lib/libcpu/hppa1.1/semaphore/semaphore.h delete mode 100644 c/src/lib/libcpu/hppa1.1/timer/timer.c delete mode 100644 c/src/lib/libmisc/README delete mode 100644 c/src/lib/libmisc/monitor/README delete mode 100644 c/src/lib/libmisc/monitor/mon-monitor.c delete mode 100644 c/src/lib/libmisc/monitor/mon-symbols.c delete mode 100644 c/src/lib/libmisc/monitor/monitor.h delete mode 100644 c/src/lib/libmisc/monitor/symbols.h delete mode 100644 c/src/lib/libmisc/stackchk/README delete mode 100644 c/src/lib/libmisc/stackchk/check.c delete mode 100644 c/src/lib/libmisc/stackchk/internal.h delete mode 100644 c/src/lib/libmisc/stackchk/stackchk.h delete mode 100644 c/src/lib/start/README delete mode 100644 c/src/lib/start/i960/start.s delete mode 100644 c/src/lib/start/m68k/start.s delete mode 100644 c/src/libchip/shmdr/README delete mode 100644 c/src/libchip/shmdr/addlq.c delete mode 100644 c/src/libchip/shmdr/cnvpkt.c delete mode 100644 c/src/libchip/shmdr/dump.c delete mode 100644 c/src/libchip/shmdr/fatal.c delete mode 100644 c/src/libchip/shmdr/getlq.c delete mode 100644 c/src/libchip/shmdr/getpkt.c delete mode 100644 c/src/libchip/shmdr/init.c delete mode 100644 c/src/libchip/shmdr/initlq.c delete mode 100644 c/src/libchip/shmdr/intr.c delete mode 100644 c/src/libchip/shmdr/mpci.h delete mode 100644 c/src/libchip/shmdr/mpisr.c delete mode 100644 c/src/libchip/shmdr/poll.c delete mode 100644 c/src/libchip/shmdr/receive.c delete mode 100644 c/src/libchip/shmdr/retpkt.c delete mode 100644 c/src/libchip/shmdr/send.c delete mode 100644 c/src/libchip/shmdr/setckvec.c delete mode 100644 c/src/libchip/shmdr/shm_driver.h delete mode 100644 c/src/libmisc/README delete mode 100644 c/src/libmisc/monitor/README delete mode 100644 c/src/libmisc/monitor/mon-monitor.c delete mode 100644 c/src/libmisc/monitor/mon-symbols.c delete mode 100644 c/src/libmisc/monitor/monitor.h delete mode 100644 c/src/libmisc/monitor/symbols.h delete mode 100644 c/src/libmisc/stackchk/README delete mode 100644 c/src/libmisc/stackchk/check.c delete mode 100644 c/src/libmisc/stackchk/internal.h delete mode 100644 c/src/libmisc/stackchk/stackchk.h delete mode 100644 c/src/optman/rtems/no-dpmem.c delete mode 100644 c/src/optman/rtems/no-event.c delete mode 100644 c/src/optman/rtems/no-mp.c delete mode 100644 c/src/optman/rtems/no-msg.c delete mode 100644 c/src/optman/rtems/no-part.c delete mode 100644 c/src/optman/rtems/no-region.c delete mode 100644 c/src/optman/rtems/no-rtmon.c delete mode 100644 c/src/optman/rtems/no-sem.c delete mode 100644 c/src/optman/rtems/no-signal.c delete mode 100644 c/src/optman/rtems/no-timer.c delete mode 100644 c/src/optman/sapi/no-ext.c delete mode 100644 c/src/optman/sapi/no-io.c delete mode 100644 c/src/tests/README delete mode 100644 c/src/tests/libtests/README delete mode 100644 c/src/tests/libtests/stackchk/blow.c delete mode 100644 c/src/tests/libtests/stackchk/init.c delete mode 100644 c/src/tests/libtests/stackchk/stackchk.scn delete mode 100644 c/src/tests/libtests/stackchk/task1.c delete mode 100644 c/src/tests/mptests/README delete mode 100644 c/src/tests/mptests/mp01/init.c delete mode 100644 c/src/tests/mptests/mp01/node1/mp01.doc delete mode 100644 c/src/tests/mptests/mp01/node1/mp01.scn delete mode 100644 c/src/tests/mptests/mp01/node2/mp01.doc delete mode 100644 c/src/tests/mptests/mp01/node2/mp01.scn delete mode 100644 c/src/tests/mptests/mp01/system.h delete mode 100644 c/src/tests/mptests/mp01/task1.c delete mode 100644 c/src/tests/mptests/mp02/init.c delete mode 100644 c/src/tests/mptests/mp02/node1/mp02.doc delete mode 100644 c/src/tests/mptests/mp02/node1/mp02.scn delete mode 100644 c/src/tests/mptests/mp02/node2/mp02.doc delete mode 100644 c/src/tests/mptests/mp02/node2/mp02.scn delete mode 100644 c/src/tests/mptests/mp02/system.h delete mode 100644 c/src/tests/mptests/mp02/task1.c delete mode 100644 c/src/tests/mptests/mp03/delay.c delete mode 100644 c/src/tests/mptests/mp03/init.c delete mode 100644 c/src/tests/mptests/mp03/node1/mp03.doc delete mode 100644 c/src/tests/mptests/mp03/node1/mp03.scn delete mode 100644 c/src/tests/mptests/mp03/node2/mp03.doc delete mode 100644 c/src/tests/mptests/mp03/node2/mp03.scn delete mode 100644 c/src/tests/mptests/mp03/system.h delete mode 100644 c/src/tests/mptests/mp03/task1.c delete mode 100644 c/src/tests/mptests/mp04/init.c delete mode 100644 c/src/tests/mptests/mp04/node1/mp04.doc delete mode 100644 c/src/tests/mptests/mp04/node1/mp04.scn delete mode 100644 c/src/tests/mptests/mp04/node2/mp04.doc delete mode 100644 c/src/tests/mptests/mp04/node2/mp04.scn delete mode 100644 c/src/tests/mptests/mp04/system.h delete mode 100644 c/src/tests/mptests/mp04/task1.c delete mode 100644 c/src/tests/mptests/mp05/asr.c delete mode 100644 c/src/tests/mptests/mp05/init.c delete mode 100644 c/src/tests/mptests/mp05/node1/mp05.doc delete mode 100644 c/src/tests/mptests/mp05/node1/mp05.scn delete mode 100644 c/src/tests/mptests/mp05/node2/mp05.doc delete mode 100644 c/src/tests/mptests/mp05/node2/mp05.scn delete mode 100644 c/src/tests/mptests/mp05/system.h delete mode 100644 c/src/tests/mptests/mp05/task1.c delete mode 100644 c/src/tests/mptests/mp06/init.c delete mode 100644 c/src/tests/mptests/mp06/node1/mp06.doc delete mode 100644 c/src/tests/mptests/mp06/node1/mp06.scn delete mode 100644 c/src/tests/mptests/mp06/node2/mp06.doc delete mode 100644 c/src/tests/mptests/mp06/node2/mp06.scn delete mode 100644 c/src/tests/mptests/mp06/system.h delete mode 100644 c/src/tests/mptests/mp06/task1.c delete mode 100644 c/src/tests/mptests/mp07/init.c delete mode 100644 c/src/tests/mptests/mp07/node1/mp07.doc delete mode 100644 c/src/tests/mptests/mp07/node1/mp07.scn delete mode 100644 c/src/tests/mptests/mp07/node2/mp07.doc delete mode 100644 c/src/tests/mptests/mp07/node2/mp07.scn delete mode 100644 c/src/tests/mptests/mp07/system.h delete mode 100644 c/src/tests/mptests/mp07/task1.c delete mode 100644 c/src/tests/mptests/mp08/init.c delete mode 100644 c/src/tests/mptests/mp08/node1/mp08.doc delete mode 100644 c/src/tests/mptests/mp08/node1/mp08.scn delete mode 100644 c/src/tests/mptests/mp08/node2/mp08.doc delete mode 100644 c/src/tests/mptests/mp08/node2/mp08.scn delete mode 100644 c/src/tests/mptests/mp08/system.h delete mode 100644 c/src/tests/mptests/mp08/task1.c delete mode 100644 c/src/tests/mptests/mp09/init.c delete mode 100644 c/src/tests/mptests/mp09/node1/mp09.doc delete mode 100644 c/src/tests/mptests/mp09/node1/mp09.scn delete mode 100644 c/src/tests/mptests/mp09/node2/mp09.doc delete mode 100644 c/src/tests/mptests/mp09/node2/mp09.scn delete mode 100644 c/src/tests/mptests/mp09/recvmsg.c delete mode 100644 c/src/tests/mptests/mp09/sendmsg.c delete mode 100644 c/src/tests/mptests/mp09/system.h delete mode 100644 c/src/tests/mptests/mp09/task1.c delete mode 100644 c/src/tests/mptests/mp10/init.c delete mode 100644 c/src/tests/mptests/mp10/node1/mp10.doc delete mode 100644 c/src/tests/mptests/mp10/node1/mp10.scn delete mode 100644 c/src/tests/mptests/mp10/node2/mp10.doc delete mode 100644 c/src/tests/mptests/mp10/node2/mp10.scn delete mode 100644 c/src/tests/mptests/mp10/system.h delete mode 100644 c/src/tests/mptests/mp10/task1.c delete mode 100644 c/src/tests/mptests/mp10/task2.c delete mode 100644 c/src/tests/mptests/mp10/task3.c delete mode 100644 c/src/tests/mptests/mp11/init.c delete mode 100644 c/src/tests/mptests/mp11/node1/mp11.doc delete mode 100644 c/src/tests/mptests/mp11/node1/mp11.scn delete mode 100644 c/src/tests/mptests/mp11/node2/mp11.doc delete mode 100644 c/src/tests/mptests/mp11/node2/mp11.scn delete mode 100644 c/src/tests/mptests/mp11/system.h delete mode 100644 c/src/tests/mptests/mp12/init.c delete mode 100644 c/src/tests/mptests/mp12/node1/mp12.doc delete mode 100644 c/src/tests/mptests/mp12/node1/mp12.scn delete mode 100644 c/src/tests/mptests/mp12/node2/mp12.doc delete mode 100644 c/src/tests/mptests/mp12/node2/mp12.scn delete mode 100644 c/src/tests/mptests/mp12/system.h delete mode 100644 c/src/tests/mptests/mp13/init.c delete mode 100644 c/src/tests/mptests/mp13/node1/mp13.doc delete mode 100644 c/src/tests/mptests/mp13/node1/mp13.scn delete mode 100644 c/src/tests/mptests/mp13/node2/mp13.doc delete mode 100644 c/src/tests/mptests/mp13/node2/mp13.scn delete mode 100644 c/src/tests/mptests/mp13/system.h delete mode 100644 c/src/tests/mptests/mp13/task1.c delete mode 100644 c/src/tests/mptests/mp13/task2.c delete mode 100644 c/src/tests/mptests/mp14/delay.c delete mode 100644 c/src/tests/mptests/mp14/evtask1.c delete mode 100644 c/src/tests/mptests/mp14/evtmtask.c delete mode 100644 c/src/tests/mptests/mp14/exit.c delete mode 100644 c/src/tests/mptests/mp14/init.c delete mode 100644 c/src/tests/mptests/mp14/msgtask1.c delete mode 100644 c/src/tests/mptests/mp14/node1/mp14.doc delete mode 100644 c/src/tests/mptests/mp14/node1/mp14.scn delete mode 100644 c/src/tests/mptests/mp14/node2/mp14.doc delete mode 100644 c/src/tests/mptests/mp14/node2/mp14.scn delete mode 100644 c/src/tests/mptests/mp14/pttask1.c delete mode 100644 c/src/tests/mptests/mp14/smtask1.c delete mode 100644 c/src/tests/mptests/mp14/system.h delete mode 100644 c/src/tests/samples/README delete mode 100644 c/src/tests/samples/base_mp/apptask.c delete mode 100644 c/src/tests/samples/base_mp/init.c delete mode 100644 c/src/tests/samples/base_mp/node1/base_mp.doc delete mode 100644 c/src/tests/samples/base_mp/node1/base_mp.scn delete mode 100644 c/src/tests/samples/base_mp/node2/base_mp.doc delete mode 100644 c/src/tests/samples/base_mp/node2/base_mp.scn delete mode 100644 c/src/tests/samples/base_mp/system.h delete mode 100644 c/src/tests/samples/base_sp/apptask.c delete mode 100644 c/src/tests/samples/base_sp/base_sp.doc delete mode 100644 c/src/tests/samples/base_sp/base_sp.scn delete mode 100644 c/src/tests/samples/base_sp/init.c delete mode 100644 c/src/tests/samples/base_sp/system.h delete mode 100644 c/src/tests/samples/cdtest/cdtest.scn delete mode 100644 c/src/tests/samples/cdtest/init.c delete mode 100644 c/src/tests/samples/cdtest/main.cc delete mode 100644 c/src/tests/samples/cdtest/system.h delete mode 100644 c/src/tests/samples/hello/hello.doc delete mode 100644 c/src/tests/samples/hello/hello.scn delete mode 100644 c/src/tests/samples/hello/init.c delete mode 100644 c/src/tests/samples/hello/system.h delete mode 100644 c/src/tests/samples/paranoia/init.c delete mode 100644 c/src/tests/samples/paranoia/paranoia.c delete mode 100644 c/src/tests/samples/paranoia/paranoia.doc delete mode 100644 c/src/tests/samples/paranoia/system.h delete mode 100644 c/src/tests/samples/ticker/init.c delete mode 100644 c/src/tests/samples/ticker/system.h delete mode 100644 c/src/tests/samples/ticker/tasks.c delete mode 100644 c/src/tests/samples/ticker/ticker.doc delete mode 100644 c/src/tests/samples/ticker/ticker.scn delete mode 100644 c/src/tests/sptests/README delete mode 100644 c/src/tests/sptests/sp01/init.c delete mode 100644 c/src/tests/sptests/sp01/sp01.doc delete mode 100644 c/src/tests/sptests/sp01/sp01.scn delete mode 100644 c/src/tests/sptests/sp01/system.h delete mode 100644 c/src/tests/sptests/sp01/task1.c delete mode 100644 c/src/tests/sptests/sp02/init.c delete mode 100644 c/src/tests/sptests/sp02/preempt.c delete mode 100644 c/src/tests/sptests/sp02/sp02.doc delete mode 100644 c/src/tests/sptests/sp02/sp02.scn delete mode 100644 c/src/tests/sptests/sp02/system.h delete mode 100644 c/src/tests/sptests/sp02/task1.c delete mode 100644 c/src/tests/sptests/sp02/task2.c delete mode 100644 c/src/tests/sptests/sp02/task3.c delete mode 100644 c/src/tests/sptests/sp03/init.c delete mode 100644 c/src/tests/sptests/sp03/sp03.doc delete mode 100644 c/src/tests/sptests/sp03/sp03.scn delete mode 100644 c/src/tests/sptests/sp03/system.h delete mode 100644 c/src/tests/sptests/sp03/task1.c delete mode 100644 c/src/tests/sptests/sp03/task2.c delete mode 100644 c/src/tests/sptests/sp04/init.c delete mode 100644 c/src/tests/sptests/sp04/sp04.doc delete mode 100644 c/src/tests/sptests/sp04/sp04.scn delete mode 100644 c/src/tests/sptests/sp04/system.h delete mode 100644 c/src/tests/sptests/sp04/task1.c delete mode 100644 c/src/tests/sptests/sp04/task2.c delete mode 100644 c/src/tests/sptests/sp04/task3.c delete mode 100644 c/src/tests/sptests/sp04/tswitch.c delete mode 100644 c/src/tests/sptests/sp05/init.c delete mode 100644 c/src/tests/sptests/sp05/sp05.doc delete mode 100644 c/src/tests/sptests/sp05/sp05.scn delete mode 100644 c/src/tests/sptests/sp05/system.h delete mode 100644 c/src/tests/sptests/sp05/task1.c delete mode 100644 c/src/tests/sptests/sp05/task2.c delete mode 100644 c/src/tests/sptests/sp05/task3.c delete mode 100644 c/src/tests/sptests/sp06/init.c delete mode 100644 c/src/tests/sptests/sp06/sp06.doc delete mode 100644 c/src/tests/sptests/sp06/sp06.scn delete mode 100644 c/src/tests/sptests/sp06/system.h delete mode 100644 c/src/tests/sptests/sp06/task1.c delete mode 100644 c/src/tests/sptests/sp06/task2.c delete mode 100644 c/src/tests/sptests/sp06/task3.c delete mode 100644 c/src/tests/sptests/sp07/init.c delete mode 100644 c/src/tests/sptests/sp07/sp07.doc delete mode 100644 c/src/tests/sptests/sp07/sp07.scn delete mode 100644 c/src/tests/sptests/sp07/system.h delete mode 100644 c/src/tests/sptests/sp07/task1.c delete mode 100644 c/src/tests/sptests/sp07/task2.c delete mode 100644 c/src/tests/sptests/sp07/task3.c delete mode 100644 c/src/tests/sptests/sp07/task4.c delete mode 100644 c/src/tests/sptests/sp07/taskexit.c delete mode 100644 c/src/tests/sptests/sp07/tcreate.c delete mode 100644 c/src/tests/sptests/sp07/tdelete.c delete mode 100644 c/src/tests/sptests/sp07/trestart.c delete mode 100644 c/src/tests/sptests/sp07/tstart.c delete mode 100644 c/src/tests/sptests/sp08/init.c delete mode 100644 c/src/tests/sptests/sp08/sp08.doc delete mode 100644 c/src/tests/sptests/sp08/sp08.scn delete mode 100644 c/src/tests/sptests/sp08/system.h delete mode 100644 c/src/tests/sptests/sp08/task1.c delete mode 100644 c/src/tests/sptests/sp09/delay.c delete mode 100644 c/src/tests/sptests/sp09/init.c delete mode 100644 c/src/tests/sptests/sp09/isr.c delete mode 100644 c/src/tests/sptests/sp09/screen01.c delete mode 100644 c/src/tests/sptests/sp09/screen02.c delete mode 100644 c/src/tests/sptests/sp09/screen03.c delete mode 100644 c/src/tests/sptests/sp09/screen04.c delete mode 100644 c/src/tests/sptests/sp09/screen05.c delete mode 100644 c/src/tests/sptests/sp09/screen06.c delete mode 100644 c/src/tests/sptests/sp09/screen07.c delete mode 100644 c/src/tests/sptests/sp09/screen08.c delete mode 100644 c/src/tests/sptests/sp09/screen09.c delete mode 100644 c/src/tests/sptests/sp09/screen10.c delete mode 100644 c/src/tests/sptests/sp09/screen11.c delete mode 100644 c/src/tests/sptests/sp09/screen12.c delete mode 100644 c/src/tests/sptests/sp09/screen13.c delete mode 100644 c/src/tests/sptests/sp09/screen14.c delete mode 100644 c/src/tests/sptests/sp09/sp09.doc delete mode 100644 c/src/tests/sptests/sp09/sp09.scn delete mode 100644 c/src/tests/sptests/sp09/system.h delete mode 100644 c/src/tests/sptests/sp09/task1.c delete mode 100644 c/src/tests/sptests/sp09/task2.c delete mode 100644 c/src/tests/sptests/sp09/task3.c delete mode 100644 c/src/tests/sptests/sp09/task4.c delete mode 100644 c/src/tests/sptests/sp11/init.c delete mode 100644 c/src/tests/sptests/sp11/sp11.doc delete mode 100644 c/src/tests/sptests/sp11/sp11.scn delete mode 100644 c/src/tests/sptests/sp11/system.h delete mode 100644 c/src/tests/sptests/sp11/task1.c delete mode 100644 c/src/tests/sptests/sp11/task2.c delete mode 100644 c/src/tests/sptests/sp11/timer.c delete mode 100644 c/src/tests/sptests/sp12/init.c delete mode 100644 c/src/tests/sptests/sp12/pridrv.c delete mode 100644 c/src/tests/sptests/sp12/pritask.c delete mode 100644 c/src/tests/sptests/sp12/sp12.doc delete mode 100644 c/src/tests/sptests/sp12/sp12.scn delete mode 100644 c/src/tests/sptests/sp12/system.h delete mode 100644 c/src/tests/sptests/sp12/task1.c delete mode 100644 c/src/tests/sptests/sp12/task2.c delete mode 100644 c/src/tests/sptests/sp12/task3.c delete mode 100644 c/src/tests/sptests/sp12/task4.c delete mode 100644 c/src/tests/sptests/sp12/task5.c delete mode 100644 c/src/tests/sptests/sp13/fillbuff.c delete mode 100644 c/src/tests/sptests/sp13/init.c delete mode 100644 c/src/tests/sptests/sp13/putbuff.c delete mode 100644 c/src/tests/sptests/sp13/sp13.doc delete mode 100644 c/src/tests/sptests/sp13/sp13.scn delete mode 100644 c/src/tests/sptests/sp13/system.h delete mode 100644 c/src/tests/sptests/sp13/task1.c delete mode 100644 c/src/tests/sptests/sp13/task2.c delete mode 100644 c/src/tests/sptests/sp13/task3.c delete mode 100644 c/src/tests/sptests/sp14/asr.c delete mode 100644 c/src/tests/sptests/sp14/init.c delete mode 100644 c/src/tests/sptests/sp14/sp14.doc delete mode 100644 c/src/tests/sptests/sp14/sp14.scn delete mode 100644 c/src/tests/sptests/sp14/system.h delete mode 100644 c/src/tests/sptests/sp14/task1.c delete mode 100644 c/src/tests/sptests/sp14/task2.c delete mode 100644 c/src/tests/sptests/sp15/init.c delete mode 100644 c/src/tests/sptests/sp15/sp15.doc delete mode 100644 c/src/tests/sptests/sp15/sp15.scn delete mode 100644 c/src/tests/sptests/sp15/system.h delete mode 100644 c/src/tests/sptests/sp15/task1.c delete mode 100644 c/src/tests/sptests/sp16/init.c delete mode 100644 c/src/tests/sptests/sp16/sp16.doc delete mode 100644 c/src/tests/sptests/sp16/sp16.scn delete mode 100644 c/src/tests/sptests/sp16/system.h delete mode 100644 c/src/tests/sptests/sp16/task1.c delete mode 100644 c/src/tests/sptests/sp16/task2.c delete mode 100644 c/src/tests/sptests/sp16/task3.c delete mode 100644 c/src/tests/sptests/sp16/task4.c delete mode 100644 c/src/tests/sptests/sp16/task5.c delete mode 100644 c/src/tests/sptests/sp17/asr.c delete mode 100644 c/src/tests/sptests/sp17/init.c delete mode 100644 c/src/tests/sptests/sp17/sp17.doc delete mode 100644 c/src/tests/sptests/sp17/sp17.scn delete mode 100644 c/src/tests/sptests/sp17/system.h delete mode 100644 c/src/tests/sptests/sp17/task1.c delete mode 100644 c/src/tests/sptests/sp17/task2.c delete mode 100644 c/src/tests/sptests/sp19/first.c delete mode 100644 c/src/tests/sptests/sp19/fptask.c delete mode 100644 c/src/tests/sptests/sp19/fptest.h delete mode 100644 c/src/tests/sptests/sp19/init.c delete mode 100644 c/src/tests/sptests/sp19/inttest.h delete mode 100644 c/src/tests/sptests/sp19/sp19.doc delete mode 100644 c/src/tests/sptests/sp19/sp19.scn delete mode 100644 c/src/tests/sptests/sp19/system.h delete mode 100644 c/src/tests/sptests/sp19/task1.c delete mode 100644 c/src/tests/sptests/sp20/getall.c delete mode 100644 c/src/tests/sptests/sp20/init.c delete mode 100644 c/src/tests/sptests/sp20/sp20.doc delete mode 100644 c/src/tests/sptests/sp20/sp20.scn delete mode 100644 c/src/tests/sptests/sp20/system.h delete mode 100644 c/src/tests/sptests/sp20/task1.c delete mode 100644 c/src/tests/sptests/sp21/init.c delete mode 100644 c/src/tests/sptests/sp21/sp21.doc delete mode 100644 c/src/tests/sptests/sp21/sp21.scn delete mode 100644 c/src/tests/sptests/sp21/system.h delete mode 100644 c/src/tests/sptests/sp21/task1.c delete mode 100644 c/src/tests/sptests/sp22/delay.c delete mode 100644 c/src/tests/sptests/sp22/init.c delete mode 100644 c/src/tests/sptests/sp22/prtime.c delete mode 100644 c/src/tests/sptests/sp22/sp22.doc delete mode 100644 c/src/tests/sptests/sp22/sp22.scn delete mode 100644 c/src/tests/sptests/sp22/system.h delete mode 100644 c/src/tests/sptests/sp22/task1.c delete mode 100644 c/src/tests/sptests/sp23/init.c delete mode 100644 c/src/tests/sptests/sp23/sp23.doc delete mode 100644 c/src/tests/sptests/sp23/sp23.scn delete mode 100644 c/src/tests/sptests/sp23/system.h delete mode 100644 c/src/tests/sptests/sp23/task1.c delete mode 100644 c/src/tests/sptests/sp24/init.c delete mode 100644 c/src/tests/sptests/sp24/resume.c delete mode 100644 c/src/tests/sptests/sp24/sp24.doc delete mode 100644 c/src/tests/sptests/sp24/system.h delete mode 100644 c/src/tests/sptests/sp24/task1.c delete mode 100644 c/src/tests/sptests/sp25/init.c delete mode 100644 c/src/tests/sptests/sp25/sp25.doc delete mode 100644 c/src/tests/sptests/sp25/sp25.scn delete mode 100644 c/src/tests/sptests/sp25/system.h delete mode 100644 c/src/tests/sptests/sp25/task1.c delete mode 100644 c/src/tests/sptests/spfatal/fatal.c delete mode 100644 c/src/tests/sptests/spfatal/init.c delete mode 100644 c/src/tests/sptests/spfatal/puterr.c delete mode 100644 c/src/tests/sptests/spfatal/spfatal.doc delete mode 100644 c/src/tests/sptests/spfatal/spfatal.scn delete mode 100644 c/src/tests/sptests/spfatal/system.h delete mode 100644 c/src/tests/sptests/spfatal/task1.c delete mode 100644 c/src/tests/sptests/spsize/getint.c delete mode 100644 c/src/tests/sptests/spsize/init.c delete mode 100644 c/src/tests/sptests/spsize/size.c delete mode 100644 c/src/tests/support/include/tmacros.h delete mode 100644 c/src/tests/support/stubdr/close.c delete mode 100644 c/src/tests/support/stubdr/cntrl.c delete mode 100644 c/src/tests/support/stubdr/init.c delete mode 100644 c/src/tests/support/stubdr/open.c delete mode 100644 c/src/tests/support/stubdr/read.c delete mode 100644 c/src/tests/support/stubdr/stubdrv.h delete mode 100644 c/src/tests/support/stubdr/write.c delete mode 100644 c/src/tests/tmtests/README delete mode 100644 c/src/tests/tmtests/include/timesys.h delete mode 100644 c/src/tests/tmtests/tm01/system.h delete mode 100644 c/src/tests/tmtests/tm01/task1.c delete mode 100644 c/src/tests/tmtests/tm01/tm01.doc delete mode 100644 c/src/tests/tmtests/tm02/system.h delete mode 100644 c/src/tests/tmtests/tm02/task1.c delete mode 100644 c/src/tests/tmtests/tm02/tm02.doc delete mode 100644 c/src/tests/tmtests/tm03/system.h delete mode 100644 c/src/tests/tmtests/tm03/task1.c delete mode 100644 c/src/tests/tmtests/tm03/tm03.doc delete mode 100644 c/src/tests/tmtests/tm04/system.h delete mode 100644 c/src/tests/tmtests/tm04/task1.c delete mode 100644 c/src/tests/tmtests/tm04/tm04.doc delete mode 100644 c/src/tests/tmtests/tm05/system.h delete mode 100644 c/src/tests/tmtests/tm05/task1.c delete mode 100644 c/src/tests/tmtests/tm05/tm05.doc delete mode 100644 c/src/tests/tmtests/tm06/system.h delete mode 100644 c/src/tests/tmtests/tm06/task1.c delete mode 100644 c/src/tests/tmtests/tm06/tm06.doc delete mode 100644 c/src/tests/tmtests/tm07/system.h delete mode 100644 c/src/tests/tmtests/tm07/task1.c delete mode 100644 c/src/tests/tmtests/tm07/tm07.doc delete mode 100644 c/src/tests/tmtests/tm08/system.h delete mode 100644 c/src/tests/tmtests/tm08/task1.c delete mode 100644 c/src/tests/tmtests/tm08/tm08.doc delete mode 100644 c/src/tests/tmtests/tm09/system.h delete mode 100644 c/src/tests/tmtests/tm09/task1.c delete mode 100644 c/src/tests/tmtests/tm09/tm09.doc delete mode 100644 c/src/tests/tmtests/tm10/system.h delete mode 100644 c/src/tests/tmtests/tm10/task1.c delete mode 100644 c/src/tests/tmtests/tm10/tm10.doc delete mode 100644 c/src/tests/tmtests/tm11/system.h delete mode 100644 c/src/tests/tmtests/tm11/task1.c delete mode 100644 c/src/tests/tmtests/tm11/tm11.doc delete mode 100644 c/src/tests/tmtests/tm12/system.h delete mode 100644 c/src/tests/tmtests/tm12/task1.c delete mode 100644 c/src/tests/tmtests/tm12/tm12.doc delete mode 100644 c/src/tests/tmtests/tm13/system.h delete mode 100644 c/src/tests/tmtests/tm13/task1.c delete mode 100644 c/src/tests/tmtests/tm13/tm13.doc delete mode 100644 c/src/tests/tmtests/tm14/system.h delete mode 100644 c/src/tests/tmtests/tm14/task1.c delete mode 100644 c/src/tests/tmtests/tm14/tm14.doc delete mode 100644 c/src/tests/tmtests/tm15/system.h delete mode 100644 c/src/tests/tmtests/tm15/task1.c delete mode 100644 c/src/tests/tmtests/tm15/tm15.doc delete mode 100644 c/src/tests/tmtests/tm16/system.h delete mode 100644 c/src/tests/tmtests/tm16/task1.c delete mode 100644 c/src/tests/tmtests/tm16/tm16.doc delete mode 100644 c/src/tests/tmtests/tm17/system.h delete mode 100644 c/src/tests/tmtests/tm17/task1.c delete mode 100644 c/src/tests/tmtests/tm17/tm17.doc delete mode 100644 c/src/tests/tmtests/tm18/system.h delete mode 100644 c/src/tests/tmtests/tm18/task1.c delete mode 100644 c/src/tests/tmtests/tm18/tm18.doc delete mode 100644 c/src/tests/tmtests/tm19/system.h delete mode 100644 c/src/tests/tmtests/tm19/task1.c delete mode 100644 c/src/tests/tmtests/tm19/tm19.doc delete mode 100644 c/src/tests/tmtests/tm20/system.h delete mode 100644 c/src/tests/tmtests/tm20/task1.c delete mode 100644 c/src/tests/tmtests/tm20/tm20.doc delete mode 100644 c/src/tests/tmtests/tm21/system.h delete mode 100644 c/src/tests/tmtests/tm21/task1.c delete mode 100644 c/src/tests/tmtests/tm21/tm21.doc delete mode 100644 c/src/tests/tmtests/tm22/system.h delete mode 100644 c/src/tests/tmtests/tm22/task1.c delete mode 100644 c/src/tests/tmtests/tm22/tm22.doc delete mode 100644 c/src/tests/tmtests/tm23/system.h delete mode 100644 c/src/tests/tmtests/tm23/task1.c delete mode 100644 c/src/tests/tmtests/tm23/tm23.doc delete mode 100644 c/src/tests/tmtests/tm24/system.h delete mode 100644 c/src/tests/tmtests/tm24/task1.c delete mode 100644 c/src/tests/tmtests/tm24/tm24.doc delete mode 100644 c/src/tests/tmtests/tm25/system.h delete mode 100644 c/src/tests/tmtests/tm25/task1.c delete mode 100644 c/src/tests/tmtests/tm25/tm25.doc delete mode 100644 c/src/tests/tmtests/tm26/fptest.h delete mode 100644 c/src/tests/tmtests/tm26/system.h delete mode 100644 c/src/tests/tmtests/tm26/task1.c delete mode 100644 c/src/tests/tmtests/tm26/tm26.doc delete mode 100644 c/src/tests/tmtests/tm27/system.h delete mode 100644 c/src/tests/tmtests/tm27/task1.c delete mode 100644 c/src/tests/tmtests/tm27/tm27.doc delete mode 100644 c/src/tests/tmtests/tm28/system.h delete mode 100644 c/src/tests/tmtests/tm28/task1.c delete mode 100644 c/src/tests/tmtests/tm28/tm28.doc delete mode 100644 c/src/tests/tmtests/tm29/system.h delete mode 100644 c/src/tests/tmtests/tm29/task1.c delete mode 100644 c/src/tests/tmtests/tm29/tm29.doc delete mode 100644 c/src/tests/tmtests/tmck/system.h delete mode 100644 c/src/tests/tmtests/tmck/task1.c delete mode 100644 c/src/tests/tmtests/tmck/tmck.doc delete mode 100644 c/src/tests/tmtests/tmoverhd/dumrtems.h delete mode 100644 c/src/tests/tmtests/tmoverhd/empty.c delete mode 100644 c/src/tests/tmtests/tmoverhd/system.h delete mode 100644 c/src/tests/tmtests/tmoverhd/testtask.c delete mode 100644 c/src/tests/tmtests/tmoverhd/tmoverhd.doc delete mode 100644 c/src/tests/tools/generic/difftest delete mode 100644 c/update-tools/310_to_320_list delete mode 100644 c/update-tools/README delete mode 100644 cpukit/libcsupport/include/clockdrv.h delete mode 100644 cpukit/libcsupport/include/console.h delete mode 100644 cpukit/libcsupport/include/iosupp.h delete mode 100644 cpukit/libcsupport/include/rtems/libcsupport.h delete mode 100644 cpukit/libcsupport/include/spurious.h delete mode 100644 cpukit/libcsupport/include/timerdrv.h delete mode 100644 cpukit/libcsupport/include/vmeintr.h delete mode 100644 cpukit/libcsupport/src/README delete mode 100644 cpukit/libcsupport/src/__brk.c delete mode 100644 cpukit/libcsupport/src/__gettod.c delete mode 100644 cpukit/libcsupport/src/__times.c delete mode 100644 cpukit/libcsupport/src/malloc.c delete mode 100644 cpukit/libcsupport/src/newlibc.c delete mode 100644 cpukit/libcsupport/src/no_libc.c delete mode 100644 cpukit/libcsupport/src/unixlibc.c delete mode 100644 cpukit/libmisc/README delete mode 100644 cpukit/libmisc/monitor/README delete mode 100644 cpukit/libmisc/monitor/mon-monitor.c delete mode 100644 cpukit/libmisc/monitor/mon-symbols.c delete mode 100644 cpukit/libmisc/monitor/monitor.h delete mode 100644 cpukit/libmisc/monitor/symbols.h delete mode 100644 cpukit/libmisc/stackchk/README delete mode 100644 cpukit/libmisc/stackchk/check.c delete mode 100644 cpukit/libmisc/stackchk/internal.h delete mode 100644 cpukit/libmisc/stackchk/stackchk.h delete mode 100644 cpukit/rtems/include/rtems.h delete mode 100644 cpukit/rtems/include/rtems/rtems/asr.h delete mode 100644 cpukit/rtems/include/rtems/rtems/attr.h delete mode 100644 cpukit/rtems/include/rtems/rtems/clock.h delete mode 100644 cpukit/rtems/include/rtems/rtems/dpmem.h delete mode 100644 cpukit/rtems/include/rtems/rtems/event.h delete mode 100644 cpukit/rtems/include/rtems/rtems/eventmp.h delete mode 100644 cpukit/rtems/include/rtems/rtems/eventset.h delete mode 100644 cpukit/rtems/include/rtems/rtems/intr.h delete mode 100644 cpukit/rtems/include/rtems/rtems/message.h delete mode 100644 cpukit/rtems/include/rtems/rtems/modes.h delete mode 100644 cpukit/rtems/include/rtems/rtems/mp.h delete mode 100644 cpukit/rtems/include/rtems/rtems/msgmp.h delete mode 100644 cpukit/rtems/include/rtems/rtems/options.h delete mode 100644 cpukit/rtems/include/rtems/rtems/part.h delete mode 100644 cpukit/rtems/include/rtems/rtems/partmp.h delete mode 100644 cpukit/rtems/include/rtems/rtems/ratemon.h delete mode 100644 cpukit/rtems/include/rtems/rtems/region.h delete mode 100644 cpukit/rtems/include/rtems/rtems/regionmp.h delete mode 100644 cpukit/rtems/include/rtems/rtems/sem.h delete mode 100644 cpukit/rtems/include/rtems/rtems/semmp.h delete mode 100644 cpukit/rtems/include/rtems/rtems/signal.h delete mode 100644 cpukit/rtems/include/rtems/rtems/signalmp.h delete mode 100644 cpukit/rtems/include/rtems/rtems/status.h delete mode 100644 cpukit/rtems/include/rtems/rtems/taskmp.h delete mode 100644 cpukit/rtems/include/rtems/rtems/tasks.h delete mode 100644 cpukit/rtems/include/rtems/rtems/timer.h delete mode 100644 cpukit/rtems/inline/rtems/rtems/asr.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/attr.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/dpmem.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/event.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/eventset.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/message.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/modes.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/options.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/part.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/ratemon.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/region.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/sem.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/status.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/tasks.inl delete mode 100644 cpukit/rtems/inline/rtems/rtems/timer.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/asr.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/attr.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/dpmem.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/event.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/eventset.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/message.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/modes.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/options.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/part.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/ratemon.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/region.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/sem.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/status.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/tasks.inl delete mode 100644 cpukit/rtems/macros/rtems/rtems/timer.inl delete mode 100644 cpukit/rtems/src/dpmem.c delete mode 100644 cpukit/rtems/src/event.c delete mode 100644 cpukit/rtems/src/eventmp.c delete mode 100644 cpukit/rtems/src/intr.c delete mode 100644 cpukit/rtems/src/mp.c delete mode 100644 cpukit/rtems/src/msg.c delete mode 100644 cpukit/rtems/src/msgmp.c delete mode 100644 cpukit/rtems/src/part.c delete mode 100644 cpukit/rtems/src/partmp.c delete mode 100644 cpukit/rtems/src/ratemon.c delete mode 100644 cpukit/rtems/src/region.c delete mode 100644 cpukit/rtems/src/regionmp.c delete mode 100644 cpukit/rtems/src/rtclock.c delete mode 100644 cpukit/rtems/src/rtemstimer.c delete mode 100644 cpukit/rtems/src/sem.c delete mode 100644 cpukit/rtems/src/semmp.c delete mode 100644 cpukit/rtems/src/signal.c delete mode 100644 cpukit/rtems/src/signalmp.c delete mode 100644 cpukit/rtems/src/taskmp.c delete mode 100644 cpukit/rtems/src/tasks.c delete mode 100644 cpukit/sapi/include/rtems/config.h delete mode 100644 cpukit/sapi/include/rtems/extension.h delete mode 100644 cpukit/sapi/include/rtems/fatal.h delete mode 100644 cpukit/sapi/include/rtems/init.h delete mode 100644 cpukit/sapi/include/rtems/io.h delete mode 100644 cpukit/sapi/include/rtems/mptables.h delete mode 100644 cpukit/sapi/inline/rtems/extension.inl delete mode 100644 cpukit/sapi/macros/rtems/extension.inl delete mode 100644 cpukit/sapi/src/debug.c delete mode 100644 cpukit/sapi/src/exinit.c delete mode 100644 cpukit/sapi/src/extension.c delete mode 100644 cpukit/sapi/src/fatal.c delete mode 100644 cpukit/sapi/src/io.c delete mode 100644 cpukit/score/cpu/hppa1.1/cpu.c delete mode 100644 cpukit/score/cpu/i386/asm.h delete mode 100644 cpukit/score/cpu/i386/cpu.c delete mode 100644 cpukit/score/cpu/i386/rtems/asm.h delete mode 100644 cpukit/score/cpu/i960/asm.h delete mode 100644 cpukit/score/cpu/i960/cpu.c delete mode 100644 cpukit/score/cpu/m68k/asm.h delete mode 100644 cpukit/score/cpu/m68k/cpu.c delete mode 100644 cpukit/score/cpu/m68k/rtems/asm.h delete mode 100644 cpukit/score/cpu/no_cpu/asm.h delete mode 100644 cpukit/score/cpu/no_cpu/cpu.c delete mode 100644 cpukit/score/cpu/no_cpu/cpu_asm.c delete mode 100644 cpukit/score/cpu/no_cpu/rtems/asm.h delete mode 100644 cpukit/score/cpu/unix/cpu.c delete mode 100644 cpukit/score/include/rtems/debug.h delete mode 100644 cpukit/score/include/rtems/score/address.h delete mode 100644 cpukit/score/include/rtems/score/bitfield.h delete mode 100644 cpukit/score/include/rtems/score/chain.h delete mode 100644 cpukit/score/include/rtems/score/context.h delete mode 100644 cpukit/score/include/rtems/score/copyrt.h delete mode 100644 cpukit/score/include/rtems/score/heap.h delete mode 100644 cpukit/score/include/rtems/score/isr.h delete mode 100644 cpukit/score/include/rtems/score/mpci.h delete mode 100644 cpukit/score/include/rtems/score/mppkt.h delete mode 100644 cpukit/score/include/rtems/score/object.h delete mode 100644 cpukit/score/include/rtems/score/objectmp.h delete mode 100644 cpukit/score/include/rtems/score/priority.h delete mode 100644 cpukit/score/include/rtems/score/stack.h delete mode 100644 cpukit/score/include/rtems/score/states.h delete mode 100644 cpukit/score/include/rtems/score/sysstate.h delete mode 100644 cpukit/score/include/rtems/score/thread.h delete mode 100644 cpukit/score/include/rtems/score/threadmp.h delete mode 100644 cpukit/score/include/rtems/score/threadq.h delete mode 100644 cpukit/score/include/rtems/score/tod.h delete mode 100644 cpukit/score/include/rtems/score/tqdata.h delete mode 100644 cpukit/score/include/rtems/score/userext.h delete mode 100644 cpukit/score/include/rtems/score/watchdog.h delete mode 100644 cpukit/score/include/rtems/score/wkspace.h delete mode 100644 cpukit/score/include/rtems/system.h delete mode 100644 cpukit/score/inline/rtems/score/address.inl delete mode 100644 cpukit/score/inline/rtems/score/chain.inl delete mode 100644 cpukit/score/inline/rtems/score/heap.inl delete mode 100644 cpukit/score/inline/rtems/score/isr.inl delete mode 100644 cpukit/score/inline/rtems/score/mppkt.inl delete mode 100644 cpukit/score/inline/rtems/score/object.inl delete mode 100644 cpukit/score/inline/rtems/score/objectmp.inl delete mode 100644 cpukit/score/inline/rtems/score/priority.inl delete mode 100644 cpukit/score/inline/rtems/score/stack.inl delete mode 100644 cpukit/score/inline/rtems/score/states.inl delete mode 100644 cpukit/score/inline/rtems/score/sysstate.inl delete mode 100644 cpukit/score/inline/rtems/score/thread.inl delete mode 100644 cpukit/score/inline/rtems/score/threadmp.inl delete mode 100644 cpukit/score/inline/rtems/score/tod.inl delete mode 100644 cpukit/score/inline/rtems/score/tqdata.inl delete mode 100644 cpukit/score/inline/rtems/score/userext.inl delete mode 100644 cpukit/score/inline/rtems/score/watchdog.inl delete mode 100644 cpukit/score/inline/rtems/score/wkspace.inl delete mode 100644 cpukit/score/macros/README delete mode 100644 cpukit/score/macros/rtems/score/README delete mode 100644 cpukit/score/macros/rtems/score/address.inl delete mode 100644 cpukit/score/macros/rtems/score/chain.inl delete mode 100644 cpukit/score/macros/rtems/score/heap.inl delete mode 100644 cpukit/score/macros/rtems/score/isr.inl delete mode 100644 cpukit/score/macros/rtems/score/mppkt.inl delete mode 100644 cpukit/score/macros/rtems/score/object.inl delete mode 100644 cpukit/score/macros/rtems/score/objectmp.inl delete mode 100644 cpukit/score/macros/rtems/score/priority.inl delete mode 100644 cpukit/score/macros/rtems/score/stack.inl delete mode 100644 cpukit/score/macros/rtems/score/states.inl delete mode 100644 cpukit/score/macros/rtems/score/sysstate.inl delete mode 100644 cpukit/score/macros/rtems/score/thread.inl delete mode 100644 cpukit/score/macros/rtems/score/threadmp.inl delete mode 100644 cpukit/score/macros/rtems/score/tod.inl delete mode 100644 cpukit/score/macros/rtems/score/tqdata.inl delete mode 100644 cpukit/score/macros/rtems/score/userext.inl delete mode 100644 cpukit/score/macros/rtems/score/watchdog.inl delete mode 100644 cpukit/score/macros/rtems/score/wkspace.inl delete mode 100644 cpukit/score/src/chain.c delete mode 100644 cpukit/score/src/coretod.c delete mode 100644 cpukit/score/src/heap.c delete mode 100644 cpukit/score/src/mpci.c delete mode 100644 cpukit/score/src/object.c delete mode 100644 cpukit/score/src/objectmp.c delete mode 100644 cpukit/score/src/thread.c delete mode 100644 cpukit/score/src/threadmp.c delete mode 100644 cpukit/score/src/threadq.c delete mode 100644 cpukit/score/src/watchdog.c delete mode 100644 cpukit/score/src/wkspace.c delete mode 100644 testsuites/README delete mode 100644 testsuites/libtests/README delete mode 100644 testsuites/libtests/stackchk/blow.c delete mode 100644 testsuites/libtests/stackchk/init.c delete mode 100644 testsuites/libtests/stackchk/stackchk.scn delete mode 100644 testsuites/libtests/stackchk/task1.c delete mode 100644 testsuites/mptests/README delete mode 100644 testsuites/mptests/mp01/init.c delete mode 100644 testsuites/mptests/mp01/node1/mp01.doc delete mode 100644 testsuites/mptests/mp01/node1/mp01.scn delete mode 100644 testsuites/mptests/mp01/node2/mp01.doc delete mode 100644 testsuites/mptests/mp01/node2/mp01.scn delete mode 100644 testsuites/mptests/mp01/system.h delete mode 100644 testsuites/mptests/mp01/task1.c delete mode 100644 testsuites/mptests/mp02/init.c delete mode 100644 testsuites/mptests/mp02/node1/mp02.doc delete mode 100644 testsuites/mptests/mp02/node1/mp02.scn delete mode 100644 testsuites/mptests/mp02/node2/mp02.doc delete mode 100644 testsuites/mptests/mp02/node2/mp02.scn delete mode 100644 testsuites/mptests/mp02/system.h delete mode 100644 testsuites/mptests/mp02/task1.c delete mode 100644 testsuites/mptests/mp03/delay.c delete mode 100644 testsuites/mptests/mp03/init.c delete mode 100644 testsuites/mptests/mp03/node1/mp03.doc delete mode 100644 testsuites/mptests/mp03/node1/mp03.scn delete mode 100644 testsuites/mptests/mp03/node2/mp03.doc delete mode 100644 testsuites/mptests/mp03/node2/mp03.scn delete mode 100644 testsuites/mptests/mp03/system.h delete mode 100644 testsuites/mptests/mp03/task1.c delete mode 100644 testsuites/mptests/mp04/init.c delete mode 100644 testsuites/mptests/mp04/node1/mp04.doc delete mode 100644 testsuites/mptests/mp04/node1/mp04.scn delete mode 100644 testsuites/mptests/mp04/node2/mp04.doc delete mode 100644 testsuites/mptests/mp04/node2/mp04.scn delete mode 100644 testsuites/mptests/mp04/system.h delete mode 100644 testsuites/mptests/mp04/task1.c delete mode 100644 testsuites/mptests/mp05/asr.c delete mode 100644 testsuites/mptests/mp05/init.c delete mode 100644 testsuites/mptests/mp05/node1/mp05.doc delete mode 100644 testsuites/mptests/mp05/node1/mp05.scn delete mode 100644 testsuites/mptests/mp05/node2/mp05.doc delete mode 100644 testsuites/mptests/mp05/node2/mp05.scn delete mode 100644 testsuites/mptests/mp05/system.h delete mode 100644 testsuites/mptests/mp05/task1.c delete mode 100644 testsuites/mptests/mp06/init.c delete mode 100644 testsuites/mptests/mp06/node1/mp06.doc delete mode 100644 testsuites/mptests/mp06/node1/mp06.scn delete mode 100644 testsuites/mptests/mp06/node2/mp06.doc delete mode 100644 testsuites/mptests/mp06/node2/mp06.scn delete mode 100644 testsuites/mptests/mp06/system.h delete mode 100644 testsuites/mptests/mp06/task1.c delete mode 100644 testsuites/mptests/mp07/init.c delete mode 100644 testsuites/mptests/mp07/node1/mp07.doc delete mode 100644 testsuites/mptests/mp07/node1/mp07.scn delete mode 100644 testsuites/mptests/mp07/node2/mp07.doc delete mode 100644 testsuites/mptests/mp07/node2/mp07.scn delete mode 100644 testsuites/mptests/mp07/system.h delete mode 100644 testsuites/mptests/mp07/task1.c delete mode 100644 testsuites/mptests/mp08/init.c delete mode 100644 testsuites/mptests/mp08/node1/mp08.doc delete mode 100644 testsuites/mptests/mp08/node1/mp08.scn delete mode 100644 testsuites/mptests/mp08/node2/mp08.doc delete mode 100644 testsuites/mptests/mp08/node2/mp08.scn delete mode 100644 testsuites/mptests/mp08/system.h delete mode 100644 testsuites/mptests/mp08/task1.c delete mode 100644 testsuites/mptests/mp09/init.c delete mode 100644 testsuites/mptests/mp09/node1/mp09.doc delete mode 100644 testsuites/mptests/mp09/node1/mp09.scn delete mode 100644 testsuites/mptests/mp09/node2/mp09.doc delete mode 100644 testsuites/mptests/mp09/node2/mp09.scn delete mode 100644 testsuites/mptests/mp09/recvmsg.c delete mode 100644 testsuites/mptests/mp09/sendmsg.c delete mode 100644 testsuites/mptests/mp09/system.h delete mode 100644 testsuites/mptests/mp09/task1.c delete mode 100644 testsuites/mptests/mp10/init.c delete mode 100644 testsuites/mptests/mp10/node1/mp10.doc delete mode 100644 testsuites/mptests/mp10/node1/mp10.scn delete mode 100644 testsuites/mptests/mp10/node2/mp10.doc delete mode 100644 testsuites/mptests/mp10/node2/mp10.scn delete mode 100644 testsuites/mptests/mp10/system.h delete mode 100644 testsuites/mptests/mp10/task1.c delete mode 100644 testsuites/mptests/mp10/task2.c delete mode 100644 testsuites/mptests/mp10/task3.c delete mode 100644 testsuites/mptests/mp11/init.c delete mode 100644 testsuites/mptests/mp11/node1/mp11.doc delete mode 100644 testsuites/mptests/mp11/node1/mp11.scn delete mode 100644 testsuites/mptests/mp11/node2/mp11.doc delete mode 100644 testsuites/mptests/mp11/node2/mp11.scn delete mode 100644 testsuites/mptests/mp11/system.h delete mode 100644 testsuites/mptests/mp12/init.c delete mode 100644 testsuites/mptests/mp12/node1/mp12.doc delete mode 100644 testsuites/mptests/mp12/node1/mp12.scn delete mode 100644 testsuites/mptests/mp12/node2/mp12.doc delete mode 100644 testsuites/mptests/mp12/node2/mp12.scn delete mode 100644 testsuites/mptests/mp12/system.h delete mode 100644 testsuites/mptests/mp13/init.c delete mode 100644 testsuites/mptests/mp13/node1/mp13.doc delete mode 100644 testsuites/mptests/mp13/node1/mp13.scn delete mode 100644 testsuites/mptests/mp13/node2/mp13.doc delete mode 100644 testsuites/mptests/mp13/node2/mp13.scn delete mode 100644 testsuites/mptests/mp13/system.h delete mode 100644 testsuites/mptests/mp13/task1.c delete mode 100644 testsuites/mptests/mp13/task2.c delete mode 100644 testsuites/mptests/mp14/delay.c delete mode 100644 testsuites/mptests/mp14/evtask1.c delete mode 100644 testsuites/mptests/mp14/evtmtask.c delete mode 100644 testsuites/mptests/mp14/exit.c delete mode 100644 testsuites/mptests/mp14/init.c delete mode 100644 testsuites/mptests/mp14/msgtask1.c delete mode 100644 testsuites/mptests/mp14/node1/mp14.doc delete mode 100644 testsuites/mptests/mp14/node1/mp14.scn delete mode 100644 testsuites/mptests/mp14/node2/mp14.doc delete mode 100644 testsuites/mptests/mp14/node2/mp14.scn delete mode 100644 testsuites/mptests/mp14/pttask1.c delete mode 100644 testsuites/mptests/mp14/smtask1.c delete mode 100644 testsuites/mptests/mp14/system.h delete mode 100644 testsuites/samples/README delete mode 100644 testsuites/samples/base_mp/apptask.c delete mode 100644 testsuites/samples/base_mp/init.c delete mode 100644 testsuites/samples/base_mp/node1/base_mp.doc delete mode 100644 testsuites/samples/base_mp/node1/base_mp.scn delete mode 100644 testsuites/samples/base_mp/node2/base_mp.doc delete mode 100644 testsuites/samples/base_mp/node2/base_mp.scn delete mode 100644 testsuites/samples/base_mp/system.h delete mode 100644 testsuites/samples/base_sp/apptask.c delete mode 100644 testsuites/samples/base_sp/base_sp.doc delete mode 100644 testsuites/samples/base_sp/base_sp.scn delete mode 100644 testsuites/samples/base_sp/init.c delete mode 100644 testsuites/samples/base_sp/system.h delete mode 100644 testsuites/samples/cdtest/cdtest.scn delete mode 100644 testsuites/samples/cdtest/init.c delete mode 100644 testsuites/samples/cdtest/main.cc delete mode 100644 testsuites/samples/cdtest/system.h delete mode 100644 testsuites/samples/hello/hello.doc delete mode 100644 testsuites/samples/hello/hello.scn delete mode 100644 testsuites/samples/hello/init.c delete mode 100644 testsuites/samples/hello/system.h delete mode 100644 testsuites/samples/paranoia/init.c delete mode 100644 testsuites/samples/paranoia/paranoia.c delete mode 100644 testsuites/samples/paranoia/paranoia.doc delete mode 100644 testsuites/samples/paranoia/system.h delete mode 100644 testsuites/samples/ticker/init.c delete mode 100644 testsuites/samples/ticker/system.h delete mode 100644 testsuites/samples/ticker/tasks.c delete mode 100644 testsuites/samples/ticker/ticker.doc delete mode 100644 testsuites/samples/ticker/ticker.scn delete mode 100644 testsuites/sptests/README delete mode 100644 testsuites/sptests/sp01/init.c delete mode 100644 testsuites/sptests/sp01/sp01.doc delete mode 100644 testsuites/sptests/sp01/sp01.scn delete mode 100644 testsuites/sptests/sp01/system.h delete mode 100644 testsuites/sptests/sp01/task1.c delete mode 100644 testsuites/sptests/sp02/init.c delete mode 100644 testsuites/sptests/sp02/preempt.c delete mode 100644 testsuites/sptests/sp02/sp02.doc delete mode 100644 testsuites/sptests/sp02/sp02.scn delete mode 100644 testsuites/sptests/sp02/system.h delete mode 100644 testsuites/sptests/sp02/task1.c delete mode 100644 testsuites/sptests/sp02/task2.c delete mode 100644 testsuites/sptests/sp02/task3.c delete mode 100644 testsuites/sptests/sp03/init.c delete mode 100644 testsuites/sptests/sp03/sp03.doc delete mode 100644 testsuites/sptests/sp03/sp03.scn delete mode 100644 testsuites/sptests/sp03/system.h delete mode 100644 testsuites/sptests/sp03/task1.c delete mode 100644 testsuites/sptests/sp03/task2.c delete mode 100644 testsuites/sptests/sp04/init.c delete mode 100644 testsuites/sptests/sp04/sp04.doc delete mode 100644 testsuites/sptests/sp04/sp04.scn delete mode 100644 testsuites/sptests/sp04/system.h delete mode 100644 testsuites/sptests/sp04/task1.c delete mode 100644 testsuites/sptests/sp04/task2.c delete mode 100644 testsuites/sptests/sp04/task3.c delete mode 100644 testsuites/sptests/sp04/tswitch.c delete mode 100644 testsuites/sptests/sp05/init.c delete mode 100644 testsuites/sptests/sp05/sp05.doc delete mode 100644 testsuites/sptests/sp05/sp05.scn delete mode 100644 testsuites/sptests/sp05/system.h delete mode 100644 testsuites/sptests/sp05/task1.c delete mode 100644 testsuites/sptests/sp05/task2.c delete mode 100644 testsuites/sptests/sp05/task3.c delete mode 100644 testsuites/sptests/sp06/init.c delete mode 100644 testsuites/sptests/sp06/sp06.doc delete mode 100644 testsuites/sptests/sp06/sp06.scn delete mode 100644 testsuites/sptests/sp06/system.h delete mode 100644 testsuites/sptests/sp06/task1.c delete mode 100644 testsuites/sptests/sp06/task2.c delete mode 100644 testsuites/sptests/sp06/task3.c delete mode 100644 testsuites/sptests/sp07/init.c delete mode 100644 testsuites/sptests/sp07/sp07.doc delete mode 100644 testsuites/sptests/sp07/sp07.scn delete mode 100644 testsuites/sptests/sp07/system.h delete mode 100644 testsuites/sptests/sp07/task1.c delete mode 100644 testsuites/sptests/sp07/task2.c delete mode 100644 testsuites/sptests/sp07/task3.c delete mode 100644 testsuites/sptests/sp07/task4.c delete mode 100644 testsuites/sptests/sp07/taskexit.c delete mode 100644 testsuites/sptests/sp07/tcreate.c delete mode 100644 testsuites/sptests/sp07/tdelete.c delete mode 100644 testsuites/sptests/sp07/trestart.c delete mode 100644 testsuites/sptests/sp07/tstart.c delete mode 100644 testsuites/sptests/sp08/init.c delete mode 100644 testsuites/sptests/sp08/sp08.doc delete mode 100644 testsuites/sptests/sp08/sp08.scn delete mode 100644 testsuites/sptests/sp08/system.h delete mode 100644 testsuites/sptests/sp08/task1.c delete mode 100644 testsuites/sptests/sp09/delay.c delete mode 100644 testsuites/sptests/sp09/init.c delete mode 100644 testsuites/sptests/sp09/isr.c delete mode 100644 testsuites/sptests/sp09/screen01.c delete mode 100644 testsuites/sptests/sp09/screen02.c delete mode 100644 testsuites/sptests/sp09/screen03.c delete mode 100644 testsuites/sptests/sp09/screen04.c delete mode 100644 testsuites/sptests/sp09/screen05.c delete mode 100644 testsuites/sptests/sp09/screen06.c delete mode 100644 testsuites/sptests/sp09/screen07.c delete mode 100644 testsuites/sptests/sp09/screen08.c delete mode 100644 testsuites/sptests/sp09/screen09.c delete mode 100644 testsuites/sptests/sp09/screen10.c delete mode 100644 testsuites/sptests/sp09/screen11.c delete mode 100644 testsuites/sptests/sp09/screen12.c delete mode 100644 testsuites/sptests/sp09/screen13.c delete mode 100644 testsuites/sptests/sp09/screen14.c delete mode 100644 testsuites/sptests/sp09/sp09.doc delete mode 100644 testsuites/sptests/sp09/sp09.scn delete mode 100644 testsuites/sptests/sp09/system.h delete mode 100644 testsuites/sptests/sp09/task1.c delete mode 100644 testsuites/sptests/sp09/task2.c delete mode 100644 testsuites/sptests/sp09/task3.c delete mode 100644 testsuites/sptests/sp09/task4.c delete mode 100644 testsuites/sptests/sp11/init.c delete mode 100644 testsuites/sptests/sp11/sp11.doc delete mode 100644 testsuites/sptests/sp11/sp11.scn delete mode 100644 testsuites/sptests/sp11/system.h delete mode 100644 testsuites/sptests/sp11/task1.c delete mode 100644 testsuites/sptests/sp11/task2.c delete mode 100644 testsuites/sptests/sp11/timer.c delete mode 100644 testsuites/sptests/sp12/init.c delete mode 100644 testsuites/sptests/sp12/pridrv.c delete mode 100644 testsuites/sptests/sp12/pritask.c delete mode 100644 testsuites/sptests/sp12/sp12.doc delete mode 100644 testsuites/sptests/sp12/sp12.scn delete mode 100644 testsuites/sptests/sp12/system.h delete mode 100644 testsuites/sptests/sp12/task1.c delete mode 100644 testsuites/sptests/sp12/task2.c delete mode 100644 testsuites/sptests/sp12/task3.c delete mode 100644 testsuites/sptests/sp12/task4.c delete mode 100644 testsuites/sptests/sp12/task5.c delete mode 100644 testsuites/sptests/sp13/fillbuff.c delete mode 100644 testsuites/sptests/sp13/init.c delete mode 100644 testsuites/sptests/sp13/putbuff.c delete mode 100644 testsuites/sptests/sp13/sp13.doc delete mode 100644 testsuites/sptests/sp13/sp13.scn delete mode 100644 testsuites/sptests/sp13/system.h delete mode 100644 testsuites/sptests/sp13/task1.c delete mode 100644 testsuites/sptests/sp13/task2.c delete mode 100644 testsuites/sptests/sp13/task3.c delete mode 100644 testsuites/sptests/sp14/asr.c delete mode 100644 testsuites/sptests/sp14/init.c delete mode 100644 testsuites/sptests/sp14/sp14.doc delete mode 100644 testsuites/sptests/sp14/sp14.scn delete mode 100644 testsuites/sptests/sp14/system.h delete mode 100644 testsuites/sptests/sp14/task1.c delete mode 100644 testsuites/sptests/sp14/task2.c delete mode 100644 testsuites/sptests/sp15/init.c delete mode 100644 testsuites/sptests/sp15/sp15.doc delete mode 100644 testsuites/sptests/sp15/sp15.scn delete mode 100644 testsuites/sptests/sp15/system.h delete mode 100644 testsuites/sptests/sp15/task1.c delete mode 100644 testsuites/sptests/sp16/init.c delete mode 100644 testsuites/sptests/sp16/sp16.doc delete mode 100644 testsuites/sptests/sp16/sp16.scn delete mode 100644 testsuites/sptests/sp16/system.h delete mode 100644 testsuites/sptests/sp16/task1.c delete mode 100644 testsuites/sptests/sp16/task2.c delete mode 100644 testsuites/sptests/sp16/task3.c delete mode 100644 testsuites/sptests/sp16/task4.c delete mode 100644 testsuites/sptests/sp16/task5.c delete mode 100644 testsuites/sptests/sp17/asr.c delete mode 100644 testsuites/sptests/sp17/init.c delete mode 100644 testsuites/sptests/sp17/sp17.doc delete mode 100644 testsuites/sptests/sp17/sp17.scn delete mode 100644 testsuites/sptests/sp17/system.h delete mode 100644 testsuites/sptests/sp17/task1.c delete mode 100644 testsuites/sptests/sp17/task2.c delete mode 100644 testsuites/sptests/sp19/first.c delete mode 100644 testsuites/sptests/sp19/fptask.c delete mode 100644 testsuites/sptests/sp19/fptest.h delete mode 100644 testsuites/sptests/sp19/init.c delete mode 100644 testsuites/sptests/sp19/inttest.h delete mode 100644 testsuites/sptests/sp19/sp19.doc delete mode 100644 testsuites/sptests/sp19/sp19.scn delete mode 100644 testsuites/sptests/sp19/system.h delete mode 100644 testsuites/sptests/sp19/task1.c delete mode 100644 testsuites/sptests/sp20/getall.c delete mode 100644 testsuites/sptests/sp20/init.c delete mode 100644 testsuites/sptests/sp20/sp20.doc delete mode 100644 testsuites/sptests/sp20/sp20.scn delete mode 100644 testsuites/sptests/sp20/system.h delete mode 100644 testsuites/sptests/sp20/task1.c delete mode 100644 testsuites/sptests/sp21/init.c delete mode 100644 testsuites/sptests/sp21/sp21.doc delete mode 100644 testsuites/sptests/sp21/sp21.scn delete mode 100644 testsuites/sptests/sp21/system.h delete mode 100644 testsuites/sptests/sp21/task1.c delete mode 100644 testsuites/sptests/sp22/delay.c delete mode 100644 testsuites/sptests/sp22/init.c delete mode 100644 testsuites/sptests/sp22/prtime.c delete mode 100644 testsuites/sptests/sp22/sp22.doc delete mode 100644 testsuites/sptests/sp22/sp22.scn delete mode 100644 testsuites/sptests/sp22/system.h delete mode 100644 testsuites/sptests/sp22/task1.c delete mode 100644 testsuites/sptests/sp23/init.c delete mode 100644 testsuites/sptests/sp23/sp23.doc delete mode 100644 testsuites/sptests/sp23/sp23.scn delete mode 100644 testsuites/sptests/sp23/system.h delete mode 100644 testsuites/sptests/sp23/task1.c delete mode 100644 testsuites/sptests/sp24/init.c delete mode 100644 testsuites/sptests/sp24/resume.c delete mode 100644 testsuites/sptests/sp24/sp24.doc delete mode 100644 testsuites/sptests/sp24/sp24.scn delete mode 100644 testsuites/sptests/sp24/system.h delete mode 100644 testsuites/sptests/sp24/task1.c delete mode 100644 testsuites/sptests/sp25/init.c delete mode 100644 testsuites/sptests/sp25/sp25.doc delete mode 100644 testsuites/sptests/sp25/sp25.scn delete mode 100644 testsuites/sptests/sp25/system.h delete mode 100644 testsuites/sptests/sp25/task1.c delete mode 100644 testsuites/sptests/spfatal/fatal.c delete mode 100644 testsuites/sptests/spfatal/init.c delete mode 100644 testsuites/sptests/spfatal/puterr.c delete mode 100644 testsuites/sptests/spfatal/spfatal.doc delete mode 100644 testsuites/sptests/spfatal/spfatal.scn delete mode 100644 testsuites/sptests/spfatal/system.h delete mode 100644 testsuites/sptests/spfatal/task1.c delete mode 100644 testsuites/sptests/spsize/getint.c delete mode 100644 testsuites/sptests/spsize/init.c delete mode 100644 testsuites/sptests/spsize/size.c delete mode 100644 testsuites/support/include/tmacros.h delete mode 100644 testsuites/tmtests/README delete mode 100644 testsuites/tmtests/include/timesys.h delete mode 100644 testsuites/tmtests/tm01/system.h delete mode 100644 testsuites/tmtests/tm01/task1.c delete mode 100644 testsuites/tmtests/tm01/tm01.doc delete mode 100644 testsuites/tmtests/tm02/system.h delete mode 100644 testsuites/tmtests/tm02/task1.c delete mode 100644 testsuites/tmtests/tm02/tm02.doc delete mode 100644 testsuites/tmtests/tm03/system.h delete mode 100644 testsuites/tmtests/tm03/task1.c delete mode 100644 testsuites/tmtests/tm03/tm03.doc delete mode 100644 testsuites/tmtests/tm04/system.h delete mode 100644 testsuites/tmtests/tm04/task1.c delete mode 100644 testsuites/tmtests/tm04/tm04.doc delete mode 100644 testsuites/tmtests/tm05/system.h delete mode 100644 testsuites/tmtests/tm05/task1.c delete mode 100644 testsuites/tmtests/tm05/tm05.doc delete mode 100644 testsuites/tmtests/tm06/system.h delete mode 100644 testsuites/tmtests/tm06/task1.c delete mode 100644 testsuites/tmtests/tm06/tm06.doc delete mode 100644 testsuites/tmtests/tm07/system.h delete mode 100644 testsuites/tmtests/tm07/task1.c delete mode 100644 testsuites/tmtests/tm07/tm07.doc delete mode 100644 testsuites/tmtests/tm08/system.h delete mode 100644 testsuites/tmtests/tm08/task1.c delete mode 100644 testsuites/tmtests/tm08/tm08.doc delete mode 100644 testsuites/tmtests/tm09/system.h delete mode 100644 testsuites/tmtests/tm09/task1.c delete mode 100644 testsuites/tmtests/tm09/tm09.doc delete mode 100644 testsuites/tmtests/tm10/system.h delete mode 100644 testsuites/tmtests/tm10/task1.c delete mode 100644 testsuites/tmtests/tm10/tm10.doc delete mode 100644 testsuites/tmtests/tm11/system.h delete mode 100644 testsuites/tmtests/tm11/task1.c delete mode 100644 testsuites/tmtests/tm11/tm11.doc delete mode 100644 testsuites/tmtests/tm12/system.h delete mode 100644 testsuites/tmtests/tm12/task1.c delete mode 100644 testsuites/tmtests/tm12/tm12.doc delete mode 100644 testsuites/tmtests/tm13/system.h delete mode 100644 testsuites/tmtests/tm13/task1.c delete mode 100644 testsuites/tmtests/tm13/tm13.doc delete mode 100644 testsuites/tmtests/tm14/system.h delete mode 100644 testsuites/tmtests/tm14/task1.c delete mode 100644 testsuites/tmtests/tm14/tm14.doc delete mode 100644 testsuites/tmtests/tm15/system.h delete mode 100644 testsuites/tmtests/tm15/task1.c delete mode 100644 testsuites/tmtests/tm15/tm15.doc delete mode 100644 testsuites/tmtests/tm16/system.h delete mode 100644 testsuites/tmtests/tm16/task1.c delete mode 100644 testsuites/tmtests/tm16/tm16.doc delete mode 100644 testsuites/tmtests/tm17/system.h delete mode 100644 testsuites/tmtests/tm17/task1.c delete mode 100644 testsuites/tmtests/tm17/tm17.doc delete mode 100644 testsuites/tmtests/tm18/system.h delete mode 100644 testsuites/tmtests/tm18/task1.c delete mode 100644 testsuites/tmtests/tm18/tm18.doc delete mode 100644 testsuites/tmtests/tm19/system.h delete mode 100644 testsuites/tmtests/tm19/task1.c delete mode 100644 testsuites/tmtests/tm19/tm19.doc delete mode 100644 testsuites/tmtests/tm20/system.h delete mode 100644 testsuites/tmtests/tm20/task1.c delete mode 100644 testsuites/tmtests/tm20/tm20.doc delete mode 100644 testsuites/tmtests/tm21/system.h delete mode 100644 testsuites/tmtests/tm21/task1.c delete mode 100644 testsuites/tmtests/tm21/tm21.doc delete mode 100644 testsuites/tmtests/tm22/system.h delete mode 100644 testsuites/tmtests/tm22/task1.c delete mode 100644 testsuites/tmtests/tm22/tm22.doc delete mode 100644 testsuites/tmtests/tm23/system.h delete mode 100644 testsuites/tmtests/tm23/task1.c delete mode 100644 testsuites/tmtests/tm23/tm23.doc delete mode 100644 testsuites/tmtests/tm24/system.h delete mode 100644 testsuites/tmtests/tm24/task1.c delete mode 100644 testsuites/tmtests/tm24/tm24.doc delete mode 100644 testsuites/tmtests/tm25/system.h delete mode 100644 testsuites/tmtests/tm25/task1.c delete mode 100644 testsuites/tmtests/tm25/tm25.doc delete mode 100644 testsuites/tmtests/tm26/fptest.h delete mode 100644 testsuites/tmtests/tm26/system.h delete mode 100644 testsuites/tmtests/tm26/task1.c delete mode 100644 testsuites/tmtests/tm26/tm26.doc delete mode 100644 testsuites/tmtests/tm27/system.h delete mode 100644 testsuites/tmtests/tm27/task1.c delete mode 100644 testsuites/tmtests/tm27/tm27.doc delete mode 100644 testsuites/tmtests/tm28/system.h delete mode 100644 testsuites/tmtests/tm28/task1.c delete mode 100644 testsuites/tmtests/tm28/tm28.doc delete mode 100644 testsuites/tmtests/tm29/system.h delete mode 100644 testsuites/tmtests/tm29/task1.c delete mode 100644 testsuites/tmtests/tm29/tm29.doc delete mode 100644 testsuites/tmtests/tmck/system.h delete mode 100644 testsuites/tmtests/tmck/task1.c delete mode 100644 testsuites/tmtests/tmck/tmck.doc delete mode 100644 testsuites/tmtests/tmoverhd/dumrtems.h delete mode 100644 testsuites/tmtests/tmoverhd/empty.c delete mode 100644 testsuites/tmtests/tmoverhd/system.h delete mode 100644 testsuites/tmtests/tmoverhd/testtask.c delete mode 100644 testsuites/tmtests/tmoverhd/tmoverhd.doc delete mode 100644 tools/build/README delete mode 100644 tools/build/cklength.c delete mode 100644 tools/build/eolstrip.c delete mode 100644 tools/build/packhex.c delete mode 100644 tools/build/scripts/README delete mode 100644 tools/build/src/cklength.c delete mode 100644 tools/build/src/eolstrip.c delete mode 100644 tools/build/src/packhex.c delete mode 100644 tools/build/src/unhex.c delete mode 100644 tools/build/unhex.c delete mode 100644 tools/cpu/hppa1.1/genoffsets.c delete mode 100644 tools/update/310_to_320_list delete mode 100644 tools/update/README diff --git a/INSTALL b/INSTALL deleted file mode 100644 index 2dcc27f9c5..0000000000 --- a/INSTALL +++ /dev/null @@ -1,56 +0,0 @@ -# -# $Id$ -# - -NOTE: The string should be replaced with - the appropriate release number of RTEMS. - -This file only discusses the installation of .tgz files. -For more detailed information on the installation of RTEMS, -refer to the Release Notes manual in the file -/pub/rtems/releases//doc/c_or_ada/relnotes.tgz on -lancelot.gcs.redstone.army.mil. - -UNCOMPRESSING .tgz FILES -=========================== -Many of the files found in this directory and its subdirectories -are gzip'ed, tar archive files. These files have the ".tgz" -extension. They were compressed with gzip version 1.2.4. - -Use a command sequence similar to the following to uncompress each -file: - - gzcat FILE.tgz | tar xvof - - -where FILE.tgz is the file to be installed. This procedure will -extract the files in the archive into the current directory. -All of the .tgz files associated with this release RTEMS will -place their contents in a subdirectory rtems- in the current -directory. - -If you are unsure of what is in an RTEMS archive file, then use -the following command sequence to get a listing of the contents: - - gzcat FILE.tgz | tar tvf - - -NOTES: - -(1) The "-o" option to tar is included on the tar command line - so that the user extracting the tar archive will own the extracted - files. - -(2) gzcat is sometimes installed as zcat. Be warned that on many - (most) UNIX machines, zcat is associated with compress (.Z files). - -(3) If you do not have gzip 1.2.4, it is available from numerous sites - including this one. Other sites include prep.ai.mit.edu and - gatekeeper.dec.com. - -(4) The GNU archive files included in this distribution are packaged - exactly like they are on official GNU ftp sites. When extracting - GNU archives, they will not extract under a rtems- - directory. They will extract themselves under a directory which - is the name and version of the tool in question. For example, - gcc-2.5.8.tgz will extract its contents into the subdirectory - gcc-2.5.8. - diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 8bdab676b4..0000000000 --- a/LICENSE +++ /dev/null @@ -1,118 +0,0 @@ -# -# $Id$ -# - LICENSE INFORMATION - -For the purposes of this document the Real Time Executive for -Missile Systems (RTEMS) is defined to include all source code, -documentation, shell utilities developed by On-Line Applications -Research Corporation (OAR) under contract of the U.S. Army -Missile Command. OAR obtained the copyright for RTEMS and -subsequently assigned ownership of said copyright to the -U.S. Government. As part of this transfer, OAR waived all -claims of ownership for RTEMS. Since OAR no longer makes claims -of ownership of RTEMS, OAR in no event shall be held liable -for damages including any general, special, incidental or -consequential damages arising out of the use or inability -to use the RTEMS software or documentation or of the support -services provided (including but not limited to loss of data or -data being rendered inaccurate or losses sustained by you or -third parties or a failure of the program to operate with any -other programs), even if advised of the possibility of such damages. - -Simply stated any file containing the U.S. Government -copyright notice or relocatables derived from one or more of -these files are covered by this agreement. - -RTEMS may be reproduced by or for the U.S. Government pursuant -to the copyright license under the clause at DFARS 252.227-7013. -The following notice must appear in all copies of RTEMS and its -derivatives: - - COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - On-Line Applications Research Corporation (OAR). - All rights assigned to U.S. Government, 1994. - - This material may be reproduced by or for the U.S. Government - pursuant to the copyright license under the clause at DFARS - 252.227-7013. This notice must appear in all copies of this - material and its derivatives. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - 1. Redistributions of source code and documentation must retain the - above copyright notice, this list of conditions and the following - disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - Redistributions in binary form must contain or make available the - RTEMS source code. - - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed for the U.S. Government - by On-Line Applications Research Corp. - - 4. Neither the name of the author nor the U.S. Government may be used to - endorse or promote products derived from this software without specific - prior written permission. - - -RTEMS is provided "AS IS" without warranty of any kind, either -expressed or implied, including, but not limited to, the implied -warranties of merchantability, title and fitness for a -particular purpose. The U.S. Government does not warrant that -the RTEMS software or documentation will satisfy your requirements -or that the software and documentation are without defect or error -or that the operation of the software will be uninterrupted. - -The U.S. Government shall in no event shall be held liable for -damages including any general, special, incidental or consequential -damages arising out of the use or inability to use the RTEMS software -or documentation or of the support services provided (including -but not limited to loss of data or data being rendered -inaccurate or losses sustained by you or third parties or a -failure of the program to operate with any other programs), even -if the U.S. Government has been advised of the possibility of such damages. - -The U.S. Government reserves the right to revise this material -and to make changes from time to time in the content hereof without -obligation to notify anyone or any organization of such revision -or changes. - -OAR remains the sole organization authorized by contract to -distribute or provide support and training for the Real-Time -Executive for Military Systems (RTEMS). - -In order to promote future research activities within the U.S. -Government, we request that potential users of RTEMS notify us -as to the systems that RTEMS is being utilized. This will allow -us to publicize our Dual-Use / Reuse capabilities in support of -the current administration's goals. This can be accomplished by -calling the RTEMS phone numbers published in the documentation -or by electronic mail to "rtems@redstone-emh2.army.mil". Your -cooperation is greatly appreciated. Again, thank you for using -RTEMS. - -RTEMS -U.S. ARMY Missile Command -ATTN: AMSMI-RD-GC-S -Redstone Arsenal, AL 35898-5254 -Voice: (205) 842-6906 -FAX: (205) 842-6917 -EMAIL: rtems@redstone.army.mil - - -On-Line Applications Research Corporation. -2227 Drake Avenue SW -Suite 10-F -Huntsville, AL 35805 -(205) 883-0131 - - - - diff --git a/README b/README deleted file mode 100644 index 02931b8bcb..0000000000 --- a/README +++ /dev/null @@ -1,93 +0,0 @@ -# -# $Id$ -# - -Directory Overview -================== - -This is the top level of the RTEMS directory structure. The following -is a description of the files and directories in this directory: - - INSTALL - Rudimentary installation instructions. For more detailed - information please see the Release Notes. The Postscript - version of this manual can be found in the file - c_or_ada/doc/relnotes.tgz. - - LICENSE - Required legalese. - - README - This file. - - c - This directory contains the source code for the C - implementation of RTEMS as well as the test suites, sample - applications, Board Support Packages, Device Drivers, and - support libraries. - - doc - This directory contains the PDL for the RTEMS executive. - -Ada versus C -============ - -There are two implementations of RTEMS in this source tree -- -in Ada and in C. These two implementations are functionally -and structurally equivalent. The C implementation follows -the packaging conventions and hiearchical nature of the Ada -implementation. In addition, a style has been followed which -allows one to easily find the corresponding Ada and C -implementations. - -File names in C and code placement was carefully designed to insure -a close mapping to the Ada implementation. The following file name -extensions are used: - - .adb - Ada body - .ads - Ada specification - .adp - Ada body requiring preprocessing - .inc - include file for .adp files - - .c - C body (non-inlined routines) - .inl - C body (inlined routines) - .h - C specification - -In the executive source, XYZ.c and XYZ.inl correspond directly to a -single XYZ.adb or XYZ.adp file. A .h file corresponds directly to -the .ads file. There are only a handful of .inc files in the -Ada source and these are used to insure that the desired simple -inline textual expansion is performed. This avoids scoping and -calling convention side-effects in carefully constructed tests -which usually test context switch behavior. - -In addition, in Ada code and data name references are always fully -qualified as PACKAGE.NAME. In C, this convention is followed -by having the package name as part of the name itself and using a -capital letter to indicate the presence of a "." level. So we have -PACKAGE.NAME in Ada and _Package_Name in C. The leading "_" in C -is used to avoid naming conflicts between RTEMS and user variables. -By using these conventions, one can easily compare the C and Ada -implementations. - -The most noticeable difference between the C and Ada83 code is -the inability to easily obtain a "typed pointer" in Ada83. -Using the "&" operator in C yields a pointer with a specific type. -The 'Address attribute is the closest feature in Ada83. This -returns a System.Address and this must be coerced via Unchecked_Conversion -into an access type of the desired type. It is easy to view -System.Address as similar to a "void *" in C, but this is not the case. -A "void *" can be assigned to any other pointer type without an -explicit conversion. - -The solution adopted to this problem was to provide two routines for -each access type in the Ada implementation -- one to convert from -System.Address to the access type and another to go the opposite -direction. This results in code which accomplishes the same thing -as the corresponding C but it is easier to get lost in the clutter -of the apparent subprogram invocations than the "less bulky" -C equivalent. - -A related difference is the types which are only in Ada which are used -for pointers to arrays. These types do not exist and are not needed -in the C implementation. diff --git a/SUPPORT b/SUPPORT deleted file mode 100644 index 6d64a4d0e3..0000000000 --- a/SUPPORT +++ /dev/null @@ -1,18 +0,0 @@ -# -# $Id$ -# - -For support and training contact: - -On-Line Applications Research -2227 Drake Avenue SW Suite 10-F -Huntsville AL 35805 -(205) 883-0131 - -OAR offers support and classes for RTEMS as well as custom -development services such as ports to new processors and -the development of custom board support packages and device -drivers. - -OAR developed RTEMS under contract to the U.S. Army Missile Command. - diff --git a/c/ACKNOWLEDGEMENTS b/c/ACKNOWLEDGEMENTS deleted file mode 100644 index 63438d82ac..0000000000 --- a/c/ACKNOWLEDGEMENTS +++ /dev/null @@ -1,51 +0,0 @@ -# -# $Id$ -# - -RTEMS was developed by On-Line Applications Research (OAR) under -contract to the U.S. Army Missile Command. Other than the -contributions listed in this document, all code and documentation -was developed by OAR for the Army. - -The RTEMS project would like to thank those who have made -contributions to the project. Together we make RTEMS a -much better product. - -The following persons/organizations have made contributions: - -+ Dr. Mikhail (Misha) Savitski (mms@eiscathq.irf.se) of the EISCAT Scientific - Association submitted the BSP and other miscellaneous support for the - Motorola MVME162 (M68040LC CPU) VMEbus single board computer. - -+ Division Inc. of Chapel Hill, NC for sponsoring On-Line Applications - Research to port RTEMS to the Hewlett-Packard PA-RISC architecture (V1.1) - and the addition of HP-UX as a development host. Tony Bennett - (tbennett@divnc.com) was assisted in this effort by Joel Sherrill - (jsherril@redstone.army.mil). Tony also deserves a big pat on the - back for contributing significantly to the overall organization - of the development environment and directory structure. RTEMS - is much easier to build because of Tony. - -+ Greg Allen of Division Inc. of Chapel Hill, NC for - porting RTEMS to HP-UX. This port treats a UNIX computer as simply - another RTEMS target processor. This port can be used to develop - and test code which will ultimately run on the embedded platform. - -+ Doug McBride (mcbride@rodin.colorado.edu) of the Colorado Space Grant - College at the University of Colorado at Boulder submitted the BSP - for the Motorola IDP board (M68EC040 CPU) single board computer. The - BSP leverages heavily off of the existing RTEMS BSP framework, the - examples in the back of the IDP user's manual, and the libgloss example - support for the IDP board from the newlib/libgloss distribution. - -Finally, the RTEMS project would like to thank those who have contributed -to the other free software efforts which RTEMS utilizes. The primary RTEMS -development environment is from the Free Software Foundation (the GNU -project). The "newlib" C library was put together by Cygnus and is -a collaboration of the efforts of numerous individuals and organizations. - -We would like to see your name here. BSPs and ports are always welcome. -Useful libraries which support RTEMS applications are also an important -part of providing a strong foundation for the development of real-time -embedded applications and are welcome as submission. - diff --git a/c/PROBLEMS b/c/PROBLEMS deleted file mode 100644 index b8e75dc58b..0000000000 --- a/c/PROBLEMS +++ /dev/null @@ -1,39 +0,0 @@ -# -# $Id$ -# - -This is the list of outstanding problems in this release. - -1. The m68000 support is not complete. Someone with target hardware - needs to complete the missing gaps. Look for ifdef's based on the - M68K_* macros defined in c/make/cpu/m68k.cfg. Most of the code - is present but none of it is tested. An attempt was made to insert - "#warnings" preprocessor directives in the appropriate places. - So these are a good starting spot. - -2. The only i960 family member tested is the CA. No support for the - floating point support found in other family members is present. - This also implies that RTEMS may "think" of something as generic - across the i960 family when in fact it is specific to the CA. - -3. The __read() system call in all of the BSPs using single - character input/output needs to be smarter. The following - issues need to be addressed: - - + echoing of characters on input - + CR/NL echoing - + backspaces - + tabs - -4. Solaris 2.3 port notes: - - + Some of the tests run correctly when run interactively but - the screen and output do not match when the output is - redirected to a file. - - + sometimes a stray SIGALRM is reported as spfatal completes. - -5. Some of the tests may execute correctly and not produce the exact - ordering of lines in the screen file. This appears to be a combination - of a number of factors including buffering, processor speed, IO - device overhead, and clock interrupt rate. diff --git a/c/README b/c/README deleted file mode 100644 index 99eac9de18..0000000000 --- a/c/README +++ /dev/null @@ -1,45 +0,0 @@ -# -# $Id$ -# - -This is the top level of the RTEMS directory structure. The following -is a description of the files and directories in this directory: - - LICENSE - Required legalese. - - Makefile - The top-level Make command file used to build the C implementation - of RTEMS. [RTEMS assumes the use of GNU make.] - - Modules - Example Modules command files used to configure the user's environment - for RTEMS. These require the Modules system administration package - available from numerous ftp sites. - - README - This file. - - REQUIRES - A list of the other tools which are assumed to be installed - before RTEMS is built. - - SUPPORT - Information on third-party support for RTEMS. - - build-tools - This directory contains the source for various utilities - needed to build RTEMS. - - make - Make command files "included" from those in the source distribution. - [RTEMS assumes the use of GNU make.] - - patches - This directory contains patches for this release of RTEMS. - - src - This directory contains the source code for the C - implementation of RTEMS as well as the test suites, sample - applications, Board Support Packages, Device Drivers, and - support libraries. diff --git a/c/REQUIRES b/c/REQUIRES deleted file mode 100644 index 196cf5b070..0000000000 --- a/c/REQUIRES +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# - -1. The installation procedure assumes that "gcc" is installed - and is in your path for the installation of local tools. - -2. gcc 2.6.3 with crossgcc patches (ftp.cygnus.com:/pub/embedded) - -3. binutils 2.5.2 - -4. newlib with RTEMS configurations. - diff --git a/c/UPDATE_HELP b/c/UPDATE_HELP deleted file mode 100644 index cf6feffff0..0000000000 --- a/c/UPDATE_HELP +++ /dev/null @@ -1,17 +0,0 @@ -# -# $Id$ -# - -In the directory "update_tools", there are a set of tools to aid in -making the application source changes necessary to address some -of the changes in the RTEMS API between release 3.1.0 and 3.2.0. - -The primary change addressed by these tools is the addition of -"rtems_" or "RTEMS_" as a prefix on EVERY user visible RTEMS -provided constant and routine. The primary factor in the decision -to make such a sweeping change was conflicts between the -the RTEMS and POSIX API's. - -WARNING: These tools modify the files IN PLACE!!! Backup your - source before using these tools. - diff --git a/c/build-tools/README b/c/build-tools/README deleted file mode 100644 index 0436fc958d..0000000000 --- a/c/build-tools/README +++ /dev/null @@ -1,32 +0,0 @@ -# -# $Id$ -# - -Misc. support tools for RTEMS workspaces. -More will be added later as they are converted from Teamware -to CVS. - -install-if-change - Smart install script that also can append suffixes as it - installs (suffixes used for debug and profile variants). - Requires bash or ksh. - -rcs-clean - deletes all files from the current directory that can be - re-created from RCS. Careful to not delete locked files. - May be used by 'gmake clobber' - -lock-directory -unlock-directory - traverse a directory structure making it unwritable. - Useful to keep people from accidentally overwriting - "released" trees if they get confused about which - module they have loaded. - -rtems-glom - glom together all the rtems libraries in order to simplify - the link line used by applications. - Produces rtems.rel. - Not used by the RTEMS src tree at all. - Strictly optional. - diff --git a/c/build-tools/cklength.c b/c/build-tools/cklength.c deleted file mode 100644 index 48801e1559..0000000000 --- a/c/build-tools/cklength.c +++ /dev/null @@ -1,364 +0,0 @@ -/* - * cklength - check the length of lines in a file - * - * This program check to see if the files passed to it on the command line - * contain a line which exceeds the maximum allowable length. The default - * maximum line length is 80. - * - * usage: cklength [ -v ] [ arg ... ] files... - * -l length -- maximum line length - * -v -- verbose - * - * $Id$ - * $Log$ - */ - -#define GETOPTARGS "l:nNv" - -char *USAGE = "\ -usage: cklength [ -v ] [ arg ... ] files... \n\ - -l length -- maximum line length\n\ - -n -- report line numbers for offending lines\n\ - -N -- report line numbers and length for offending lines\n\ - -v -- verbose\n\ -\n\ -Print the name of files which have at least 1 line which exceeds the\n\ -maximum line length. The default maximum line length is 80.\n\ -"; - -#include -#include -#include -#include -#include -#include -#include -#include - -#define BUFFER_SIZE 512 - -#define SUCCESS 0 -#define FAILURE -1 -#define Failed(x) (((int) (x)) == FAILURE) -#define TRUE 1 -#define FALSE 0 -#define STREQ(a,b) (strcmp(a,b) == 0) -#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0])) - -/* - * Definitions for unsigned "ints"; especially for use in data structures - * that will be shared among (potentially) different cpu's (we punt on - * byte ordering problems tho) - */ - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * vars controlled by command line options - */ - -int verbose = FALSE; /* be verbose */ -int report_line_numbers = FALSE; /* report line numbers of offenders */ -int report_line_length = FALSE; /* report line length of offenders */ - -int line_length = 80; /* maximum allowable line length */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind, opterr; -extern int errno; - -char *progname; /* for error() */ - -int process(char *arg); -void error(int errn, ...); -long getparm(char *s, long min, long max, char *msg); - -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* fatal error ; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* fatal error ; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) -int Open(), Read(), Write(); - -int -main(int argc, char **argv, char **env) -{ - register int c; - int showusage = FALSE; /* usage error? */ - int rc = 0; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - opterr = 0; /* we'll report all errors */ - while ((c = getopt(argc, argv, GETOPTARGS)) != EOF) - switch (c) - { - case 'l': /* line length */ - line_length = atoi( optarg ); - if ( line_length < 0 || line_length > BUFFER_SIZE ) - error(ERR_FATAL, "(%d) is illegal line length\n",line_length); - break; - - case 'n': /* toggle report_line_numbers */ - report_line_numbers = ! report_line_numbers; - break; - - case 'N': /* toggle both reports */ - report_line_numbers = ! report_line_numbers; - report_line_length = ! report_line_length; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - /* - * traverse and process the arguments - */ - - for ( ; argv[optind]; optind++) - if (Failed(process(argv[optind]))) - rc = FAILURE; - - return rc; -} - - -/* - * process(arg) - */ - -int -process(char *arg) -{ - FILE *in; - char *bptr; - char buffer[ BUFFER_SIZE ]; - int line_number; - int length; - int count; - int rc = SUCCESS; /* succeed by default */ - - in = fopen( arg, "r" ); - if (!in) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - - count = 0; - - for ( line_number=1 ; ; line_number++ ) { - bptr = fgets( buffer, BUFFER_SIZE, in ); - if (!bptr) - break; - - /* - * Don't count the carriage return. - */ - - length = strlen( buffer ) - 1; - - if ( length <= line_length ) - continue; - - if ( count == 0 ) { - fprintf( stderr, "%s\n", arg ); - if ( !report_line_numbers ) - break; - } - - if ( verbose ) - fprintf( stderr, "TOO LONG:%d: %s\n", line_number, buffer ); - - if ( report_line_numbers ) { - if ( report_line_length ) - fprintf( stderr, "%d: %d\n" , line_number, length ); - else - fprintf( stderr, "%d\n" , line_number ); - } - - count++; - - } - - fclose( in ); - return rc; -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_FATAL bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - -long -getparm(char *s, - long min, - long max, - char *msg) -{ - long val; - - if ( ! strchr("0123456789-", *s)) - { - error(ERR_FATAL, "'%s' is not a number", s); - return min; - } - - val = strtol(s, (char **) NULL, 0); - if ((val < min) || (val > max)) - { - if (min == max) - error(ERR_FATAL, "%s can only be %ld", s, min); - else - error(ERR_FATAL, "%s must be between %ld and %ld", msg, min, max); - } - - return val; -} - - -/* - * Open() - * Perform open(2), returning the file descriptor. Prints - * error message if open fails. - */ - -int -Open(char *file, - int oflag, - int mode) -{ - int O_fd; - - if (Failed(O_fd = open(file, oflag, mode))) - error( - ERR_ERRNO | ERR_FATAL, - "open('%s', 0x%x, 0%o) failed", file, oflag, mode - ); - - return O_fd; -} - -/* - * Read() - * Perform read(2); prints error message if fails. - */ - -int -Read(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = read(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "read(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} - -/* - * Write() - * Perform write(2); prints error message if fails. - */ - -int -Write(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = write(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "write(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} diff --git a/c/build-tools/eolstrip.c b/c/build-tools/eolstrip.c deleted file mode 100644 index 0fa7af15d4..0000000000 --- a/c/build-tools/eolstrip.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - * eolstrip - strip white space from end of lines - * - * This program strips the white space from the end of every line in the - * specified program. - * - * usage: eolstrip [ -v ] [ arg ... ] files... - * -v -- verbose - * - * $Id$ - * $Log$ - */ - -#define GETOPTARGS "vt" - -char *USAGE = "\ -usage: cklength [ -v ] [ arg ... ] files... \n\ - -v -- verbose\n\ - -t -- test only .. DO NOT OVERWRITE FILE!!!\n\ -\n\ -Strip the white space from the end of every line on the list of files.\n\ -"; - -#include -#include -#include -#include -#include -#include -#include -#include - -#define BUFFER_SIZE 2048 -#define MAX_PATH 2048 - -#define SUCCESS 0 -#define FAILURE -1 -#define Failed(x) (((int) (x)) == FAILURE) -#define TRUE 1 -#define FALSE 0 -#define STREQ(a,b) (strcmp(a,b) == 0) -#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0])) - -/* - * Definitions for unsigned "ints"; especially for use in data structures - * that will be shared among (potentially) different cpu's (we punt on - * byte ordering problems tho) - */ - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * vars controlled by command line options - */ - -int verbose = FALSE; /* be verbose */ -int test_only = FALSE; /* test only */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind, opterr; -extern int errno; - -char *progname; /* for error() */ - -int process(char *arg); -void error(int errn, ...); -long getparm(char *s, long min, long max, char *msg); - -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* fatal error ; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* fatal error ; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) -int Open(), Read(), Write(); - -int -main(int argc, char **argv, char **env) -{ - register int c; - int showusage = FALSE; /* usage error? */ - int rc = 0; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - opterr = 0; /* we'll report all errors */ - while ((c = getopt(argc, argv, GETOPTARGS)) != EOF) - switch (c) - { - case 't': /* toggle test only mode */ - test_only = ! test_only; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - /* - * traverse and process the arguments - */ - - for ( ; argv[optind]; optind++) - if (Failed(process(argv[optind]))) - rc = FAILURE; - - return rc; -} - - -/* - * process(arg) - */ - -int -process(char *arg) -{ - FILE *in; - FILE *out = (FILE *) 0; - char outname[ MAX_PATH ]; - char *bptr; - char buffer[ BUFFER_SIZE ]; - int length; - int line_number; - int rc = SUCCESS; /* succeed by default */ - - in = fopen( arg, "r" ); - if (!in) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - - if ( !test_only ) { - sprintf( outname, "%s.eoltmp", arg ); - - out = fopen( outname, "w" ); - if (!out) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - } - - if ( verbose ) - fprintf( stderr, "Processing %s\n", arg ); - - for ( line_number=1 ; ; line_number++ ) { - bptr = fgets( buffer, BUFFER_SIZE, in ); - if (!bptr) - break; - - /* - * Don't count the carriage return. - */ - - length = strlen( buffer ) - 1; - - if ( buffer[ length ] != '\n' ) - error(ERR_ERRNO|ERR_FATAL, "Line %d too long in %s\n", line_number, arg); - - while ( isspace( buffer[ length ] ) ) - buffer[ length-- ] = '\0'; - - if ( test_only ) { - fprintf( stderr, "%s\n", arg ); - break; - } - - fprintf( out, "%s\n", buffer ); - } - - fclose( in ); - if ( !test_only ) { - fclose( out ); - rename( outname, arg ); - } - return rc; -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_FATAL bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - -long -getparm(char *s, - long min, - long max, - char *msg) -{ - long val; - - if ( ! strchr("0123456789-", *s)) - { - error(ERR_FATAL, "'%s' is not a number", s); - return min; - } - - val = strtol(s, (char **) NULL, 0); - if ((val < min) || (val > max)) - { - if (min == max) - error(ERR_FATAL, "%s can only be %ld", s, min); - else - error(ERR_FATAL, "%s must be between %ld and %ld", msg, min, max); - } - - return val; -} - - -/* - * Open() - * Perform open(2), returning the file descriptor. Prints - * error message if open fails. - */ - -int -Open(char *file, - int oflag, - int mode) -{ - int O_fd; - - if (Failed(O_fd = open(file, oflag, mode))) - error( - ERR_ERRNO | ERR_FATAL, - "open('%s', 0x%x, 0%o) failed", file, oflag, mode - ); - - return O_fd; -} - -/* - * Read() - * Perform read(2); prints error message if fails. - */ - -int -Read(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = read(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "read(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} - -/* - * Write() - * Perform write(2); prints error message if fails. - */ - -int -Write(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = write(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "write(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} diff --git a/c/build-tools/packhex.c b/c/build-tools/packhex.c deleted file mode 100644 index ddd010c4a9..0000000000 --- a/c/build-tools/packhex.c +++ /dev/null @@ -1,513 +0,0 @@ - -/***** P A C K H E X . C ************************************************ - * - * Packhex is a hex-file compaction utility. It attempts to concatenate - * hex records to produce more size-efficient packaging. - * - * Limitations: Input files must be correctly formatted. This utility - * is not robust enough to detect hex-record formatting - * errors. - * - * Published: 5/93 Embedded Systems magazine - * - * Compiler: Microsoft C 6.0 - * cl /F 1000 packhex.c - * - * - * $Id$ - * - **************************************************************************/ - - -/* #define SMALLER_RECORDS */ -#ifdef SMALLER_RECORDS -#define MAX_LEN_S1_RECS 128 -#define MAX_LEN_S2_RECS 128 -#define MAX_LEN_S3_RECS 128 -#else -#define MAX_LEN_S1_RECS 252 -#define MAX_LEN_S2_RECS 251 -#define MAX_LEN_S3_RECS 250 -#endif - - -/*--------------------------------- includes ---------------------------------*/ - -#include -#include -#include - -#if defined(__unix__) && !defined(EXIT_FAILURE) -#define EXIT_FAILURE -1 -#define EXIT_SUCCESS 0 -#endif - -/*--------------------------------- defines ----------------------------------*/ - -#define YES 1 -#define MAX_LINE_SIZE 600 -#define EOS '\0' - - -/*---------------------------------- macros ----------------------------------*/ - -/* Convert ASCII hexadecimal digit to value. */ - -#define HEX_DIGIT( C ) ( ( ( ( C ) > '9' ) ? ( C ) + 25 : ( C ) ) & 0xF ) - - -/*--------------------------------- typedefs ---------------------------------*/ - -typedef unsigned char Boolean; -typedef unsigned char Uchar; -typedef unsigned int Uint; -typedef unsigned long Ulong; - -typedef struct /* Functions and constant returning Hex-record vital stats. */ -{ - Boolean ( *is_data_record )( char * ); - Ulong ( *get_address )( char * ); - Uint ( *get_data_count )( char * ); - const Uint max_data_count; - char *( *get_data_start )( char * ); - void ( *put_data_record )( Uint, Ulong, char * ); -} Rec_vitals; - - -/*--------------------------- function prototypes ----------------------------*/ - -Rec_vitals * identify_first_data_record( char * ); -Ulong get_ndigit_hex( char *, int ); - - -/*----------------------------- Intel Hex format -----------------------------*/ - -/* - * Intel Hex data-record layout - * - * :aabbbbccd...dee - * - * : - header character - * aa - record data byte count, a 2-digit hex value - * bbbb - record address, a 4-digit hex value - * cc - record type, a 2-digit hex value: - * "00" is a data record - * "01" is an end-of-data record - * "02" is an extended-address record - * "03" is a start record - * d...d - data (always an even number of chars) - * ee - record checksum, a 2-digit hex value - * checksum = 2's complement - * [ (sum of bytes: aabbbbccd...d) modulo 256 ] - */ - - -Boolean is_intel_data_rec( char * rec_str ) -{ - return( ( rec_str[ 0 ] == ':' ) && ( rec_str[ 8 ] == '0' ) ); -} - -Uint get_intel_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 1, 2 ) ); -} - -Ulong get_intel_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 3, 4 ) ); -} - -char * get_intel_rec_data_start( char * rec_str ) -{ - return( rec_str + 9 ); -} - -void put_intel_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = count + ( address >> 8 & 0xff ) + ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - ":%02X%04lX00%s%02X\n", count, address, data_str, (~sum + 1) & 0xff - ); -} - - -Rec_vitals intel_hex = -{ - is_intel_data_rec, - get_intel_rec_address, - get_intel_rec_data_count, - 255, /* Maximum data bytes in a record. */ - get_intel_rec_data_start, - put_intel_data_rec -}; - - -/*------------------------- Motorola S1-record format ------------------------*/ - -/* - * Motorola S-record data-record layout - * - * Sabbc...cd...dee - * - * S - header character - * a - record type, a 1-digit value: - * "0" is a header record - * "1" is a 2-byte-address data record - * "2" is a 3-byte-address data record - * "3" is a 4-byte-address data record - * "7" is a 4-byte-address end-of-data record - * "8" is a 3-byte-address end-of-data record - * "9" is a 2-byte-address end-of-data record - * bb - record length in bytes, a 2-digit hex value - * (record length doesn't count the header/type - * chars and checksum byte) - * c...c - record address, a 4-, 6-, or 8-digit value, - * depending on record type - * d...d - data (always an even number of chars) - * ee - record checksum, a 2-digit hex value - * checksum = 1's complement - * [ (sum of all bytes: bbc..cd...d) modulo 256 ] - */ - -#define S1_COUNT_OFFSET 3 - - -Boolean is_moto_s1_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '1' ) ); -} - -Uint get_moto_s1_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S1_COUNT_OFFSET ); -} - -Ulong get_moto_s1_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 4 ) ); -} - -char * get_moto_s1_rec_data_start( char * rec_str ) -{ - return( rec_str + 8 ); -} - -void put_moto_s1_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S1_COUNT_OFFSET + count + - ( address >> 8 & 0xff ) + ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S1%02X%04lX%s%02X\n", - count + S1_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s1_rec = -{ - is_moto_s1_data_rec, - get_moto_s1_rec_address, - get_moto_s1_rec_data_count, - MAX_LEN_S1_RECS, /* Maximum data bytes in a record. */ - get_moto_s1_rec_data_start, - put_moto_s1_data_rec -}; - - -/*------------------------- Motorola S2-record format ------------------------*/ - -#define S2_COUNT_OFFSET 4 - -Boolean is_moto_s2_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '2' ) ); -} - -Uint get_moto_s2_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S2_COUNT_OFFSET ); -} - -Ulong get_moto_s2_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 6 ) ); -} - -char * get_moto_s2_rec_data_start( char * rec_str ) -{ - return( rec_str + 10 ); -} - -void put_moto_s2_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S2_COUNT_OFFSET + count + ( address >> 16 & 0xff ) + - ( address >> 8 & 0xff ) + - ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S2%02X%06lX%s%02X\n", - count + S2_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s2_rec = -{ - is_moto_s2_data_rec, - get_moto_s2_rec_address, - get_moto_s2_rec_data_count, - MAX_LEN_S2_RECS, /* Maximum data bytes in a record. */ - get_moto_s2_rec_data_start, - put_moto_s2_data_rec -}; - - -/*------------------------- Motorola S3-record format ------------------------*/ - -#define S3_COUNT_OFFSET 5 - -Boolean is_moto_s3_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '3' ) ); -} - -Uint get_moto_s3_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S3_COUNT_OFFSET ); -} - -Ulong get_moto_s3_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 8 ) ); -} - -char * get_moto_s3_rec_data_start( char * rec_str ) -{ - return( rec_str + 12 ); -} - -void put_moto_s3_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S3_COUNT_OFFSET + count + ( address >> 24 & 0xff ) + - ( address >> 16 & 0xff ) + - ( address >> 8 & 0xff ) + - ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S3%02X%08lX%s%02X\n", - count + S3_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s3_rec = -{ - is_moto_s3_data_rec, - get_moto_s3_rec_address, - get_moto_s3_rec_data_count, - MAX_LEN_S3_RECS, /* Maximum data bytes in a record. */ - get_moto_s3_rec_data_start, - put_moto_s3_data_rec -}; - - -/*-------------------- Put your favorite hex format here ---------------------*/ - -/* - * * * * The following is a template for an additional hex format: * * * - * - * - * Boolean is_X_data_rec( char * rec_str ) {} - * - * Uint get_X_rec_data_count( char * rec_str ) {} - * - * Ulong get_X_rec_address( char * rec_str ) {} - * - * char * get_X_rec_data_start( char * rec_str ) {} - * - * void put_X_data_rec( Uint count, Ulong address, char * data_str ) {} - * - * Rec_vitals X_rec = - * { - * is_X_data_rec, - * get_X_rec_address, - * get_X_rec_data_count, - * MAXIMUM DATA BYTES IN A RECORD, - * get_X_rec_data_start, - * put_X_data_rec - * }; - * - */ - -/*----------------------------------------------------------------------------*/ - - -/* - * Put address of additional Rec_vitals structures - * in this array, before the NULL entry. - */ - -Rec_vitals *formats[] = -{ - &intel_hex, - &motorola_s1_rec, - &motorola_s2_rec, - &motorola_s3_rec, - ( Rec_vitals * ) NULL -}; - - -/**** main ***************************************************************** -* -* -* Expects: Nothing (no command-line parameters). -* -* Returns: Exit status (EXIT_SUCCESS or EXIT_FAILURE). -* -* Reads hex records on the standard input and attempts to -* splice adjacent data fields together. Results appear on -* the standard output. -* -*******************************************************************************/ - -void main( void ) -{ - - char inbuff[ MAX_LINE_SIZE ], outbuff[ MAX_LINE_SIZE ]; - char *in_dptr, *out_dptr; - int d_total, d_count, d_excess, n; - Ulong in_rec_addr, out_rec_addr = 0; - Rec_vitals *rptr; - - - /* Sift through file until first hex record is identified. */ - if ( ( rptr = identify_first_data_record( inbuff ) ) == NULL ) - { - fputs( "No hex records found.\n", stderr ); - exit( EXIT_FAILURE ); - } - - - /* Attempt data-record splicing until end-of-file is reached. */ - d_total = 0; - do - { - if ( rptr->is_data_record( inbuff ) == YES ) - { /* Input record is a data record. */ - d_count = rptr->get_data_count( inbuff ); - in_rec_addr = rptr->get_address( inbuff ); - in_dptr = rptr->get_data_start( inbuff ); - - if ( d_total == 0 || in_rec_addr != out_rec_addr + d_total ) - { /* Begin a new output record. */ - if ( d_total != 0 ) - rptr->put_data_record( d_total, out_rec_addr, outbuff ); - out_dptr = outbuff; - n = d_total = d_count; - out_rec_addr = in_rec_addr; - } - else if - ( ( d_excess = d_total + d_count - rptr->max_data_count ) > 0 ) - { /* Output a maximum-length record, then start a new record. */ - strncat( outbuff, in_dptr, 2 * ( d_count - d_excess ) ); - rptr->put_data_record( - rptr->max_data_count, out_rec_addr, outbuff - ); - in_dptr += 2 * ( d_count - d_excess ); - out_dptr = outbuff; - n = d_total = d_excess; - out_rec_addr += rptr->max_data_count; - } - else - { /* Append input record's data field with accumulated data. */ - out_dptr = outbuff + ( 2 * d_total ); - d_total += n = d_count; - } - strncpy( out_dptr, in_dptr, 2 * n ); - out_dptr[ 2 * n ] = EOS; - } - else - { /* Not a data record; - * flush accumulated data then echo non-data record. - */ - if ( d_total != 0 ) - { - rptr->put_data_record( d_total, out_rec_addr, outbuff ); - d_total = 0; - } - puts( inbuff ); - } - } while ( gets( inbuff ) != NULL ); - - - exit( EXIT_SUCCESS ); - -} - - -/**** identify_first_data_record ******************************************* -* -* Expects: Pointer to hex-record line buffer. -* -* Returns: Pointer to hex-record structure (NULL if no match found). -* -* Reads the standard input, line by line, searching for a valid -* record header character. If a valid header is found, a pointer -* to the hex-record's type structure is returned, otherwise NULL. -* -* The input-stream pointer is left pointing to the first valid hex record. -* -*******************************************************************************/ - -Rec_vitals * identify_first_data_record( char * buff_ptr ) -{ - Rec_vitals ** ptr; - - while ( gets( buff_ptr ) != NULL ) - { - for ( ptr = formats ; *ptr != ( Rec_vitals * ) NULL ; ptr++ ) - if ( ( *ptr )->is_data_record( buff_ptr ) == YES ) - return( *ptr ); /* Successful return. */ - - puts( buff_ptr ); /* Echo non-hex-record line. */ - } - - return( ( Rec_vitals * ) NULL ); /* Unsuccessful return. */ -} - - -/**** get_ndigit_hex ******************************************************* -* -* Expects: Pointer to first ASCII hexadecimal digit, number of digits. -* -* Returns: Value of hexadecimal string as an unsigned long. -* -*******************************************************************************/ - -Ulong get_ndigit_hex( char * cptr, int digits ) -{ - Ulong value; - - for ( value = 0 ; --digits >= 0 ; cptr++ ) - value = ( value * 16L ) + HEX_DIGIT( *cptr ); - - return( value ); -} diff --git a/c/build-tools/scripts/README b/c/build-tools/scripts/README deleted file mode 100644 index 0436fc958d..0000000000 --- a/c/build-tools/scripts/README +++ /dev/null @@ -1,32 +0,0 @@ -# -# $Id$ -# - -Misc. support tools for RTEMS workspaces. -More will be added later as they are converted from Teamware -to CVS. - -install-if-change - Smart install script that also can append suffixes as it - installs (suffixes used for debug and profile variants). - Requires bash or ksh. - -rcs-clean - deletes all files from the current directory that can be - re-created from RCS. Careful to not delete locked files. - May be used by 'gmake clobber' - -lock-directory -unlock-directory - traverse a directory structure making it unwritable. - Useful to keep people from accidentally overwriting - "released" trees if they get confused about which - module they have loaded. - -rtems-glom - glom together all the rtems libraries in order to simplify - the link line used by applications. - Produces rtems.rel. - Not used by the RTEMS src tree at all. - Strictly optional. - diff --git a/c/build-tools/src/cklength.c b/c/build-tools/src/cklength.c deleted file mode 100644 index 48801e1559..0000000000 --- a/c/build-tools/src/cklength.c +++ /dev/null @@ -1,364 +0,0 @@ -/* - * cklength - check the length of lines in a file - * - * This program check to see if the files passed to it on the command line - * contain a line which exceeds the maximum allowable length. The default - * maximum line length is 80. - * - * usage: cklength [ -v ] [ arg ... ] files... - * -l length -- maximum line length - * -v -- verbose - * - * $Id$ - * $Log$ - */ - -#define GETOPTARGS "l:nNv" - -char *USAGE = "\ -usage: cklength [ -v ] [ arg ... ] files... \n\ - -l length -- maximum line length\n\ - -n -- report line numbers for offending lines\n\ - -N -- report line numbers and length for offending lines\n\ - -v -- verbose\n\ -\n\ -Print the name of files which have at least 1 line which exceeds the\n\ -maximum line length. The default maximum line length is 80.\n\ -"; - -#include -#include -#include -#include -#include -#include -#include -#include - -#define BUFFER_SIZE 512 - -#define SUCCESS 0 -#define FAILURE -1 -#define Failed(x) (((int) (x)) == FAILURE) -#define TRUE 1 -#define FALSE 0 -#define STREQ(a,b) (strcmp(a,b) == 0) -#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0])) - -/* - * Definitions for unsigned "ints"; especially for use in data structures - * that will be shared among (potentially) different cpu's (we punt on - * byte ordering problems tho) - */ - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * vars controlled by command line options - */ - -int verbose = FALSE; /* be verbose */ -int report_line_numbers = FALSE; /* report line numbers of offenders */ -int report_line_length = FALSE; /* report line length of offenders */ - -int line_length = 80; /* maximum allowable line length */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind, opterr; -extern int errno; - -char *progname; /* for error() */ - -int process(char *arg); -void error(int errn, ...); -long getparm(char *s, long min, long max, char *msg); - -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* fatal error ; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* fatal error ; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) -int Open(), Read(), Write(); - -int -main(int argc, char **argv, char **env) -{ - register int c; - int showusage = FALSE; /* usage error? */ - int rc = 0; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - opterr = 0; /* we'll report all errors */ - while ((c = getopt(argc, argv, GETOPTARGS)) != EOF) - switch (c) - { - case 'l': /* line length */ - line_length = atoi( optarg ); - if ( line_length < 0 || line_length > BUFFER_SIZE ) - error(ERR_FATAL, "(%d) is illegal line length\n",line_length); - break; - - case 'n': /* toggle report_line_numbers */ - report_line_numbers = ! report_line_numbers; - break; - - case 'N': /* toggle both reports */ - report_line_numbers = ! report_line_numbers; - report_line_length = ! report_line_length; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - /* - * traverse and process the arguments - */ - - for ( ; argv[optind]; optind++) - if (Failed(process(argv[optind]))) - rc = FAILURE; - - return rc; -} - - -/* - * process(arg) - */ - -int -process(char *arg) -{ - FILE *in; - char *bptr; - char buffer[ BUFFER_SIZE ]; - int line_number; - int length; - int count; - int rc = SUCCESS; /* succeed by default */ - - in = fopen( arg, "r" ); - if (!in) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - - count = 0; - - for ( line_number=1 ; ; line_number++ ) { - bptr = fgets( buffer, BUFFER_SIZE, in ); - if (!bptr) - break; - - /* - * Don't count the carriage return. - */ - - length = strlen( buffer ) - 1; - - if ( length <= line_length ) - continue; - - if ( count == 0 ) { - fprintf( stderr, "%s\n", arg ); - if ( !report_line_numbers ) - break; - } - - if ( verbose ) - fprintf( stderr, "TOO LONG:%d: %s\n", line_number, buffer ); - - if ( report_line_numbers ) { - if ( report_line_length ) - fprintf( stderr, "%d: %d\n" , line_number, length ); - else - fprintf( stderr, "%d\n" , line_number ); - } - - count++; - - } - - fclose( in ); - return rc; -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_FATAL bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - -long -getparm(char *s, - long min, - long max, - char *msg) -{ - long val; - - if ( ! strchr("0123456789-", *s)) - { - error(ERR_FATAL, "'%s' is not a number", s); - return min; - } - - val = strtol(s, (char **) NULL, 0); - if ((val < min) || (val > max)) - { - if (min == max) - error(ERR_FATAL, "%s can only be %ld", s, min); - else - error(ERR_FATAL, "%s must be between %ld and %ld", msg, min, max); - } - - return val; -} - - -/* - * Open() - * Perform open(2), returning the file descriptor. Prints - * error message if open fails. - */ - -int -Open(char *file, - int oflag, - int mode) -{ - int O_fd; - - if (Failed(O_fd = open(file, oflag, mode))) - error( - ERR_ERRNO | ERR_FATAL, - "open('%s', 0x%x, 0%o) failed", file, oflag, mode - ); - - return O_fd; -} - -/* - * Read() - * Perform read(2); prints error message if fails. - */ - -int -Read(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = read(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "read(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} - -/* - * Write() - * Perform write(2); prints error message if fails. - */ - -int -Write(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = write(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "write(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} diff --git a/c/build-tools/src/eolstrip.c b/c/build-tools/src/eolstrip.c deleted file mode 100644 index 0fa7af15d4..0000000000 --- a/c/build-tools/src/eolstrip.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - * eolstrip - strip white space from end of lines - * - * This program strips the white space from the end of every line in the - * specified program. - * - * usage: eolstrip [ -v ] [ arg ... ] files... - * -v -- verbose - * - * $Id$ - * $Log$ - */ - -#define GETOPTARGS "vt" - -char *USAGE = "\ -usage: cklength [ -v ] [ arg ... ] files... \n\ - -v -- verbose\n\ - -t -- test only .. DO NOT OVERWRITE FILE!!!\n\ -\n\ -Strip the white space from the end of every line on the list of files.\n\ -"; - -#include -#include -#include -#include -#include -#include -#include -#include - -#define BUFFER_SIZE 2048 -#define MAX_PATH 2048 - -#define SUCCESS 0 -#define FAILURE -1 -#define Failed(x) (((int) (x)) == FAILURE) -#define TRUE 1 -#define FALSE 0 -#define STREQ(a,b) (strcmp(a,b) == 0) -#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0])) - -/* - * Definitions for unsigned "ints"; especially for use in data structures - * that will be shared among (potentially) different cpu's (we punt on - * byte ordering problems tho) - */ - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * vars controlled by command line options - */ - -int verbose = FALSE; /* be verbose */ -int test_only = FALSE; /* test only */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind, opterr; -extern int errno; - -char *progname; /* for error() */ - -int process(char *arg); -void error(int errn, ...); -long getparm(char *s, long min, long max, char *msg); - -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* fatal error ; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* fatal error ; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) -int Open(), Read(), Write(); - -int -main(int argc, char **argv, char **env) -{ - register int c; - int showusage = FALSE; /* usage error? */ - int rc = 0; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - opterr = 0; /* we'll report all errors */ - while ((c = getopt(argc, argv, GETOPTARGS)) != EOF) - switch (c) - { - case 't': /* toggle test only mode */ - test_only = ! test_only; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - /* - * traverse and process the arguments - */ - - for ( ; argv[optind]; optind++) - if (Failed(process(argv[optind]))) - rc = FAILURE; - - return rc; -} - - -/* - * process(arg) - */ - -int -process(char *arg) -{ - FILE *in; - FILE *out = (FILE *) 0; - char outname[ MAX_PATH ]; - char *bptr; - char buffer[ BUFFER_SIZE ]; - int length; - int line_number; - int rc = SUCCESS; /* succeed by default */ - - in = fopen( arg, "r" ); - if (!in) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - - if ( !test_only ) { - sprintf( outname, "%s.eoltmp", arg ); - - out = fopen( outname, "w" ); - if (!out) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - } - - if ( verbose ) - fprintf( stderr, "Processing %s\n", arg ); - - for ( line_number=1 ; ; line_number++ ) { - bptr = fgets( buffer, BUFFER_SIZE, in ); - if (!bptr) - break; - - /* - * Don't count the carriage return. - */ - - length = strlen( buffer ) - 1; - - if ( buffer[ length ] != '\n' ) - error(ERR_ERRNO|ERR_FATAL, "Line %d too long in %s\n", line_number, arg); - - while ( isspace( buffer[ length ] ) ) - buffer[ length-- ] = '\0'; - - if ( test_only ) { - fprintf( stderr, "%s\n", arg ); - break; - } - - fprintf( out, "%s\n", buffer ); - } - - fclose( in ); - if ( !test_only ) { - fclose( out ); - rename( outname, arg ); - } - return rc; -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_FATAL bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - -long -getparm(char *s, - long min, - long max, - char *msg) -{ - long val; - - if ( ! strchr("0123456789-", *s)) - { - error(ERR_FATAL, "'%s' is not a number", s); - return min; - } - - val = strtol(s, (char **) NULL, 0); - if ((val < min) || (val > max)) - { - if (min == max) - error(ERR_FATAL, "%s can only be %ld", s, min); - else - error(ERR_FATAL, "%s must be between %ld and %ld", msg, min, max); - } - - return val; -} - - -/* - * Open() - * Perform open(2), returning the file descriptor. Prints - * error message if open fails. - */ - -int -Open(char *file, - int oflag, - int mode) -{ - int O_fd; - - if (Failed(O_fd = open(file, oflag, mode))) - error( - ERR_ERRNO | ERR_FATAL, - "open('%s', 0x%x, 0%o) failed", file, oflag, mode - ); - - return O_fd; -} - -/* - * Read() - * Perform read(2); prints error message if fails. - */ - -int -Read(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = read(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "read(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} - -/* - * Write() - * Perform write(2); prints error message if fails. - */ - -int -Write(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = write(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "write(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} diff --git a/c/build-tools/src/packhex.c b/c/build-tools/src/packhex.c deleted file mode 100644 index ddd010c4a9..0000000000 --- a/c/build-tools/src/packhex.c +++ /dev/null @@ -1,513 +0,0 @@ - -/***** P A C K H E X . C ************************************************ - * - * Packhex is a hex-file compaction utility. It attempts to concatenate - * hex records to produce more size-efficient packaging. - * - * Limitations: Input files must be correctly formatted. This utility - * is not robust enough to detect hex-record formatting - * errors. - * - * Published: 5/93 Embedded Systems magazine - * - * Compiler: Microsoft C 6.0 - * cl /F 1000 packhex.c - * - * - * $Id$ - * - **************************************************************************/ - - -/* #define SMALLER_RECORDS */ -#ifdef SMALLER_RECORDS -#define MAX_LEN_S1_RECS 128 -#define MAX_LEN_S2_RECS 128 -#define MAX_LEN_S3_RECS 128 -#else -#define MAX_LEN_S1_RECS 252 -#define MAX_LEN_S2_RECS 251 -#define MAX_LEN_S3_RECS 250 -#endif - - -/*--------------------------------- includes ---------------------------------*/ - -#include -#include -#include - -#if defined(__unix__) && !defined(EXIT_FAILURE) -#define EXIT_FAILURE -1 -#define EXIT_SUCCESS 0 -#endif - -/*--------------------------------- defines ----------------------------------*/ - -#define YES 1 -#define MAX_LINE_SIZE 600 -#define EOS '\0' - - -/*---------------------------------- macros ----------------------------------*/ - -/* Convert ASCII hexadecimal digit to value. */ - -#define HEX_DIGIT( C ) ( ( ( ( C ) > '9' ) ? ( C ) + 25 : ( C ) ) & 0xF ) - - -/*--------------------------------- typedefs ---------------------------------*/ - -typedef unsigned char Boolean; -typedef unsigned char Uchar; -typedef unsigned int Uint; -typedef unsigned long Ulong; - -typedef struct /* Functions and constant returning Hex-record vital stats. */ -{ - Boolean ( *is_data_record )( char * ); - Ulong ( *get_address )( char * ); - Uint ( *get_data_count )( char * ); - const Uint max_data_count; - char *( *get_data_start )( char * ); - void ( *put_data_record )( Uint, Ulong, char * ); -} Rec_vitals; - - -/*--------------------------- function prototypes ----------------------------*/ - -Rec_vitals * identify_first_data_record( char * ); -Ulong get_ndigit_hex( char *, int ); - - -/*----------------------------- Intel Hex format -----------------------------*/ - -/* - * Intel Hex data-record layout - * - * :aabbbbccd...dee - * - * : - header character - * aa - record data byte count, a 2-digit hex value - * bbbb - record address, a 4-digit hex value - * cc - record type, a 2-digit hex value: - * "00" is a data record - * "01" is an end-of-data record - * "02" is an extended-address record - * "03" is a start record - * d...d - data (always an even number of chars) - * ee - record checksum, a 2-digit hex value - * checksum = 2's complement - * [ (sum of bytes: aabbbbccd...d) modulo 256 ] - */ - - -Boolean is_intel_data_rec( char * rec_str ) -{ - return( ( rec_str[ 0 ] == ':' ) && ( rec_str[ 8 ] == '0' ) ); -} - -Uint get_intel_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 1, 2 ) ); -} - -Ulong get_intel_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 3, 4 ) ); -} - -char * get_intel_rec_data_start( char * rec_str ) -{ - return( rec_str + 9 ); -} - -void put_intel_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = count + ( address >> 8 & 0xff ) + ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - ":%02X%04lX00%s%02X\n", count, address, data_str, (~sum + 1) & 0xff - ); -} - - -Rec_vitals intel_hex = -{ - is_intel_data_rec, - get_intel_rec_address, - get_intel_rec_data_count, - 255, /* Maximum data bytes in a record. */ - get_intel_rec_data_start, - put_intel_data_rec -}; - - -/*------------------------- Motorola S1-record format ------------------------*/ - -/* - * Motorola S-record data-record layout - * - * Sabbc...cd...dee - * - * S - header character - * a - record type, a 1-digit value: - * "0" is a header record - * "1" is a 2-byte-address data record - * "2" is a 3-byte-address data record - * "3" is a 4-byte-address data record - * "7" is a 4-byte-address end-of-data record - * "8" is a 3-byte-address end-of-data record - * "9" is a 2-byte-address end-of-data record - * bb - record length in bytes, a 2-digit hex value - * (record length doesn't count the header/type - * chars and checksum byte) - * c...c - record address, a 4-, 6-, or 8-digit value, - * depending on record type - * d...d - data (always an even number of chars) - * ee - record checksum, a 2-digit hex value - * checksum = 1's complement - * [ (sum of all bytes: bbc..cd...d) modulo 256 ] - */ - -#define S1_COUNT_OFFSET 3 - - -Boolean is_moto_s1_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '1' ) ); -} - -Uint get_moto_s1_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S1_COUNT_OFFSET ); -} - -Ulong get_moto_s1_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 4 ) ); -} - -char * get_moto_s1_rec_data_start( char * rec_str ) -{ - return( rec_str + 8 ); -} - -void put_moto_s1_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S1_COUNT_OFFSET + count + - ( address >> 8 & 0xff ) + ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S1%02X%04lX%s%02X\n", - count + S1_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s1_rec = -{ - is_moto_s1_data_rec, - get_moto_s1_rec_address, - get_moto_s1_rec_data_count, - MAX_LEN_S1_RECS, /* Maximum data bytes in a record. */ - get_moto_s1_rec_data_start, - put_moto_s1_data_rec -}; - - -/*------------------------- Motorola S2-record format ------------------------*/ - -#define S2_COUNT_OFFSET 4 - -Boolean is_moto_s2_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '2' ) ); -} - -Uint get_moto_s2_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S2_COUNT_OFFSET ); -} - -Ulong get_moto_s2_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 6 ) ); -} - -char * get_moto_s2_rec_data_start( char * rec_str ) -{ - return( rec_str + 10 ); -} - -void put_moto_s2_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S2_COUNT_OFFSET + count + ( address >> 16 & 0xff ) + - ( address >> 8 & 0xff ) + - ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S2%02X%06lX%s%02X\n", - count + S2_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s2_rec = -{ - is_moto_s2_data_rec, - get_moto_s2_rec_address, - get_moto_s2_rec_data_count, - MAX_LEN_S2_RECS, /* Maximum data bytes in a record. */ - get_moto_s2_rec_data_start, - put_moto_s2_data_rec -}; - - -/*------------------------- Motorola S3-record format ------------------------*/ - -#define S3_COUNT_OFFSET 5 - -Boolean is_moto_s3_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '3' ) ); -} - -Uint get_moto_s3_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S3_COUNT_OFFSET ); -} - -Ulong get_moto_s3_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 8 ) ); -} - -char * get_moto_s3_rec_data_start( char * rec_str ) -{ - return( rec_str + 12 ); -} - -void put_moto_s3_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S3_COUNT_OFFSET + count + ( address >> 24 & 0xff ) + - ( address >> 16 & 0xff ) + - ( address >> 8 & 0xff ) + - ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S3%02X%08lX%s%02X\n", - count + S3_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s3_rec = -{ - is_moto_s3_data_rec, - get_moto_s3_rec_address, - get_moto_s3_rec_data_count, - MAX_LEN_S3_RECS, /* Maximum data bytes in a record. */ - get_moto_s3_rec_data_start, - put_moto_s3_data_rec -}; - - -/*-------------------- Put your favorite hex format here ---------------------*/ - -/* - * * * * The following is a template for an additional hex format: * * * - * - * - * Boolean is_X_data_rec( char * rec_str ) {} - * - * Uint get_X_rec_data_count( char * rec_str ) {} - * - * Ulong get_X_rec_address( char * rec_str ) {} - * - * char * get_X_rec_data_start( char * rec_str ) {} - * - * void put_X_data_rec( Uint count, Ulong address, char * data_str ) {} - * - * Rec_vitals X_rec = - * { - * is_X_data_rec, - * get_X_rec_address, - * get_X_rec_data_count, - * MAXIMUM DATA BYTES IN A RECORD, - * get_X_rec_data_start, - * put_X_data_rec - * }; - * - */ - -/*----------------------------------------------------------------------------*/ - - -/* - * Put address of additional Rec_vitals structures - * in this array, before the NULL entry. - */ - -Rec_vitals *formats[] = -{ - &intel_hex, - &motorola_s1_rec, - &motorola_s2_rec, - &motorola_s3_rec, - ( Rec_vitals * ) NULL -}; - - -/**** main ***************************************************************** -* -* -* Expects: Nothing (no command-line parameters). -* -* Returns: Exit status (EXIT_SUCCESS or EXIT_FAILURE). -* -* Reads hex records on the standard input and attempts to -* splice adjacent data fields together. Results appear on -* the standard output. -* -*******************************************************************************/ - -void main( void ) -{ - - char inbuff[ MAX_LINE_SIZE ], outbuff[ MAX_LINE_SIZE ]; - char *in_dptr, *out_dptr; - int d_total, d_count, d_excess, n; - Ulong in_rec_addr, out_rec_addr = 0; - Rec_vitals *rptr; - - - /* Sift through file until first hex record is identified. */ - if ( ( rptr = identify_first_data_record( inbuff ) ) == NULL ) - { - fputs( "No hex records found.\n", stderr ); - exit( EXIT_FAILURE ); - } - - - /* Attempt data-record splicing until end-of-file is reached. */ - d_total = 0; - do - { - if ( rptr->is_data_record( inbuff ) == YES ) - { /* Input record is a data record. */ - d_count = rptr->get_data_count( inbuff ); - in_rec_addr = rptr->get_address( inbuff ); - in_dptr = rptr->get_data_start( inbuff ); - - if ( d_total == 0 || in_rec_addr != out_rec_addr + d_total ) - { /* Begin a new output record. */ - if ( d_total != 0 ) - rptr->put_data_record( d_total, out_rec_addr, outbuff ); - out_dptr = outbuff; - n = d_total = d_count; - out_rec_addr = in_rec_addr; - } - else if - ( ( d_excess = d_total + d_count - rptr->max_data_count ) > 0 ) - { /* Output a maximum-length record, then start a new record. */ - strncat( outbuff, in_dptr, 2 * ( d_count - d_excess ) ); - rptr->put_data_record( - rptr->max_data_count, out_rec_addr, outbuff - ); - in_dptr += 2 * ( d_count - d_excess ); - out_dptr = outbuff; - n = d_total = d_excess; - out_rec_addr += rptr->max_data_count; - } - else - { /* Append input record's data field with accumulated data. */ - out_dptr = outbuff + ( 2 * d_total ); - d_total += n = d_count; - } - strncpy( out_dptr, in_dptr, 2 * n ); - out_dptr[ 2 * n ] = EOS; - } - else - { /* Not a data record; - * flush accumulated data then echo non-data record. - */ - if ( d_total != 0 ) - { - rptr->put_data_record( d_total, out_rec_addr, outbuff ); - d_total = 0; - } - puts( inbuff ); - } - } while ( gets( inbuff ) != NULL ); - - - exit( EXIT_SUCCESS ); - -} - - -/**** identify_first_data_record ******************************************* -* -* Expects: Pointer to hex-record line buffer. -* -* Returns: Pointer to hex-record structure (NULL if no match found). -* -* Reads the standard input, line by line, searching for a valid -* record header character. If a valid header is found, a pointer -* to the hex-record's type structure is returned, otherwise NULL. -* -* The input-stream pointer is left pointing to the first valid hex record. -* -*******************************************************************************/ - -Rec_vitals * identify_first_data_record( char * buff_ptr ) -{ - Rec_vitals ** ptr; - - while ( gets( buff_ptr ) != NULL ) - { - for ( ptr = formats ; *ptr != ( Rec_vitals * ) NULL ; ptr++ ) - if ( ( *ptr )->is_data_record( buff_ptr ) == YES ) - return( *ptr ); /* Successful return. */ - - puts( buff_ptr ); /* Echo non-hex-record line. */ - } - - return( ( Rec_vitals * ) NULL ); /* Unsuccessful return. */ -} - - -/**** get_ndigit_hex ******************************************************* -* -* Expects: Pointer to first ASCII hexadecimal digit, number of digits. -* -* Returns: Value of hexadecimal string as an unsigned long. -* -*******************************************************************************/ - -Ulong get_ndigit_hex( char * cptr, int digits ) -{ - Ulong value; - - for ( value = 0 ; --digits >= 0 ; cptr++ ) - value = ( value * 16L ) + HEX_DIGIT( *cptr ); - - return( value ); -} diff --git a/c/build-tools/src/unhex.c b/c/build-tools/src/unhex.c deleted file mode 100644 index 540095d6f4..0000000000 --- a/c/build-tools/src/unhex.c +++ /dev/null @@ -1,719 +0,0 @@ -/* - * unhex - * convert a hex file to binary equivalent. If more than one file name - * is given, then the output will be logically concatenated together. - * stdin and stdout are defaults. Verbose will enable checksum output. - * - * Supported input formats are Intel hex, Motorola S records, and TI 'B' - * records. - * - * Intel hex input format is - * Byte - * 1 Colon : - * 2..3 Record length, eg: "20" - * 4..7 load address nibbles - * 8..9 record type: "00" (data) or "02" base addr - * 10..x data bytes in ascii-hex - * x+1..x+2 cksum (2's compl of (len+addr+data)) - * x+3 \n -- newline - */ - -char *USAGE = "\ -usage: unhex [-va] [ -o file ] [ file [file ... ] ]\n\ - -v -- verbose\n\ - -a base -- 1st byte of output corresponds to this address\n\ - -l -- linear, just writes data out\n\ - -o file -- output file; must not be input file\n\ - -F k_bits -- \"holes\" in input will be filled with 0xFF's\n\ - up to \"k_bits\" * 1024 bits\n\ -"; - -#include -#include -#include -#include -#include -#include -#include - -#define OK 0 -#define FAILURE (-1) -#define Failed(x) ((x) == FAILURE) -#define TRUE 1 -#define FALSE 0 -typedef char bool; -#define STREQ(a,b) (strcmp(a,b) == 0) - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * Pick out designated bytes - */ - -#define B0(x) ((x) & 0xff) -#define B1(x) B0((x) >> 8) -#define B2(x) B0((x) >> 16) -#define B3(x) B0((x) >> 24) - -typedef struct buffer_rec { - u32 dl_destaddr; - u32 dl_jumpaddr; - int dl_count; - u8 dl_buf[512]; -} buffer_rec; - -/* - * vars controlled by command line options - */ - -bool verbose = FALSE; /* be verbose */ -bool linear = FALSE; /* just write out linear data */ -char *outfilename = "-"; /* default output is stdout */ -u32 base = 0L; /* base address */ -u32 FFfill = 0L; /* how far to fill w 0xFF's */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind; -extern int errno; - -char *progname; /* for error() */ - -void error(int errn, ...); -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* error is fatal; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* error is fatal; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) - -int unhex(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_Intel_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_S_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_TI_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -void write_record(buffer_rec *tb, FILE *fp); -int getnibble(char **p); -int getbyte(char **p); -long getNbytes(char **p, int n); -void badformat(char *s, char *fname, char *msg); - -#define get1bytes(p) ((int) getbyte(p)) -#define get2bytes(p) ((int) getNbytes(p, 2)) -#define get3bytes(p) getNbytes(p, 3) -#define get4bytes(p) getNbytes(p, 4) - -char *BADADDR = "Invalid record address"; -char *BADLEN = "Invalid record length"; -char *BADBASE = "Bad base or starting address"; -char *BADFMT = "Unrecognized record type"; -char *BADDATA = "Invalid data byte"; -char *BADCSUM = "Invalid checksum"; -char *MISCSUM = "Checksum mismatch"; -char *BADTYPE = "Unrecognized record type"; -char *MISTYPE = "Incompatible record types"; - -int -main(argc, argv) -int argc; -char **argv; -{ - register int c; - bool showusage = FALSE; /* usage error? */ - int rc = 0; - FILE *outfp, *infp; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - progname = argv[0]; - while ((c = getopt(argc, argv, "F:a:o:vl")) != EOF) - switch (c) - { - case 'a': /* base address */ - base = stol(optarg); - break; - - case 'l': /* linear output */ - linear = TRUE; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case 'o': /* output file */ - outfilename = optarg; - break; - - case 'F': /* 0xFF fill amount (bytes) */ - FFfill = stol(optarg) * 1024L / 8L; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - if (linear && (base != 0)) - { - error(0, "-l and -a may not be specified in combination"); - exit(1); - } - - if (STREQ(outfilename, "-")) - { - outfp = stdout; - outfilename = "stdout"; - } - else - if ((outfp = fopen(outfilename, "w")) == (FILE *) NULL) - { - error(-1, "couldn't open '%s' for output", outfilename); - exit(1); - } - - /* - * Now process the input files (or stdin, if none specified) - */ - - if (argv[optind] == (char *) NULL) /* just stdin */ - exit(unhex(stdin, "stdin", outfp, outfilename)); - else - for (; (optarg = argv[optind]); optind++) - { - if (STREQ(optarg, "-")) - rc += unhex(stdin, "stdin", outfp, outfilename); - else - { - if ((infp = fopen(optarg, "r")) == (FILE *) NULL) - { - error(-1, "couldn't open '%s' for input", optarg); - exit(1); - } - rc += unhex(infp, optarg, outfp, outfilename); - } - } - - return(rc); -} - -u16 filesum; - -int -unhex(FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - int c; - - filesum = 0; - - /* - * Make sure holes will be filled with 0xFF's if requested. We - * do this the easy way by just filling the file with FF's before - * getting started. To do it more optimally would be quite a bit - * more difficult since the user can skip around as much as he/she - * likes in the input hex file addressing. - * - * We'll clean this up later (after this program has run) with - * 'stripffs' - */ - - if (FFfill) - { - (void) fseek(ofp, 0, 0); - for (c = FFfill; c > 0; c--) - (void) fputc(0xFF, ofp); - } - - /* - * Read the first char from file and determine record types - */ - - if ((c = getc(ifp)) != EOF) - { - ungetc(c, ifp); - switch(c) - { - case 'S': - convert_S_records(ifp, inm, ofp, onm); - break; - - case ':': - convert_Intel_records(ifp, inm, ofp, onm); - break; - - case '9': - case 'B': - convert_TI_records(ifp, inm, ofp, onm); - break; - - default: - { - char tmp[2]; - tmp[0] = c; tmp[1] = 0; - badformat(tmp, inm, BADFMT); - } - } - } - - if (verbose) - fprintf(stderr, "'%s' checksum is 0x%04x\n", inm, filesum); - - return 0; -} - -int -convert_Intel_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - u8 cksum; - int incksum; - int c; - int rectype; /* record type */ - int len; /* data length of current line */ - u32 addr; - u32 base_address = 0; - bool endrecord = FALSE; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - p = &buff[0]; - - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - if (*p != ':') - badformat(p, inm, BADFMT); - p++; - - if ((len = getbyte(&p)) == -1) /* record len */ - badformat(buff, inm, BADLEN); - - if ((addr = get2bytes(&p)) == -1L) /* record addr */ - badformat(buff, inm, BADADDR); - - rectype = getbyte(&p); - - cksum = len + B0(addr) + B1(addr) + rectype; - - switch (rectype) - { - case 0x00: /* normal data record */ - tb.dl_destaddr = base_address + addr; - while (len--) - { - if ((c = getbyte(&p)) == -1) - badformat(buff, inm, BADDATA); - cksum += c; - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - } - break; - - case 0x01: /* execution start address */ - base_address = addr; - endrecord = TRUE; - break; - - case 0x02: /* new base */ - if ((base_address = get2bytes(&p)) == -1L) - badformat(buff, inm, BADBASE); - cksum += B0(base_address) + B1(base_address); - base_address <<= 4; - break; - - case 0x03: /* seg/off execution start address */ - { - u32 seg, off; - - seg = get2bytes(&p); - off = get2bytes(&p); - if ((seg == -1L) || (off == -1L)) - badformat(buff, inm, BADADDR); - - cksum += B0(seg) + B1(seg) + B0(off) + B1(off); - - tb.dl_jumpaddr = (seg << 4) + off; - break; - } - - default: - error(0, "unknown Intel-hex record type: 0x%02x", rectype); - badformat(buff, inm, BADTYPE); - } - - /* - * Verify checksums are correct in file. - */ - - cksum = (-cksum) & 0xff; - if ((incksum = getbyte(&p)) == -1) - badformat(buff, inm, BADCSUM); - if (((u8) incksum) != cksum) - badformat(buff, inm, MISCSUM); - - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -int -convert_S_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - u8 cksum; - int incksum; - int c; - int len; /* data length of current line */ - int rectype; /* record type */ - u32 addr; - bool endrecord = FALSE; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - p = &buff[0]; - - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - if (*p != 'S') - badformat(p, inm, BADFMT); - p++; - - if ((rectype = getnibble(&p)) == -1) /* record type */ - badformat(buff, inm, BADTYPE); - - if ((len = getbyte(&p)) == -1) /* record len */ - badformat(buff, inm, BADLEN); - cksum = len; - - switch (rectype) - { - case 0x00: /* comment field, ignored */ - goto write_it; - - case 0x01: /* data record, 16 bit addr */ - if ((addr = get2bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 3; - goto doit; - - case 0x02: /* ... 24 bit addr */ - if ((addr = get3bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 4; - goto doit; - - case 0x03: /* ... 32 bit addr */ - if ((addr = get4bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 5; - doit: - cksum += B0(addr) + B1(addr) + B2(addr) + B3(addr); - - tb.dl_destaddr = addr; - while (len--) - { - if ((c = getbyte(&p)) == -1) - badformat(buff, inm, BADDATA); - cksum += c; - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - } - break; - - case 0x07: /* 32 bit end record */ - if ((addr = get4bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - goto end_rec; - - case 0x08: /* 24 bit end record */ - if ((addr = get3bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - goto end_rec; - - case 0x09: /* 16 bit end record */ - if ((addr = get2bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - -end_rec: - cksum += B0(addr) + B1(addr) + B2(addr) + B3(addr); - tb.dl_jumpaddr = addr; - break; - - default: - error(0, "unknown Motorola-S record type: 0x%02x", rectype); - badformat(buff, inm, BADTYPE); - break; - } - - /* - * Verify checksums are correct in file. - */ - - cksum = (~cksum) & 0xff; - if ((incksum = getbyte(&p)) == -1) - badformat(buff, inm, BADCSUM); - if (((u8) incksum) != cksum) - badformat(buff, inm, MISCSUM); - -write_it: - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -int -convert_TI_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - int c; - bool endrecord = FALSE; - bool eol; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - p = &buff[0]; - eol = FALSE; - while ( ! eol && ! endrecord) - { - switch (*p++) - { - case '9': - if (tb.dl_count) - write_record(&tb, ofp); - tb.dl_destaddr = get2bytes(&p); - break; - - case 'B': - c = getbyte(&p); - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - c = getbyte(&p); - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - break; - - case 'F': - eol = TRUE; - break; - - case ':': - endrecord = TRUE; - break; - - default: - badformat(p, inm, BADFMT); - } - } - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -void -write_record(buffer_rec *tb, - FILE *fp) -{ - if ( ! linear) - { - if (tb->dl_destaddr < base) - error(ERR_FATAL, "record at address 0x%x precedes base of 0x%x", - tb->dl_destaddr, base); - (void) fseek(fp, tb->dl_destaddr - base, 0); - } - - (void) fwrite(tb->dl_buf, tb->dl_count, 1, fp); - tb->dl_destaddr += tb->dl_count; - tb->dl_count = 0; -} - -int -getnibble(char **p) -{ - register int val; - - **p = toupper(**p); - switch (**p) - { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - val = **p - '0'; - break; - - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': - val = 10 + (**p - 'A'); - break; - - default: - return(-1); - } - *p += 1; - - return(val & 0x0f); -} - -int -getbyte(char **p) -{ - int n0, n1; - - if ((n0 = getnibble(p)) == -1) - return(-1); - if ((n1 = getnibble(p)) == -1) - return(-1); - - return(((n0 << 4) + n1) & 0xff); -} - -long -getNbytes(char **p, - int n) -{ - int t; - u32 val = 0; - - while (n--) - { - if ((t = getbyte(p)) == -1) - return(-1L); - val <<= 8; - val += t; - } - - return(val); -} - -void -badformat(char *s, - char *fname, - char *msg) -{ - if (s[strlen(s)-1] == '\n') /* get rid of newline */ - s[strlen(s)-1] = '\0'; - error(0, "line '%s'::\n\tfrom file '%s'; %s", s, fname, msg); - exit(1); -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_EXIT bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - diff --git a/c/build-tools/unhex.c b/c/build-tools/unhex.c deleted file mode 100644 index 540095d6f4..0000000000 --- a/c/build-tools/unhex.c +++ /dev/null @@ -1,719 +0,0 @@ -/* - * unhex - * convert a hex file to binary equivalent. If more than one file name - * is given, then the output will be logically concatenated together. - * stdin and stdout are defaults. Verbose will enable checksum output. - * - * Supported input formats are Intel hex, Motorola S records, and TI 'B' - * records. - * - * Intel hex input format is - * Byte - * 1 Colon : - * 2..3 Record length, eg: "20" - * 4..7 load address nibbles - * 8..9 record type: "00" (data) or "02" base addr - * 10..x data bytes in ascii-hex - * x+1..x+2 cksum (2's compl of (len+addr+data)) - * x+3 \n -- newline - */ - -char *USAGE = "\ -usage: unhex [-va] [ -o file ] [ file [file ... ] ]\n\ - -v -- verbose\n\ - -a base -- 1st byte of output corresponds to this address\n\ - -l -- linear, just writes data out\n\ - -o file -- output file; must not be input file\n\ - -F k_bits -- \"holes\" in input will be filled with 0xFF's\n\ - up to \"k_bits\" * 1024 bits\n\ -"; - -#include -#include -#include -#include -#include -#include -#include - -#define OK 0 -#define FAILURE (-1) -#define Failed(x) ((x) == FAILURE) -#define TRUE 1 -#define FALSE 0 -typedef char bool; -#define STREQ(a,b) (strcmp(a,b) == 0) - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * Pick out designated bytes - */ - -#define B0(x) ((x) & 0xff) -#define B1(x) B0((x) >> 8) -#define B2(x) B0((x) >> 16) -#define B3(x) B0((x) >> 24) - -typedef struct buffer_rec { - u32 dl_destaddr; - u32 dl_jumpaddr; - int dl_count; - u8 dl_buf[512]; -} buffer_rec; - -/* - * vars controlled by command line options - */ - -bool verbose = FALSE; /* be verbose */ -bool linear = FALSE; /* just write out linear data */ -char *outfilename = "-"; /* default output is stdout */ -u32 base = 0L; /* base address */ -u32 FFfill = 0L; /* how far to fill w 0xFF's */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind; -extern int errno; - -char *progname; /* for error() */ - -void error(int errn, ...); -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* error is fatal; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* error is fatal; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) - -int unhex(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_Intel_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_S_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_TI_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -void write_record(buffer_rec *tb, FILE *fp); -int getnibble(char **p); -int getbyte(char **p); -long getNbytes(char **p, int n); -void badformat(char *s, char *fname, char *msg); - -#define get1bytes(p) ((int) getbyte(p)) -#define get2bytes(p) ((int) getNbytes(p, 2)) -#define get3bytes(p) getNbytes(p, 3) -#define get4bytes(p) getNbytes(p, 4) - -char *BADADDR = "Invalid record address"; -char *BADLEN = "Invalid record length"; -char *BADBASE = "Bad base or starting address"; -char *BADFMT = "Unrecognized record type"; -char *BADDATA = "Invalid data byte"; -char *BADCSUM = "Invalid checksum"; -char *MISCSUM = "Checksum mismatch"; -char *BADTYPE = "Unrecognized record type"; -char *MISTYPE = "Incompatible record types"; - -int -main(argc, argv) -int argc; -char **argv; -{ - register int c; - bool showusage = FALSE; /* usage error? */ - int rc = 0; - FILE *outfp, *infp; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - progname = argv[0]; - while ((c = getopt(argc, argv, "F:a:o:vl")) != EOF) - switch (c) - { - case 'a': /* base address */ - base = stol(optarg); - break; - - case 'l': /* linear output */ - linear = TRUE; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case 'o': /* output file */ - outfilename = optarg; - break; - - case 'F': /* 0xFF fill amount (bytes) */ - FFfill = stol(optarg) * 1024L / 8L; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - if (linear && (base != 0)) - { - error(0, "-l and -a may not be specified in combination"); - exit(1); - } - - if (STREQ(outfilename, "-")) - { - outfp = stdout; - outfilename = "stdout"; - } - else - if ((outfp = fopen(outfilename, "w")) == (FILE *) NULL) - { - error(-1, "couldn't open '%s' for output", outfilename); - exit(1); - } - - /* - * Now process the input files (or stdin, if none specified) - */ - - if (argv[optind] == (char *) NULL) /* just stdin */ - exit(unhex(stdin, "stdin", outfp, outfilename)); - else - for (; (optarg = argv[optind]); optind++) - { - if (STREQ(optarg, "-")) - rc += unhex(stdin, "stdin", outfp, outfilename); - else - { - if ((infp = fopen(optarg, "r")) == (FILE *) NULL) - { - error(-1, "couldn't open '%s' for input", optarg); - exit(1); - } - rc += unhex(infp, optarg, outfp, outfilename); - } - } - - return(rc); -} - -u16 filesum; - -int -unhex(FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - int c; - - filesum = 0; - - /* - * Make sure holes will be filled with 0xFF's if requested. We - * do this the easy way by just filling the file with FF's before - * getting started. To do it more optimally would be quite a bit - * more difficult since the user can skip around as much as he/she - * likes in the input hex file addressing. - * - * We'll clean this up later (after this program has run) with - * 'stripffs' - */ - - if (FFfill) - { - (void) fseek(ofp, 0, 0); - for (c = FFfill; c > 0; c--) - (void) fputc(0xFF, ofp); - } - - /* - * Read the first char from file and determine record types - */ - - if ((c = getc(ifp)) != EOF) - { - ungetc(c, ifp); - switch(c) - { - case 'S': - convert_S_records(ifp, inm, ofp, onm); - break; - - case ':': - convert_Intel_records(ifp, inm, ofp, onm); - break; - - case '9': - case 'B': - convert_TI_records(ifp, inm, ofp, onm); - break; - - default: - { - char tmp[2]; - tmp[0] = c; tmp[1] = 0; - badformat(tmp, inm, BADFMT); - } - } - } - - if (verbose) - fprintf(stderr, "'%s' checksum is 0x%04x\n", inm, filesum); - - return 0; -} - -int -convert_Intel_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - u8 cksum; - int incksum; - int c; - int rectype; /* record type */ - int len; /* data length of current line */ - u32 addr; - u32 base_address = 0; - bool endrecord = FALSE; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - p = &buff[0]; - - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - if (*p != ':') - badformat(p, inm, BADFMT); - p++; - - if ((len = getbyte(&p)) == -1) /* record len */ - badformat(buff, inm, BADLEN); - - if ((addr = get2bytes(&p)) == -1L) /* record addr */ - badformat(buff, inm, BADADDR); - - rectype = getbyte(&p); - - cksum = len + B0(addr) + B1(addr) + rectype; - - switch (rectype) - { - case 0x00: /* normal data record */ - tb.dl_destaddr = base_address + addr; - while (len--) - { - if ((c = getbyte(&p)) == -1) - badformat(buff, inm, BADDATA); - cksum += c; - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - } - break; - - case 0x01: /* execution start address */ - base_address = addr; - endrecord = TRUE; - break; - - case 0x02: /* new base */ - if ((base_address = get2bytes(&p)) == -1L) - badformat(buff, inm, BADBASE); - cksum += B0(base_address) + B1(base_address); - base_address <<= 4; - break; - - case 0x03: /* seg/off execution start address */ - { - u32 seg, off; - - seg = get2bytes(&p); - off = get2bytes(&p); - if ((seg == -1L) || (off == -1L)) - badformat(buff, inm, BADADDR); - - cksum += B0(seg) + B1(seg) + B0(off) + B1(off); - - tb.dl_jumpaddr = (seg << 4) + off; - break; - } - - default: - error(0, "unknown Intel-hex record type: 0x%02x", rectype); - badformat(buff, inm, BADTYPE); - } - - /* - * Verify checksums are correct in file. - */ - - cksum = (-cksum) & 0xff; - if ((incksum = getbyte(&p)) == -1) - badformat(buff, inm, BADCSUM); - if (((u8) incksum) != cksum) - badformat(buff, inm, MISCSUM); - - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -int -convert_S_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - u8 cksum; - int incksum; - int c; - int len; /* data length of current line */ - int rectype; /* record type */ - u32 addr; - bool endrecord = FALSE; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - p = &buff[0]; - - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - if (*p != 'S') - badformat(p, inm, BADFMT); - p++; - - if ((rectype = getnibble(&p)) == -1) /* record type */ - badformat(buff, inm, BADTYPE); - - if ((len = getbyte(&p)) == -1) /* record len */ - badformat(buff, inm, BADLEN); - cksum = len; - - switch (rectype) - { - case 0x00: /* comment field, ignored */ - goto write_it; - - case 0x01: /* data record, 16 bit addr */ - if ((addr = get2bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 3; - goto doit; - - case 0x02: /* ... 24 bit addr */ - if ((addr = get3bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 4; - goto doit; - - case 0x03: /* ... 32 bit addr */ - if ((addr = get4bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 5; - doit: - cksum += B0(addr) + B1(addr) + B2(addr) + B3(addr); - - tb.dl_destaddr = addr; - while (len--) - { - if ((c = getbyte(&p)) == -1) - badformat(buff, inm, BADDATA); - cksum += c; - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - } - break; - - case 0x07: /* 32 bit end record */ - if ((addr = get4bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - goto end_rec; - - case 0x08: /* 24 bit end record */ - if ((addr = get3bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - goto end_rec; - - case 0x09: /* 16 bit end record */ - if ((addr = get2bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - -end_rec: - cksum += B0(addr) + B1(addr) + B2(addr) + B3(addr); - tb.dl_jumpaddr = addr; - break; - - default: - error(0, "unknown Motorola-S record type: 0x%02x", rectype); - badformat(buff, inm, BADTYPE); - break; - } - - /* - * Verify checksums are correct in file. - */ - - cksum = (~cksum) & 0xff; - if ((incksum = getbyte(&p)) == -1) - badformat(buff, inm, BADCSUM); - if (((u8) incksum) != cksum) - badformat(buff, inm, MISCSUM); - -write_it: - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -int -convert_TI_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - int c; - bool endrecord = FALSE; - bool eol; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - p = &buff[0]; - eol = FALSE; - while ( ! eol && ! endrecord) - { - switch (*p++) - { - case '9': - if (tb.dl_count) - write_record(&tb, ofp); - tb.dl_destaddr = get2bytes(&p); - break; - - case 'B': - c = getbyte(&p); - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - c = getbyte(&p); - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - break; - - case 'F': - eol = TRUE; - break; - - case ':': - endrecord = TRUE; - break; - - default: - badformat(p, inm, BADFMT); - } - } - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -void -write_record(buffer_rec *tb, - FILE *fp) -{ - if ( ! linear) - { - if (tb->dl_destaddr < base) - error(ERR_FATAL, "record at address 0x%x precedes base of 0x%x", - tb->dl_destaddr, base); - (void) fseek(fp, tb->dl_destaddr - base, 0); - } - - (void) fwrite(tb->dl_buf, tb->dl_count, 1, fp); - tb->dl_destaddr += tb->dl_count; - tb->dl_count = 0; -} - -int -getnibble(char **p) -{ - register int val; - - **p = toupper(**p); - switch (**p) - { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - val = **p - '0'; - break; - - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': - val = 10 + (**p - 'A'); - break; - - default: - return(-1); - } - *p += 1; - - return(val & 0x0f); -} - -int -getbyte(char **p) -{ - int n0, n1; - - if ((n0 = getnibble(p)) == -1) - return(-1); - if ((n1 = getnibble(p)) == -1) - return(-1); - - return(((n0 << 4) + n1) & 0xff); -} - -long -getNbytes(char **p, - int n) -{ - int t; - u32 val = 0; - - while (n--) - { - if ((t = getbyte(p)) == -1) - return(-1L); - val <<= 8; - val += t; - } - - return(val); -} - -void -badformat(char *s, - char *fname, - char *msg) -{ - if (s[strlen(s)-1] == '\n') /* get rid of newline */ - s[strlen(s)-1] = '\0'; - error(0, "line '%s'::\n\tfrom file '%s'; %s", s, fname, msg); - exit(1); -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_EXIT bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - diff --git a/c/src/README b/c/src/README deleted file mode 100644 index 3e242504dc..0000000000 --- a/c/src/README +++ /dev/null @@ -1,27 +0,0 @@ -# -# $Id$ -# - -This is the top level directory of the C RTEMS environment. The -following is a description of the contents of each file and -subdirectory directly in this directory: - - tests - - This directory contains the RTEMS Test Suites. Currently - this includes the following suites: - - + Single Processor Test Suite - + Multiprocessor Test Suite - + Timing Test Suite - + Sample Application Suite - - lib - - This directory contains src for RTEMS libraries: - libc, board support (including drivers) and libcpu. - - exec - - This directory contains the source code for the RTEMS executive. - diff --git a/c/src/exec/libcsupport/include/clockdrv.h b/c/src/exec/libcsupport/include/clockdrv.h deleted file mode 100644 index aad9bd6d3b..0000000000 --- a/c/src/exec/libcsupport/include/clockdrv.h +++ /dev/null @@ -1,58 +0,0 @@ -/* clock.h - * - * This file describes the Clock Driver for all boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __CLOCK_DRIVER_h -#define __CLOCK_DRIVER_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* variables */ - -extern volatile rtems_unsigned32 Clock_driver_ticks; - -/* functions */ - -rtems_task Exit_task(); -void exit_task_init(); - -void Install_clock( rtems_isr_entry ); -void ReInstall_clock( rtems_isr_entry ); -void Clock_exit(); - -rtems_isr Clock_isr( - rtems_vector_number -); - -/* driver entries */ - -#define CLOCK_DRIVER_TABLE_ENTRY \ - { Clock_initialize, NULL, NULL, NULL, NULL, NULL } - -rtems_device_driver Clock_initialize( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/libcsupport/include/console.h b/c/src/exec/libcsupport/include/console.h deleted file mode 100644 index d102c6a1b1..0000000000 --- a/c/src/exec/libcsupport/include/console.h +++ /dev/null @@ -1,40 +0,0 @@ -/* console.h - * - * This file describes the Console Device Driver for all boards. - * This driver provides support for the standard C Library. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef _CONSOLE_DRIVER_h -#define _CONSOLE_DRIVER_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define CONSOLE_DRIVER_TABLE_ENTRY \ - { console_initialize, NULL, NULL, NULL, NULL, NULL } - -rtems_device_driver console_initialize( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/libcsupport/include/iosupp.h b/c/src/exec/libcsupport/include/iosupp.h deleted file mode 100644 index 5f4a83b8ca..0000000000 --- a/c/src/exec/libcsupport/include/iosupp.h +++ /dev/null @@ -1,44 +0,0 @@ -/* iosupp.h - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __IOSUPP_h -#define __IOSUPP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* character constants */ - -#define BS 0x08 /* backspace */ -#define LF 0x0a /* line feed */ -#define CR 0x0d /* carriage return */ -#define XON 0x11 /* control-Q */ -#define XOFF 0x13 /* control-S */ - -/* structures */ - -#ifdef IOSUPP_INIT -#define IOSUPP_EXTERN -#else -#undef IOSUPP_EXTERN -#define IOSUPP_EXTERN extern -#endif - -/* functions */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/c/src/exec/libcsupport/include/rtems/libcsupport.h b/c/src/exec/libcsupport/include/rtems/libcsupport.h deleted file mode 100644 index 2b199707f8..0000000000 --- a/c/src/exec/libcsupport/include/rtems/libcsupport.h +++ /dev/null @@ -1,47 +0,0 @@ -/* libcsupport.h - * - * This include file contains the information regarding the - * RTEMS specific support for the standard C library. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __LIBC_SUPPORT_h -#define __LIBC_SUPPORT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -void RTEMS_Malloc_Initialize( - void *start, - size_t length, - size_t sbrk_amount -); - -extern void libc_init(int reentrant); - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/libcsupport/include/spurious.h b/c/src/exec/libcsupport/include/spurious.h deleted file mode 100644 index 428e826164..0000000000 --- a/c/src/exec/libcsupport/include/spurious.h +++ /dev/null @@ -1,38 +0,0 @@ -/* spurious.h - * - * This file describes the Spurious Interrupt Driver for all boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993. - * On-Line Applications Research Corporation (OAR). - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SPURIOUS_h -#define __SPURIOUS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define SPURIOUS_DRIVER_TABLE_ENTRY \ - { Spurious_Initialize, NULL, NULL, NULL, NULL, NULL } - -rtems_device_driver Spurious_Initialize( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/libcsupport/include/timerdrv.h b/c/src/exec/libcsupport/include/timerdrv.h deleted file mode 100644 index d091b62410..0000000000 --- a/c/src/exec/libcsupport/include/timerdrv.h +++ /dev/null @@ -1,40 +0,0 @@ -/* timerdrv.h - * - * This file describes the Timer Driver for all boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIMER_DRIVER_h -#define __TIMER_DRIVER_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* functions */ - -void Timer_initialize( void ); - -rtems_unsigned32 Read_timer( void ); - -rtems_status_code Empty_function( void ); - -void Set_find_average_overhead( - rtems_boolean find_flag -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/libcsupport/include/vmeintr.h b/c/src/exec/libcsupport/include/vmeintr.h deleted file mode 100644 index 6148114ce8..0000000000 --- a/c/src/exec/libcsupport/include/vmeintr.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * vmeintr.h - * - * This file is the specification for the VMEbus interface library - * which should be provided by all BSPs for VMEbus Single Board - * Computers but currently only a few do so. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __VME_INTERRUPT_h -#define __VME_INTERRUPT_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This defines the mask which is used to determine which - * interrupt levels are affected by a call to this package. - * The LSB corresponds to VME interrupt 0 and the MSB - * to VME interrupt 7. - * - */ - -typedef rtems_unsigned8 VME_interrupt_Mask; - -/* - * VME_interrupt_Disable - * - */ - -void VME_interrupt_Disable ( - VME_interrupt_Mask mask /* IN */ -); - -/* - * VME_interrupt_Disable - * - */ - -void VME_interrupt_Enable ( - VME_interrupt_Mask mask /* IN */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* end of include file */ diff --git a/c/src/exec/libcsupport/src/README b/c/src/exec/libcsupport/src/README deleted file mode 100644 index ee7a90501e..0000000000 --- a/c/src/exec/libcsupport/src/README +++ /dev/null @@ -1,37 +0,0 @@ --- --- $Id$ --- - -Overview of newlib support (newlib is from CYGNUS) - Each task can have its own libc state including: - open stdio files - strtok - multi precision arithmetic state - etc. - - This is implemented by a reentrancy data structure for each task. - - When a task is "started" (in RTEMS sense) the reentrancy structure - is allocated. Its address is stored in notepad[NOTEPAD_LAST]. - - When task is switched to, the value of global variable _impure_ptr - is changed to the value of the new tasks reentrancy structure. - - When a task is deleted - atexit() processing (for that task) happens - task's stdio buffers are flushed - - When exit(3) is called - calling task's atexit processing done - global libc state atexit processing done - (this will include any atexit routines installed by drivers) - executive is shutdown - causes a context switch back to bsp land - - -NOTE: - libc extension are installed by bsp_libc_init() - iff we are using clock interrupts. - This hack is necessary to allow the tmtests to avoid - timing the extensions. - diff --git a/c/src/exec/libcsupport/src/__brk.c b/c/src/exec/libcsupport/src/__brk.c deleted file mode 100644 index 6fb15342fe..0000000000 --- a/c/src/exec/libcsupport/src/__brk.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * RTEMS "Broken" __brk/__sbrk Implementation - * - * NOTE: sbrk is BSP provided. - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include -#ifdef RTEMS_NEWLIB -#include -#endif -#include - -/* we use RTEMS for memory management. We don't need sbrk */ - -void * __sbrk(int incr) -{ - errno = EINVAL; - return (void *)0; -} - -int __brk( const void *endds ) -{ - errno = EINVAL; - return -1; -} diff --git a/c/src/exec/libcsupport/src/__gettod.c b/c/src/exec/libcsupport/src/__gettod.c deleted file mode 100644 index a1ab9776c8..0000000000 --- a/c/src/exec/libcsupport/src/__gettod.c +++ /dev/null @@ -1,84 +0,0 @@ -#if !defined(RTEMS_UNIX) -/* - * RTEMS gettimeofday Implementation - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#ifdef RTEMS_NEWLIB -#include -#endif -#include -#include -#include -#include - -/* - * NOTE: The solaris gettimeofday does not have a second parameter. - */ - -int gettimeofday( - struct timeval *tp, - struct timezone *tzp -) -{ - rtems_status_code status; - rtems_clock_time_value time; - - if ( !tp || !tzp ) { - errno = EFAULT; - return -1; - } - - /* "POSIX" does not seem to allow for not having a TOD */ - status = rtems_clock_get( RTEMS_CLOCK_GET_TIME_VALUE, &time ); - if ( status != RTEMS_SUCCESSFUL ) { - assert( 0 ); - return -1; - } - - tp->tv_sec = time.seconds; - tp->tv_usec = time.microseconds; - -#if 0 - tzp->minuteswest = timezone / 60; /* from seconds to minutes */ - tzp->dsttime = daylight; -#endif - - /* - * newlib does not have timezone and daylight savings time - * yet. When it does this needs to be fixed. - */ - - tzp->tz_minuteswest = 0; /* at UTC */ - tzp->tz_dsttime = 0; /* no daylight savings */ - return 0; -} - -/* - * "Reentrant" versions of the above routines implemented above. - */ - -#if 0 -int _gettimeofday_r( - struct _reent *ignored_reentrancy_stuff, - struct timeval *tp, - struct timezone *tzp -) -{ - return gettimeofday( tp, tzp ); -} -#endif - -#endif diff --git a/c/src/exec/libcsupport/src/__times.c b/c/src/exec/libcsupport/src/__times.c deleted file mode 100644 index 12fd9241fe..0000000000 --- a/c/src/exec/libcsupport/src/__times.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * RTEMS _times Implementation - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include - -clock_t _times( - struct tms *ptms -) -{ - rtems_status_code status; - rtems_interval ticks_since_boot; - - if ( !ptms ) { - errno = EFAULT; - return -1; - } - - /* "POSIX" does not seem to allow for not having a TOD */ - status = rtems_clock_get( - RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, - &ticks_since_boot - ); - if ( status != RTEMS_SUCCESSFUL ) { - assert( 0 ); - return -1; - } - - /* - * RTEMS has no notion of system versus user time and does - * not (as of 3.2.0) keep track of CPU usage on a per task basis. - */ - - ptms->tms_utime = ticks_since_boot; - ptms->tms_stime = 0; - ptms->tms_cutime = 0; - ptms->tms_cstime = 0; - - return 0; -} - -clock_t times( - struct tms *ptms -) -{ - return _times( ptms ); -} - diff --git a/c/src/exec/libcsupport/src/malloc.c b/c/src/exec/libcsupport/src/malloc.c deleted file mode 100644 index 7d0ba04143..0000000000 --- a/c/src/exec/libcsupport/src/malloc.c +++ /dev/null @@ -1,280 +0,0 @@ -/* - * RTEMS Malloc Family Implementation - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#ifdef RTEMS_LIBC -#include -#endif -#include "libcsupport.h" -#ifdef RTEMS_NEWLIB -#include -#endif - -#include -#include -#include -#include -#include -#include - -/* - * XXX: Do we really need to duplicate these? It appears that they - * only cause typing problems. - */ - -#if 0 -void *malloc(size_t); -void *calloc(size_t, size_t); -void *realloc(void *, size_t); -void free(void *); -void *sbrk(size_t); -#endif - -rtems_id RTEMS_Malloc_Heap; -size_t RTEMS_Malloc_Sbrk_amount; - -void RTEMS_Malloc_Initialize( - void *start, - size_t length, - size_t sbrk_amount -) -{ - rtems_status_code status; - void *starting_address; - rtems_unsigned32 u32_address; - - /* - * If the starting address is 0 then we are to attempt to - * get length worth of memory using sbrk. Make sure we - * align the address that we get back. - */ - - starting_address = start; - - if (!starting_address) { - u32_address = (unsigned int)sbrk(length); - - if (u32_address == -1) { - rtems_fatal_error_occurred( RTEMS_NO_MEMORY ); - /* DOES NOT RETURN!!! */ - } - - if (u32_address & (CPU_ALIGNMENT-1)) { - u32_address = (u32_address + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - /* XXX: if we do any alignment .. then length should be shortened */ - } - - starting_address = (void *)u32_address; - } - - /* - * Unfortunately we cannot use assert if this fails because if this - * has failed we do not have a heap and if we do not have a heap - * STDIO cannot work because there will be no buffers. - */ - - status = rtems_region_create( - rtems_build_name( 'H', 'E', 'A', 'P' ), - starting_address, - length, - 8, /* XXX : use CPU dependent RTEMS constant */ - RTEMS_DEFAULT_ATTRIBUTES, - &RTEMS_Malloc_Heap - ); - if ( status != RTEMS_SUCCESSFUL ) - rtems_fatal_error_occurred( status ); -} - -void *malloc( - size_t size -) -{ - void *return_this; - void *starting_address; - rtems_unsigned32 the_size; - rtems_unsigned32 sbrk_amount; - rtems_status_code status; - - if ( !size ) - return (void *) 0; - - /* - * Try to give a segment in the current region if there is not - * enough space then try to grow the region using rtems_region_extend(). - * If this fails then return a NULL pointer. - */ - - status = rtems_region_get_segment( - RTEMS_Malloc_Heap, - size, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &return_this - ); - - if ( status != RTEMS_SUCCESSFUL ) { - /* - * Round to the "requested sbrk amount" so hopefully we won't have - * to grow again for a while. This effectively does sbrk() calls - * in "page" amounts. - */ - - sbrk_amount = RTEMS_Malloc_Sbrk_amount; - - if ( sbrk_amount == 0 ) - return (void *) 0; - - the_size = ((size + sbrk_amount) / sbrk_amount * sbrk_amount); - - if (((rtems_unsigned32)starting_address = sbrk(the_size)) == -1) - return (void *) 0; - - /* - fprintf(stderr, "Extended the C heap starting at 0x%x for %d bytes\n", - (unsigned32)starting_address, the_size); - */ - - status = rtems_region_extend( - RTEMS_Malloc_Heap, - starting_address, - the_size - ); - if ( status != RTEMS_SUCCESSFUL ) { - sbrk(-the_size); - return(FALSE); - errno = ENOMEM; - return (void *) 0; - } - status = rtems_region_get_segment( - RTEMS_Malloc_Heap, - size, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &return_this - ); - if ( status != RTEMS_SUCCESSFUL ) { - errno = ENOMEM; - return (void *) 0; - } - } - - return return_this; -} - -void *calloc( - size_t nelem, - size_t elsize -) -{ - register char *cptr; - int length; - - length = nelem * elsize; - cptr = malloc( length ); - if ( cptr ) - memset( cptr, '\0', length ); - - return cptr; -} - -void *realloc( - void *ptr, - size_t size -) -{ - rtems_unsigned32 old_size; - rtems_status_code status; - char *new_area; - - if ( !ptr ) - return malloc( size ); - - if ( !size ) { - free( ptr ); - return (void *) 0; - } - - status = rtems_region_get_segment_size( RTEMS_Malloc_Heap, ptr, &old_size ); - if ( status != RTEMS_SUCCESSFUL ) { - errno = EINVAL; - return (void *) 0; - } - - new_area = malloc( size ); - if ( !new_area ) { - free( ptr ); - return (void *) 0; - } - - memcpy( new_area, ptr, (size < old_size) ? size : old_size ); - free( ptr ); - - return new_area; - -} - -void free( - void *ptr -) -{ - rtems_status_code status; - - if ( !ptr ) - return; - - status = rtems_region_return_segment( RTEMS_Malloc_Heap, ptr ); - if ( status != RTEMS_SUCCESSFUL ) { - errno = EINVAL; - assert( 0 ); - } -} - -/* - * "Reentrant" versions of the above routines implemented above. - */ - -#ifdef RTEMS_NEWLIB -void *malloc_r( - struct _reent *ignored, - size_t size -) -{ - return malloc( size ); -} - -void *calloc_r( - size_t nelem, - size_t elsize -) -{ - return calloc( nelem, elsize ); -} - -void *realloc_r( - void *ptr, - size_t size -) -{ - return realloc_r( ptr, size ); -} - -void free_r( - void *ptr -) -{ - free( ptr ); -} -#endif - diff --git a/c/src/exec/libcsupport/src/newlibc.c b/c/src/exec/libcsupport/src/newlibc.c deleted file mode 100644 index 3c5e58b67c..0000000000 --- a/c/src/exec/libcsupport/src/newlibc.c +++ /dev/null @@ -1,292 +0,0 @@ -/* - * @(#)newlibc.c 1.8 - 95/04/25 - * - */ - -#if defined(RTEMS_NEWLIB) - -/* - * File: $RCSfile$ - * Project: PixelFlow - * Created: 94/12/7 - * Revision: $Revision$ - * Last Mod: $Date$ - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * Description: - * Implementation of hooks for the CYGNUS newlib libc - * These hooks set things up so that: - * '_REENT' is switched at task switch time. - * - * - * TODO: - * - * NOTE: - * - * $Id$ - * - */ - -#include -#include -#include /* for free() */ -#include /* for memset() */ - -#include /* for extern of _REENT (aka _impure_ptr) */ - -#include "internal.h" - -#define LIBC_NOTEPAD RTEMS_NOTEPAD_LAST - - -int libc_reentrant; /* do we think we are reentrant? */ -struct _reent libc_global_reent = _REENT_INIT(libc_global_reent);; - -/* - * CYGNUS newlib routine that does atexit() processing and flushes - * stdio streams - * undocumented - */ - -extern void _wrapup_reent(struct _reent *); -extern void _reclaim_reent(struct _reent *); - -void -libc_wrapup(void) -{ - _wrapup_reent(0); - if (_REENT != &libc_global_reent) - { - _wrapup_reent(&libc_global_reent); -#if 0 - /* don't reclaim this one, just in case we do printfs */ - /* on our way out to ROM */ - _reclaim_reent(&libc_global_reent); -#endif - _REENT = &libc_global_reent; - } -} - - -rtems_extension -libc_create_hook(rtems_tcb *current_task, - rtems_tcb *creating_task) -{ - MY_task_set_note(creating_task, LIBC_NOTEPAD, 0); -} - -/* - * Called for all user TASKS (system tasks are SYSI and IDLE) - */ - -rtems_extension -libc_start_hook(rtems_tcb *current_task, - rtems_tcb *starting_task) -{ - struct _reent *ptr; - - /* NOTE: our malloc is reentrant without a reent ptr since - * it is based on region manager - */ - - ptr = (struct _reent *) malloc(sizeof(struct _reent)); - - /* GCC extension: structure constants */ - *ptr = (struct _reent) _REENT_INIT((*ptr)); - - MY_task_set_note(starting_task, LIBC_NOTEPAD, (rtems_unsigned32) ptr); -} - -rtems_extension -libc_switch_hook(rtems_tcb *current_task, - rtems_tcb *heir_task) -{ - rtems_unsigned32 impure_value; - - /* XXX We can't use rtems_task_set_note() here since SYSI task has a - * tid of 0, which is treated specially (optimized, actually) - * by rtems_task_set_note - */ - - impure_value = (rtems_unsigned32) _REENT; - MY_task_set_note(current_task, LIBC_NOTEPAD, impure_value); - - _REENT = (struct _reent *) MY_task_get_note(heir_task, LIBC_NOTEPAD); - -} - -/* - * Function: libc_delete_hook - * Created: 94/12/10 - * - * Description: - * Called when a task is deleted. - * Must restore the new lib reentrancy state for the new current - * task. - * - * Parameters: - * - * - * Returns: - * - * - * Side Effects: - * - * Notes: - * - * - * Deficiencies/ToDo: - * - * - */ -rtems_extension -libc_delete_hook(rtems_tcb *current_task, - rtems_tcb *deleted_task) -{ - struct _reent *ptr; - - /* - * The reentrancy structure was allocated by newlib using malloc() - */ - - if (current_task == deleted_task) - { - ptr = _REENT; - } - else - { - ptr = (struct _reent *) MY_task_get_note(deleted_task, LIBC_NOTEPAD); - } - - if (ptr) - { - _wrapup_reent(ptr); - _reclaim_reent(ptr); - } - - MY_task_set_note(deleted_task, LIBC_NOTEPAD, 0); - - /* - * Require the switch back to another task to install its own - */ - - if (current_task == deleted_task) - { - _REENT = 0; - } -} - -/* - * Function: libc_init - * Created: 94/12/10 - * - * Description: - * Init libc for CYGNUS newlib - * Set up _REENT to use our global libc_global_reent. - * (newlib provides a global of its own, but we prefer our - * own name for it) - * - * If reentrancy is desired (which it should be), then - * we install the task extension hooks to maintain the - * newlib reentrancy global variable _REENT on task - * create, delete, switch, exit, etc. - * - * Parameters: - * reentrant non-zero if reentrant library desired. - * - * Returns: - * - * Side Effects: - * installs libc extensions if reentrant. - * - * Notes: - * - * - * Deficiencies/ToDo: - * - */ - -void -libc_init(int reentrant) -{ - rtems_extensions_table libc_extension; - rtems_id extension_id; - rtems_status_code rc; - - _REENT = &libc_global_reent; - - if (reentrant) - { - memset(&libc_extension, 0, sizeof(libc_extension)); - - libc_extension.rtems_task_create = libc_create_hook; - libc_extension.rtems_task_start = libc_start_hook; - libc_extension.task_switch = libc_switch_hook; - libc_extension.rtems_task_delete = libc_delete_hook; - - rc = rtems_extension_create(rtems_build_name('L', 'I', 'B', 'C'), - &libc_extension, &extension_id); - if (rc != RTEMS_SUCCESSFUL) - rtems_fatal_error_occurred(rc); - - libc_reentrant = reentrant; - } -} - - -void -exit(int status) -{ - libc_wrapup(); - rtems_shutdown_executive(status); -} - - -/* - * Function: _exit - * Created: 94/12/10 - * - * Description: - * Called from exit() after it does atexit() processing and stdio fflush's - * - * called from bottom of exit() to really delete the task. - * If we are using reentrant libc, then let the delete extension - * do all the work, otherwise if a shutdown is in progress, - * then just do it. - * - * Parameters: - * exit status - * - * Returns: - * does not return - * - * Side Effects: - * - * Notes: - * - * - * Deficiencies/ToDo: - * - * - */ - -#ifndef RTEMS_UNIX -void _exit(int status) -{ - rtems_shutdown_executive(status); -} -#endif - -#endif diff --git a/c/src/exec/libcsupport/src/no_libc.c b/c/src/exec/libcsupport/src/no_libc.c deleted file mode 100644 index 43a91eb30e..0000000000 --- a/c/src/exec/libcsupport/src/no_libc.c +++ /dev/null @@ -1,45 +0,0 @@ -#if !defined(RTEMS_LIBC) && !defined(RTEMS_NEWLIB) && !defined(RTEMS_UNIX) - -/* no_libc.h - * - * This file contains stubs for the reentrancy hooks when - * an unknown C library is used. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "libcsupport.h" -#include "internal.h" - -#include /* for free() */ - -void -libc_init(int reentrant) -{ -} - -void libc_suspend_main(void) -{ -} - - -void libc_global_exit(rtems_unsigned32 code) -{ -} - -void _exit(int status) -{ -} - -#endif diff --git a/c/src/exec/libcsupport/src/unixlibc.c b/c/src/exec/libcsupport/src/unixlibc.c deleted file mode 100644 index 74b4eea360..0000000000 --- a/c/src/exec/libcsupport/src/unixlibc.c +++ /dev/null @@ -1,7 +0,0 @@ -#if defined(RTEMS_UNIXLIB) - -void libc_init(int reentrant) -{ -} - -#endif diff --git a/c/src/exec/rtems/headers/asr.h b/c/src/exec/rtems/headers/asr.h deleted file mode 100644 index 44d03f2802..0000000000 --- a/c/src/exec/rtems/headers/asr.h +++ /dev/null @@ -1,177 +0,0 @@ -/* asr.h - * - * This include file contains all the constants and structures associated - * with the Asynchronous Signal Handler. This Handler provides the low-level - * support required by the Signal Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ASR_h -#define __RTEMS_ASR_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * - * The following type defines the control block used to manage - * each signal set. - */ - -typedef unsigned32 rtems_signal_set; - -/* - * Return type for ASR Handler - */ - -typedef void rtems_asr; - -/* - * The following type corresponds to the applications asynchronous - * signal processing routine. - */ - -typedef rtems_asr ( *rtems_asr_entry )( - rtems_signal_set - ); - -/* - * - * The following defines the control structure used to manage - * signals. Each thread has a copy of this record. - */ - -typedef struct { - rtems_asr_entry handler; /* address of RTEMS_ASR */ - rtems_mode mode_set; /* RTEMS_ASR mode */ - rtems_signal_set signals_posted; /* signal set */ - rtems_signal_set signals_pending; /* pending signal set */ - unsigned32 nest_level; /* nest level of RTEMS_ASR */ -} ASR_Information; - -/* - * The following constants define the individual signals which may - * be used to compose a signal set. - */ - -#define RTEMS_SIGNAL_0 0x00000001 -#define RTEMS_SIGNAL_1 0x00000002 -#define RTEMS_SIGNAL_2 0x00000004 -#define RTEMS_SIGNAL_3 0x00000008 -#define RTEMS_SIGNAL_4 0x00000010 -#define RTEMS_SIGNAL_5 0x00000020 -#define RTEMS_SIGNAL_6 0x00000040 -#define RTEMS_SIGNAL_7 0x00000080 -#define RTEMS_SIGNAL_8 0x00000100 -#define RTEMS_SIGNAL_9 0x00000200 -#define RTEMS_SIGNAL_10 0x00000400 -#define RTEMS_SIGNAL_11 0x00000800 -#define RTEMS_SIGNAL_12 0x00001000 -#define RTEMS_SIGNAL_13 0x00002000 -#define RTEMS_SIGNAL_14 0x00004000 -#define RTEMS_SIGNAL_15 0x00008000 -#define RTEMS_SIGNAL_16 0x00010000 -#define RTEMS_SIGNAL_17 0x00020000 -#define RTEMS_SIGNAL_18 0x00040000 -#define RTEMS_SIGNAL_19 0x00080000 -#define RTEMS_SIGNAL_20 0x00100000 -#define RTEMS_SIGNAL_21 0x00200000 -#define RTEMS_SIGNAL_22 0x00400000 -#define RTEMS_SIGNAL_23 0x00800000 -#define RTEMS_SIGNAL_24 0x01000000 -#define RTEMS_SIGNAL_25 0x02000000 -#define RTEMS_SIGNAL_26 0x04000000 -#define RTEMS_SIGNAL_27 0x08000000 -#define RTEMS_SIGNAL_28 0x10000000 -#define RTEMS_SIGNAL_29 0x20000000 -#define RTEMS_SIGNAL_30 0x40000000 -#define RTEMS_SIGNAL_31 0x80000000 - -/* - * _ASR_Initialize - * - * DESCRIPTION: - * - * This routine initializes the given RTEMS_ASR information record. - */ - -STATIC INLINE void _ASR_Initialize ( - ASR_Information *information -); - -/* - * _ASR_Swap_signals - * - * DESCRIPTION: - * - * This routine atomically swaps the pending and posted signal - * sets. This is done when the thread alters its mode in such a - * way that the RTEMS_ASR disable/enable flag changes. - */ - -STATIC INLINE void _ASR_Swap_signals ( - ASR_Information *information -); - -/* - * _ASR_Is_null_handler - * - * DESCRIPTION: - * - * This function returns TRUE if the given asr_handler is NULL and - * FALSE otherwise. - */ - -STATIC INLINE boolean _ASR_Is_null_handler ( - rtems_asr_entry asr_handler -); - -/* - * _ASR_Are_signals_pending - * - * DESCRIPTION: - * - * This function returns TRUE if there are signals pending in the - * given RTEMS_ASR information record and FALSE otherwise. - */ - -STATIC INLINE boolean _ASR_Are_signals_pending ( - ASR_Information *information -); - -/* - * _ASR_Post_signals - * - * DESCRIPTION: - * - * This routine posts the given signals into the signal_set - * passed in. The result is returned to the user in signal_set. - * - * NOTE: This must be implemented as a macro. - */ - -STATIC INLINE void _ASR_Post_signals( - rtems_signal_set signals, - rtems_signal_set *signal_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/attr.h b/c/src/exec/rtems/headers/attr.h deleted file mode 100644 index 1c59c98dcd..0000000000 --- a/c/src/exec/rtems/headers/attr.h +++ /dev/null @@ -1,188 +0,0 @@ -/* attr.h - * - * This include file contains all information about the Object Attributes - * Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ATTRIBUTES_h -#define __RTEMS_ATTRIBUTES_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* types */ - -typedef unsigned32 rtems_attribute; - -/* constants */ - -#define RTEMS_DEFAULT_ATTRIBUTES 0x00000000 - -#define RTEMS_NO_FLOATING_POINT 0x00000000 /* don't use FP HW */ -#define RTEMS_FLOATING_POINT 0x00000001 /* utilize coprocessor */ - -#define RTEMS_LOCAL 0x00000000 /* local resource */ -#define RTEMS_GLOBAL 0x00000002 /* global resource */ - -#define RTEMS_FIFO 0x00000000 /* process RTEMS_FIFO */ -#define RTEMS_PRIORITY 0x00000004 /* process by priority */ - -#define RTEMS_NO_LIMIT 0x00000000 /* unlimited Q entries */ -#define RTEMS_LIMIT 0x00000008 /* limit Q entries */ - -#define RTEMS_COUNTING_SEMAPHORE 0x00000000 -#define RTEMS_BINARY_SEMAPHORE 0x00000010 - -#define RTEMS_NO_INHERIT_PRIORITY 0x00000000 -#define RTEMS_INHERIT_PRIORITY 0x00000020 - -#if ( CPU_HARDWARE_FP == TRUE ) -#define ATTRIBUTES_NOT_SUPPORTED 0 -#else -#define ATTRIBUTES_NOT_SUPPORTED RTEMS_FLOATING_POINT -#endif - -#if ( CPU_ALL_TASKS_ARE_FP == TRUE ) -#define ATTRIBUTES_REQUIRED RTEMS_FLOATING_POINT -#else -#define ATTRIBUTES_REQUIRED 0 -#endif - -/* - * _Attributes_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs initialization for this handler. - * - * NOTE: There is no initialization required in C. Conditional compilation - * takes care of this in C. - */ - -#define _Attributes_Handler_initialization() - -/* - * _Attributes_Set - * - * DESCRIPTION: - * - * This function sets the requested new_attributes in the attribute_set - * passed in. The result is returned to the user. - */ - -STATIC INLINE rtems_attribute _Attributes_Set ( - rtems_attribute new_attributes, - rtems_attribute attribute_set -); - -/* - * _Attributes_Clear - * - * DESCRIPTION: - * - * This function clears the requested new_attributes in the attribute_set - * passed in. The result is returned to the user. - */ - -STATIC INLINE rtems_attribute _Attributes_Clear ( - rtems_attribute attribute_set, - rtems_attribute mask -); - -/* - * _Attributes_Is_floating_point - * - * DESCRIPTION: - * - * This function returns TRUE if the floating point attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_floating_point( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_global - * - * DESCRIPTION: - * - * This function returns TRUE if the global object attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_global( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_priority - * - * DESCRIPTION: - * - * This function returns TRUE if the priority attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_priority( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_limit - * - * DESCRIPTION: - * - * This function returns TRUE if the limited attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_limit( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_binary_semaphore - * - * DESCRIPTION: - * - * This function returns TRUE if the binary semaphore attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_binary_semaphore( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_inherit_priority - * - * DESCRIPTION: - * - * This function returns TRUE if the priority inheritance attribute - * is enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_inherit_priority( - rtems_attribute attribute_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/clock.h b/c/src/exec/rtems/headers/clock.h deleted file mode 100644 index e849ab4f40..0000000000 --- a/c/src/exec/rtems/headers/clock.h +++ /dev/null @@ -1,102 +0,0 @@ -/* clock.h - * - * This include file contains all the constants and structures associated - * with the Clock Manager. This manager provides facilities to set, obtain, - * and continually update the current date and time. - * - * This manager provides directives to: - * - * + set the current date and time - * + obtain the current date and time - * + announce a clock tick - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CLOCK_h -#define __RTEMS_CLOCK_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * List of things which can be returned by the rtems_clock_get directive. - */ - -typedef enum { - RTEMS_CLOCK_GET_TOD, - RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH, - RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, - RTEMS_CLOCK_GET_TICKS_PER_SECOND, - RTEMS_CLOCK_GET_TIME_VALUE -} rtems_clock_get_options; - -/* - * Standard flavor style to return TOD in for a rtems_clock_get option. - */ - -typedef struct { - unsigned32 seconds; - unsigned32 microseconds; -} rtems_clock_time_value; - -/* - * rtems_clock_get - * - * DESCRIPTION: - * - * This routine implements the rtems_clock_get directive. It returns - * one of the following: - * + current time of day - * + seconds since epoch - * + ticks since boot - * + ticks per second - */ - -rtems_status_code rtems_clock_get( - rtems_clock_get_options option, - void *time_buffer -); - -/* - * rtems_clock_set - * - * DESCRIPTION: - * - * This routine implements the rtems_clock_set directive. It sets - * the current time of day to that in the time_buffer record. - */ - -rtems_status_code rtems_clock_set( - rtems_time_of_day *time_buffer -); - -/* - * rtems_clock_tick - * - * DESCRIPTION: - * - * This routine implements the rtems_clock_tick directive. It is invoked - * to inform RTEMS of the occurrence of a clock tick. - */ - -rtems_status_code rtems_clock_tick( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/dpmem.h b/c/src/exec/rtems/headers/dpmem.h deleted file mode 100644 index 669eb394d8..0000000000 --- a/c/src/exec/rtems/headers/dpmem.h +++ /dev/null @@ -1,210 +0,0 @@ -/* dpmem.h - * - * This include file contains all the constants and structures associated - * with the Dual Ported Memory Manager. This manager provides a mechanism - * for converting addresses between internal and external representations - * for multiple dual-ported memory areas. - * - * Directives provided are: - * - * + create a port - * + get ID of a port - * + delete a port - * + convert external to internal address - * + convert internal to external address - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_DUAL_PORTED_MEMORY_h -#define __RTEMS_DUAL_PORTED_MEMORY_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following structure defines the port control block. Each port - * has a control block associated with it. This control block contains - * all information required to support the port related operations. - */ - -typedef struct { - Objects_Control Object; - void *internal_base; /* base internal address */ - void *external_base; /* base external address */ - unsigned32 length; /* length of dual-ported area */ -} Dual_ported_memory_Control; - -/* - * The following define the internal Dual Ported Memory information. - */ - -EXTERN Objects_Information _Dual_ported_memory_Information; - -/* - * _Dual_ported_memory_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Dual_ported_memory_Manager_initialization( - unsigned32 maximum_ports -); - -/* - * rtems_port_create - * - * DESCRIPTION: - * - * This routine implements the rtems_port_create directive. The port - * will have the name name. The port maps onto an area of dual ported - * memory of length bytes which has internal_start and external_start - * as the internal and external starting addresses, respectively. - * It returns the id of the created port in ID. - */ - -rtems_status_code rtems_port_create( - Objects_Name name, - void *internal_start, - void *external_start, - unsigned32 length, - Objects_Id *id -); - -/* - * rtems_port_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_port_ident directive. This directive - * returns the port ID associated with name. If more than one port is - * named name, then the port to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_port_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_port_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_port_delete directive. It deletes - * the port associated with ID. - */ - -rtems_status_code rtems_port_delete( - Objects_Id id -); - -/* - * rtems_port_external_to_internal - * - * DESCRIPTION: - * - * This routine implements the rtems_port_external_to_internal directive. - * It returns the internal port address which maps to the provided - * external port address for the specified port ID. - */ - -rtems_status_code rtems_port_external_to_internal( - Objects_Id id, - void *external, - void **internal -); - -/* - * rtems_port_internal_to_external - * - * DESCRIPTION: - * - * This routine implements the Port_internal_to_external directive. - * It returns the external port address which maps to the provided - * internal port address for the specified port ID. - */ - -rtems_status_code rtems_port_internal_to_external( - Objects_Id id, - void *internal, - void **external -); - -/* - * _Dual_ported_memory_Allocate - * - * DESCRIPTION: - * - * This routine allocates a port control block from the inactive chain - * of free port control blocks. - */ - -STATIC INLINE Dual_ported_memory_Control - *_Dual_ported_memory_Allocate ( void ); - -/* - * _Dual_ported_memory_Free - * - * DESCRIPTION: - * - * This routine frees a port control block to the inactive chain - * of free port control blocks. - */ - -STATIC INLINE void _Dual_ported_memory_Free ( - Dual_ported_memory_Control *the_port -); - -/* - * _Dual_ported_memory_Get - * - * DESCRIPTION: - * - * This function maps port IDs to port control blocks. If ID - * corresponds to a local port, then it returns the_port control - * pointer which maps to ID and location is set to OBJECTS_LOCAL. - * Global ports are not supported, thus if ID does not map to a - * local port, location is set to OBJECTS_ERROR and the_port is - * undefined. - */ - -STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Dual_ported_memory_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_port is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Dual_ported_memory_Is_null( - Dual_ported_memory_Control *the_port -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/event.h b/c/src/exec/rtems/headers/event.h deleted file mode 100644 index aeb71b2abd..0000000000 --- a/c/src/exec/rtems/headers/event.h +++ /dev/null @@ -1,158 +0,0 @@ -/* event.h - * - * This include file contains the information pertaining to the Event - * Manager. This manager provides a high performance method of communication - * and synchronization. - * - * Directives provided are: - * - * + send an event set to a task - * + receive event condition - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EVENT_h -#define __RTEMS_EVENT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * This constant is passed as the event_in to the - * rtems_event_receive directive to determine which events are pending. - */ - -#define EVENT_CURRENT 0 - -/* - * _Event_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -STATIC INLINE void _Event_Manager_initialization( void ); - -/* - * rtems_event_send - * - * DESCRIPTION: - * - * This routine implements the rtems_event_send directive. It sends - * event_in to the task specified by ID. If the task is blocked - * waiting to receive events and the posting of event_in satisfies - * the task's event condition, then it is unblocked. - */ - -rtems_status_code rtems_event_send ( - Objects_Id id, - rtems_event_set event_in -); - -/* - * rtems_event_receive - * - * DESCRIPTION: - * - * This routine implements the rtems_event_receive directive. This - * directive is invoked when the calling task wishes to receive - * the event_in event condition. One of the fields in the option_set - * parameter determines whether the receive request is satisfied if - * any or all of the events are pending. If the event condition - * is not satisfied immediately, then the task may block with an - * optional timeout of TICKS clock ticks or return immediately. - * This determination is based on another field in the option_set - * parameter. This directive returns the events received in the - * event_out parameter. - */ - -rtems_status_code rtems_event_receive ( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks, - rtems_event_set *event_out -); - -/* - * _Event_Seize - * - * DESCRIPTION: - * - * This routine determines if the event condition event_in is - * satisfied. If so or if the no_wait option is enabled in option_set, - * then the procedure returns immediately. If neither of these - * conditions is true, then the calling task is blocked with an - * optional timeout of ticks clock ticks. - */ - -void _Event_Seize ( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks -); - -/* - * _Event_Surrender - * - * DESCRIPTION: - * - * This routine determines if the event condition of the_thread - * has been satisfied. If so, it unblocks the_thread. - */ - -void _Event_Surrender ( - Thread_Control *the_thread -); - -/* - * _Event_Timeout - * - * DESCRIPTION: - * - * This routine is invoked when a task's event receive request - * has not been satisfied after the specified timeout interval. - * The task represented by ID will be unblocked and its status - * code will be set in it's control block to indicate that a timeout - * has occurred. - */ - -void _Event_Timeout ( - Objects_Id id, - void *ignored -); - -/* - * The following defines the synchronization flag used by the - * Event Manager to insure that signals sent to the currently - * executing thread are received properly. - */ - -EXTERN boolean _Event_Sync; /* event manager sync flag */ - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/eventmp.h b/c/src/exec/rtems/headers/eventmp.h deleted file mode 100644 index 9df2ef1e22..0000000000 --- a/c/src/exec/rtems/headers/eventmp.h +++ /dev/null @@ -1,147 +0,0 @@ -/* eventmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Event Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EVENT_MP_h -#define __RTEMS_EVENT_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote event operations. - */ - -typedef enum { - EVENT_MP_SEND_REQUEST = 0, - EVENT_MP_SEND_RESPONSE = 1, -} Event_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote event operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Event_MP_Remote_operations operation; - rtems_event_set event_in; -} Event_MP_Packet; - -/* - * _Event_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - * - * This routine is not needed since there are no process - * packets to be sent by this manager. - */ - -/* - * _Event_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Event_MP_Send_request_packet ( - Event_MP_Remote_operations operation, - Objects_Id event_id, - rtems_event_set event_in -); - -/* - * _Event_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Event_MP_Send_response_packet ( - Event_MP_Remote_operations operation, - Thread_Control *the_thread -); - -/* - * - * _Event_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Event_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Event_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Event_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Event_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a event mp packet. - */ - -Event_MP_Packet *_Event_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/headers/eventset.h b/c/src/exec/rtems/headers/eventset.h deleted file mode 100644 index a25dabe58b..0000000000 --- a/c/src/exec/rtems/headers/eventset.h +++ /dev/null @@ -1,142 +0,0 @@ -/* eventset.h - * - * This include file contains the information pertaining to the - * Event Sets Handler. This handler provides methods for the manipulation - * of event sets which will be sent and received by tasks. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EVENT_SET_h -#define __RTEMS_EVENT_SET_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following defines the type used to control event sets. - */ - -typedef unsigned32 rtems_event_set; - -/* - * The following constants define the individual events which may - * be used to compose an event set. - */ - -#define RTEMS_PENDING_EVENTS 0 /* receive pending events */ -#define RTEMS_ALL_EVENTS 0xFFFFFFFF - -#define RTEMS_EVENT_0 0x00000001 -#define RTEMS_EVENT_1 0x00000002 -#define RTEMS_EVENT_2 0x00000004 -#define RTEMS_EVENT_3 0x00000008 -#define RTEMS_EVENT_4 0x00000010 -#define RTEMS_EVENT_5 0x00000020 -#define RTEMS_EVENT_6 0x00000040 -#define RTEMS_EVENT_7 0x00000080 -#define RTEMS_EVENT_8 0x00000100 -#define RTEMS_EVENT_9 0x00000200 -#define RTEMS_EVENT_10 0x00000400 -#define RTEMS_EVENT_11 0x00000800 -#define RTEMS_EVENT_12 0x00001000 -#define RTEMS_EVENT_13 0x00002000 -#define RTEMS_EVENT_14 0x00004000 -#define RTEMS_EVENT_15 0x00008000 -#define RTEMS_EVENT_16 0x00010000 -#define RTEMS_EVENT_17 0x00020000 -#define RTEMS_EVENT_18 0x00040000 -#define RTEMS_EVENT_19 0x00080000 -#define RTEMS_EVENT_20 0x00100000 -#define RTEMS_EVENT_21 0x00200000 -#define RTEMS_EVENT_22 0x00400000 -#define RTEMS_EVENT_23 0x00800000 -#define RTEMS_EVENT_24 0x01000000 -#define RTEMS_EVENT_25 0x02000000 -#define RTEMS_EVENT_26 0x04000000 -#define RTEMS_EVENT_27 0x08000000 -#define RTEMS_EVENT_28 0x10000000 -#define RTEMS_EVENT_29 0x20000000 -#define RTEMS_EVENT_30 0x40000000 -#define RTEMS_EVENT_31 0x80000000 - - -/* - * The following constant is the value of an event set which - * has no events pending. - */ - -#define EVENT_SETS_NONE_PENDING 0 - -/* - * _Event_sets_Is_empty - * - * DESCRIPTION: - * - * This function returns TRUE if on events are posted in the event_set, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Event_sets_Is_empty( - rtems_event_set the_event_set -); - -/* - * _Event_sets_Post - * - * DESCRIPTION: - * - * This routine posts the given new_events into the event_set - * passed in. The result is returned to the user in event_set. - */ - -STATIC INLINE void _Event_sets_Post( - rtems_event_set the_new_events, - rtems_event_set *the_event_set -); - -/* - * _Event_sets_Get - * - * DESCRIPTION: - * - * This function returns the events in event_condition which are - * set in event_set. - */ - -STATIC INLINE rtems_event_set _Event_sets_Get( - rtems_event_set the_event_set, - rtems_event_set the_event_condition -); - -/* - * _Event_sets_Clear - * - * DESCRIPTION: - * - * This function removes the events in mask from the event_set - * passed in. The result is returned to the user in event_set. - */ - -STATIC INLINE rtems_event_set _Event_sets_Clear( - rtems_event_set the_event_set, - rtems_event_set the_mask -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/intr.h b/c/src/exec/rtems/headers/intr.h deleted file mode 100644 index 3669af1ccc..0000000000 --- a/c/src/exec/rtems/headers/intr.h +++ /dev/null @@ -1,125 +0,0 @@ -/* intr.h - * - * This include file contains all the constants and structures associated - * with the Interrupt Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_INTERRUPT_h -#define __RTEMS_INTERRUPT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * Interrupt level type - */ - -typedef ISR_Level rtems_interrupt_level; - -/* - * _Interrupt_Manager_initialization - * - * DESCRIPTION: - * - * This routine initializes the interrupt manager. - * - */ - -void _Interrupt_Manager_initialization( void ); - -/* - * rtems_interrupt_catch - * - * DESCRIPTION: - * - * This routine implements the rtems_interrupt_catch directive. This - * directive installs new_isr_handler as the RTEMS interrupt service - * routine for vector. The previous RTEMS interrupt service - * routine is returned in old_isr_handler. - */ - -rtems_status_code rtems_interrupt_catch( - rtems_isr_entry new_isr_handler, - rtems_vector_number vector, - rtems_isr_entry *old_isr_handler -); - -/* - * rtems_interrupt_disable - * - * DESCRIPTION: - * - * This routine disables all maskable interrupts and returns the - * previous level in _isr_cookie. - */ - -#define rtems_interrupt_disable( _isr_cookie ) \ - _ISR_Disable(_isr_cookie) - -/* - * rtems_interrupt_enable - * - * DESCRIPTION: - * - * This routine enables maskable interrupts to the level indicated - * _isr_cookie. - */ - -#define rtems_interrupt_enable( _isr_cookie ) \ - _ISR_Enable(_isr_cookie) - -/* - * rtems_interrupt_flash - * - * DESCRIPTION: - * - * This routine temporarily enables maskable interrupts to the - * level in _isr_cookie before redisabling them. - */ - -#define rtems_interrupt_flash( _isr_cookie ) \ - _ISR_Flash(_isr_cookie) - -/* - * rtems_interrupt_cause - * - * DESCRIPTION: - * - * This routine generates an interrupt. - * - * NOTE: No implementation. - */ - -#define rtems_interrupt_cause( _interrupt_to_cause ) - -/* - * rtems_interrupt_cause - * - * DESCRIPTION: - * - * This routine clears the specified interrupt. - * - * NOTE: No implementation. - */ - -#define rtems_interrupt_clear( _interrupt_to_clear ) - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/message.h b/c/src/exec/rtems/headers/message.h deleted file mode 100644 index aefcea3c36..0000000000 --- a/c/src/exec/rtems/headers/message.h +++ /dev/null @@ -1,461 +0,0 @@ -/* message.h - * - * This include file contains all the constants and structures associated - * with the Message Queue Manager. This manager provides a mechanism for - * communication and synchronization between tasks using messages. - * - * Directives provided are: - * - * + create a queue - * + get ID of a queue - * + delete a queue - * + put a message at the rear of a queue - * + put a message at the front of a queue - * + broadcast N messages to a queue - * + receive message from a queue - * + flush all messages on a queue - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MESSAGE_QUEUE_h -#define __RTEMS_MESSAGE_QUEUE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following defines the data types needed to manipulate - * the contents of message buffers. - */ - -typedef struct { - unsigned32 field1; - unsigned32 field2; - unsigned32 field3; - unsigned32 field4; -} Message_queue_Buffer; - -/* - * The following records define the organization of a message - * buffer. - */ - -typedef struct { - Chain_Node Node; - Message_queue_Buffer Contents; -} Message_queue_Buffer_control; - -/* - * The following records define the control block used to manage - * each message queue. - */ - -typedef struct { - Objects_Control Object; - Thread_queue_Control Wait_queue; - rtems_attribute attribute_set; - unsigned32 maximum_pending_messages; - unsigned32 number_of_pending_messages; - Chain_Control Pending_messages; -} Message_queue_Control; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Message_queue_Information; - -/* - * The following defines the data structures used to - * manage the pool of inactive message buffers. - */ - -EXTERN Chain_Control _Message_queue_Inactive_messages; - -/* - * The following enumerated type details the modes in which a message - * may be submitted to a message queue. The message may be posted - * in a send or urgent fashion. - */ - -typedef enum { - MESSAGE_QUEUE_SEND_REQUEST = 0, - MESSAGE_QUEUE_URGENT_REQUEST = 1 -} Message_queue_Submit_types; - -/* - * _Message_queue_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Message_queue_Manager_initialization( - unsigned32 maximum_message_queues, - unsigned32 maximum_messages -); - -/* - * rtems_message_queue_create - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_create directive. The - * message queue will have the name name. If the attribute_set indicates - * that the message queue is to be limited in the number of messages - * that can be outstanding, then count indicates the maximum number of - * messages that will be held. It returns the id of the created - * message queue in ID. - */ - -rtems_status_code rtems_message_queue_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_message_queue_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_ident directive. - * This directive returns the message queue ID associated with NAME. - * If more than one message queue is named name, then the message - * queue to which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the message queue named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_message_queue_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_message_queue_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_delete directive. The - * message queue indicated by ID is deleted. - */ - -rtems_status_code rtems_message_queue_delete( - Objects_Id id -); - -/* - * rtems_message_queue_send - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_send directive. - * This directive sends the message buffer to the message queue - * indicated by ID. If one or more tasks is blocked waiting - * to receive a message from this message queue, then one will - * receive the message. The task selected to receive the - * message is based on the task queue discipline algorithm in - * use by this particular message queue. If no tasks are waiting, - * then the message buffer will be placed at the rear of the - * chain of pending messages for this message queue. - */ - -rtems_status_code rtems_message_queue_send( - Objects_Id id, - void *buffer -); - -/* - * rtems_message_queue_urgent - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_send directive. - * This directive sends the message buffer to the message queue - * indicated by ID. If one or more tasks is blocked waiting - * to receive a message from this message queue, then one will - * receive the message. The task selected to receive the - * message is based on the task queue discipline algorithm in - * use by this particular message queue. If no tasks are waiting, - * then the message buffer will be placed at the rear of the - * chain of pending messages for this message queue. - */ - -rtems_status_code rtems_message_queue_urgent( - Objects_Id id, - void *buffer -); - -/* - * rtems_message_queue_broadcast - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_send directive. - * This directive sends the message buffer to the message queue - * indicated by ID. If one or more tasks is blocked waiting - * to receive a message from this message queue, then one will - * receive the message. The task selected to receive the - * message is based on the task queue discipline algorithm in - * use by this particular message queue. If no tasks are waiting, - * then the message buffer will be placed at the rear of the - * chain of pending messages for this message queue. - */ - -rtems_status_code rtems_message_queue_broadcast( - Objects_Id id, - void *buffer, - unsigned32 *count -); - -/* - * rtems_message_queue_receive - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_receive directive. - * This directive is invoked when the calling task wishes to receive - * a message from the message queue indicated by ID. The received - * message is to be placed in buffer. If no messages are outstanding - * and the option_set indicates that the task is willing to block, - * then the task will be blocked until a message arrives or until, - * optionally, timeout clock ticks have passed. - */ - -rtems_status_code rtems_message_queue_receive( - Objects_Id id, - void *buffer, - unsigned32 option_set, - rtems_interval timeout -); - -/* - * rtems_message_queue_flush - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_flush directive. - * This directive takes all outstanding messages for the message - * queue indicated by ID and returns them to the inactive message - * chain. The number of messages flushed is returned in COUNT. - */ - -rtems_status_code rtems_message_queue_flush( - Objects_Id id, - unsigned32 *count -); - -/* - * _Message_queue_Copy_buffer - * - * DESCRIPTION: - * - * This routine copies the contents of the source message buffer - * to the destination message buffer. - */ - -STATIC INLINE void _Message_queue_Copy_buffer ( - Message_queue_Buffer *source, - Message_queue_Buffer *destination -); - -/* - * _Message_queue_Seize - * - * DESCRIPTION: - * - * This routine attempts to receive a message from the_message_queue. - * If a message is available or if the RTEMS_NO_WAIT option is enabled in - * option_set, then the routine returns. Otherwise, the calling task - * is blocked until a message is available. If a message is returned - * to the task, then buffer will contain its contents. - */ - -boolean _Message_queue_Seize( - Message_queue_Control *the_message_queue, - unsigned32 option_set, - Message_queue_Buffer *buffer -); - -/* - * _Message_queue_Flush_support - * - * DESCRIPTION: - * - * This routine flushes all outstanding messages and returns - * them to the inactive message chain. - */ - -unsigned32 _Message_queue_Flush_support( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Submit - * - * DESCRIPTION: - * - * This routine provides the common foundation for the - * rtems_message_queue_send and rtems_message_queue_urgent directives. - */ - -rtems_status_code _Message_queue_Submit( - Objects_Id id, - Message_queue_Buffer *buffer, - Message_queue_Submit_types submit_type -); - -/* - * _Message_queue_Allocate_message_buffer - * - * DESCRIPTION: - * - * This function allocates a message buffer from the inactive - * message buffer chain. - */ - -STATIC INLINE Message_queue_Buffer_control * - _Message_queue_Allocate_message_buffer ( void ); - -/* - * _Message_queue_Free_message_buffer - * - * DESCRIPTION: - * - * This routine frees a message buffer to the inactive - * message buffer chain. - */ - -STATIC INLINE void _Message_queue_Free_message_buffer ( - Message_queue_Buffer_control *the_message -); - -/* - * _Message_queue_Get_pending_message - * - * DESCRIPTION: - * - * This function removes the first message from the_message_queue - * and returns a pointer to it. - */ - -STATIC INLINE - Message_queue_Buffer_control *_Message_queue_Get_pending_message ( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Append - * - * DESCRIPTION: - * - * This routine places the_message at the rear of the outstanding - * messages on the_message_queue. - */ - -STATIC INLINE void _Message_queue_Append ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -); - -/* - * _Message_queue_Prepend - * - * DESCRIPTION: - * - * This routine places the_message at the rear of the outstanding - * messages on the_message_queue. - */ - -STATIC INLINE void _Message_queue_Prepend ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -); - -/* - * _Message_queue_Is_null - * - * DESCRIPTION: - * - * This function places the_message at the rear of the outstanding - * messages on the_message_queue. - */ - -STATIC INLINE boolean _Message_queue_Is_null ( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Allocate - * - * DESCRIPTION: - * - * This function allocates a message queue control block from - * the inactive chain of free message queue control blocks. - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Allocate ( void ); - -/* - * _Message_queue_Free - * - * DESCRIPTION: - * - * This routine allocates a message queue control block from - * the inactive chain of free message queue control blocks. - */ - -STATIC INLINE void _Message_queue_Free ( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Get - * - * DESCRIPTION: - * - * This function maps message queue IDs to message queue control - * blocks. If ID corresponds to a local message queue, then it - * returns the_message_queue control pointer which maps to ID - * and location is set to OBJECTS_LOCAL. If the message queue ID is - * global and resides on a remote node, then location is set - * to OBJECTS_REMOTE, and the_message_queue is undefined. - * Otherwise, location is set to OBJECTS_ERROR and - * the_message_queue is undefined. - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Get ( - Objects_Id id, - Objects_Locations *location -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/modes.h b/c/src/exec/rtems/headers/modes.h deleted file mode 100644 index 9e714591ab..0000000000 --- a/c/src/exec/rtems/headers/modes.h +++ /dev/null @@ -1,183 +0,0 @@ -/* modes.h - * - * This include file contains all constants and structures associated - * with the RTEMS thread and RTEMS_ASR modes. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MODES_h -#define __RTEMS_MODES_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the control block used to manage - * each a mode set. - */ - -typedef unsigned32 rtems_mode; - -/* - * The following constants define the individual modes and masks - * which may be used to compose a mode set and to alter modes. - */ - -#define RTEMS_ALL_MODE_MASKS 0x0000ffff - -#define RTEMS_DEFAULT_MODES 0x00000000 -#define RTEMS_CURRENT_MODE 0 - -#define RTEMS_PREEMPT_MASK 0x00000100 /* preemption bit */ -#define RTEMS_TIMESLICE_MASK 0x00000200 /* timeslice bit */ -#define RTEMS_ASR_MASK 0x00000400 /* RTEMS_ASR enable bit */ -#define RTEMS_INTERRUPT_MASK CPU_MODES_INTERRUPT_MASK - -#define RTEMS_PREEMPT 0x00000000 /* enable preemption */ -#define RTEMS_NO_PREEMPT 0x00000100 /* disable preemption */ - -#define RTEMS_NO_TIMESLICE 0x00000000 /* disable timeslicing */ -#define RTEMS_TIMESLICE 0x00000200 /* enable timeslicing */ - -#define RTEMS_ASR 0x00000000 /* enable RTEMS_ASR */ -#define RTEMS_NO_ASR 0x00000400 /* disable RTEMS_ASR */ - -/* - * The number of bits for interrupt levels is CPU dependent. - * RTEMS supports 0 to 256 levels in bits 0-7 of the mode. - */ - -/* - * RTEMS_INTERRUPT_LEVEL - * - * DESCRIPTION: - * - * This function returns the processor dependent interrupt - * level which corresponds to the requested interrupt level. - * - * NOTE: RTEMS supports 256 interrupt levels using the least - * significant eight bits of MODES.CONTROL. On any - * particular CPU, fewer than 256 levels may be supported. - */ - -STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL ( - rtems_mode mode_set -); - -/* - * _Modes_Mask_changed - * - * DESCRIPTION: - * - * This function returns TRUE if any of the mode flags in mask - * are set in mode_set, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Mask_changed ( - rtems_mode mode_set, - rtems_mode masks -); - -/* - * _Modes_Is_asr_disabled - * - * DESCRIPTION: - * - * This function returns TRUE if mode_set indicates that Asynchronous - * Signal Processing is disabled, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Is_asr_disabled ( - rtems_mode mode_set -); - -/* - * _Modes_Is_preempt - * - * DESCRIPTION: - * - * This function returns TRUE if mode_set indicates that preemption - * is enabled, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Is_preempt ( - rtems_mode mode_set -); - -/* - * _Modes_Is_timeslice - * - * DESCRIPTION: - * - * This function returns TRUE if mode_set indicates that timeslicing - * is enabled, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Is_timeslice ( - rtems_mode mode_set -); - -/* - * _Modes_Get_interrupt_level - * - * DESCRIPTION: - * - * This function returns the interrupt level portion of the mode_set. - */ - -STATIC INLINE ISR_Level _Modes_Get_interrupt_level ( - rtems_mode mode_set -); - -/* - * _Modes_Set_interrupt_level - * - * DESCRIPTION: - * - * This routine sets the current interrupt level to that specified - * in the mode_set. - */ - -STATIC INLINE void _Modes_Set_interrupt_level ( - rtems_mode mode_set -); - -/* - * _Modes_Change - * - * DESCRIPTION: - * - * This routine changes the modes in old_mode_set indicated by - * mask to the requested values in new_mode_set. The resulting - * mode set is returned in out_mode_set and the modes that changed - * is returned in changed. - */ - -STATIC INLINE void _Modes_Change ( - rtems_mode old_mode_set, - rtems_mode new_mode_set, - rtems_mode mask, - rtems_mode *out_mode_set, - rtems_mode *changed -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/mp.h b/c/src/exec/rtems/headers/mp.h deleted file mode 100644 index 96147d3b44..0000000000 --- a/c/src/exec/rtems/headers/mp.h +++ /dev/null @@ -1,67 +0,0 @@ -/* mp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MP_h -#define __RTEMS_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * - * _Multiprocessing_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Multiprocessing_Manager_initialization ( void ); - -/* - * - * rtems_multiprocessing_announce - * - * DESCRIPTION: - * - * This routine implements the MULTIPROCESSING_ANNOUNCE directive. - * It is invoked by the MPCI layer to indicate that an MPCI packet - * has been received. - */ - -void rtems_multiprocessing_announce ( void ); - -/* - * - * _Multiprocessing_Receive_server - * - * DESCRIPTION: - * - * This routine is a server thread which processes remote requests - * from other nodes. - */ - -Thread _Multiprocessing_Receive_server ( - Thread_Argument ignored -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/msgmp.h b/c/src/exec/rtems/headers/msgmp.h deleted file mode 100644 index 486bf00002..0000000000 --- a/c/src/exec/rtems/headers/msgmp.h +++ /dev/null @@ -1,175 +0,0 @@ -/* msgmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Message Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MESSAGE_QUEUE_MP_h -#define __RTEMS_MESSAGE_QUEUE_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote message queue operations. - */ - -typedef enum { - MESSAGE_QUEUE_MP_ANNOUNCE_CREATE = 0, - MESSAGE_QUEUE_MP_ANNOUNCE_DELETE = 1, - MESSAGE_QUEUE_MP_EXTRACT_PROXY = 2, - MESSAGE_QUEUE_MP_RECEIVE_REQUEST = 3, - MESSAGE_QUEUE_MP_RECEIVE_RESPONSE = 4, - MESSAGE_QUEUE_MP_SEND_REQUEST = 5, - MESSAGE_QUEUE_MP_SEND_RESPONSE = 6, - MESSAGE_QUEUE_MP_URGENT_REQUEST = 7, - MESSAGE_QUEUE_MP_URGENT_RESPONSE = 8, - MESSAGE_QUEUE_MP_BROADCAST_REQUEST = 9, - MESSAGE_QUEUE_MP_BROADCAST_RESPONSE = 10, - MESSAGE_QUEUE_MP_FLUSH_REQUEST = 11, - MESSAGE_QUEUE_MP_FLUSH_RESPONSE = 12 -} Message_queue_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote message queue operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Message_queue_MP_Remote_operations operation; - Objects_Name name; - rtems_option option_set; - Objects_Id proxy_id; - unsigned32 count; - unsigned32 pad0; - unsigned32 pad1; - unsigned32 pad2; - Message_queue_Buffer Buffer; -} Message_queue_MP_Packet; - -/* - * _Message_queue_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Message_queue_MP_Send_process_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Message_queue_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Message_queue_MP_Send_request_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Message_queue_Buffer *buffer, - rtems_option option_set, - rtems_interval timeout -); - -/* - * _Message_queue_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Message_queue_MP_Send_response_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Thread_Control *the_thread -); - -/* - * - * _Message_queue_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Message_queue_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Message_queue_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - */ - -void _Message_queue_MP_Send_object_was_deleted ( - Thread_Control *the_proxy -); - -/* - * _Message_queue_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Message_queue_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Message_queue_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a message queue mp packet. - */ - -Message_queue_MP_Packet *_Message_queue_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/headers/options.h b/c/src/exec/rtems/headers/options.h deleted file mode 100644 index b318aad8c9..0000000000 --- a/c/src/exec/rtems/headers/options.h +++ /dev/null @@ -1,79 +0,0 @@ -/* options.h - * - * This include file contains information which defines the - * options available on many directives. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_OPTIONS_h -#define __RTEMS_OPTIONS_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage - * option sets. - */ - -typedef unsigned32 rtems_option; - -/* - * The following constants define the individual options which may - * be used to compose an option set. - */ - -#define RTEMS_DEFAULT_OPTIONS 0x00000000 - -#define RTEMS_WAIT 0x00000000 /* wait on resource */ -#define RTEMS_NO_WAIT 0x00000001 /* do not wait on resource */ - -#define RTEMS_EVENT_ALL 0x00000000 /* wait for all events */ -#define RTEMS_EVENT_ANY 0x00000002 /* wait on any event */ - -/* - * _Options_Is_no_wait - * - * DESCRIPTION: - * - * This function returns TRUE if the RTEMS_NO_WAIT option is enabled in - * option_set, and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Options_Is_no_wait ( - rtems_option option_set -); - -/* - * _Options_Is_any - * - * DESCRIPTION: - * - * This function returns TRUE if the RTEMS_EVENT_ANY option is enabled in - * OPTION_SET, and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Options_Is_any ( - rtems_option option_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/part.h b/c/src/exec/rtems/headers/part.h deleted file mode 100644 index e639029dc8..0000000000 --- a/c/src/exec/rtems/headers/part.h +++ /dev/null @@ -1,290 +0,0 @@ -/* partition.h - * - * This include file contains all the constants and structures associated - * with the Partition Manager. This manager provides facilities to - * dynamically allocate memory in fixed-sized units which are returned - * as buffers. - * - * Directives provided are: - * - * + create a partition - * + get an ID of a partition - * + delete a partition - * + get a buffer from a partition - * + return a buffer to a partition - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_PARTITION_h -#define __RTEMS_PARTITION_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following defines the control block used to manage each partition. - */ - -typedef struct { - Objects_Control Object; - void *starting_address; /* physical address */ - unsigned32 length; /* in bytes */ - unsigned32 buffer_size; /* in bytes */ - rtems_attribute attribute_set; /* attributes */ - unsigned32 number_of_used_blocks; /* or allocated buffers */ - Chain_Control Memory; /* buffer chain */ -} Partition_Control; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Partition_Information; - -/* - * _Partition_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Partition_Manager_initialization( - unsigned32 maximum_partitions -); - -/* - * rtems_partition_create - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_create directive. The - * partition will have the name name. The memory area managed by - * the partition is of length bytes and starts at starting_address. - * The memory area will be divided into as many buffers of - * buffer_size bytes as possible. The attribute_set determines if - * the partition is global or local. It returns the id of the - * created partition in ID. - */ - -rtems_status_code rtems_partition_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 buffer_size, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_partition_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_ident directive. - * This directive returns the partition ID associated with name. - * If more than one partition is named name, then the partition - * to which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the partition named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_partition_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_partition_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_delete directive. The - * partition indicated by ID is deleted. - */ - -rtems_status_code rtems_partition_delete( - Objects_Id id -); - -/* - * rtems_partition_get_buffer - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_get_buffer directive. It - * attempts to allocate a buffer from the partition associated with ID. - * If a buffer is allocated, its address is returned in buffer. - */ - -rtems_status_code rtems_partition_get_buffer( - Objects_Id id, - void **buffer -); - -/* - * rtems_partition_return_buffer - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_return_buffer directive. It - * frees the buffer to the partition associated with ID. The buffer must - * have been previously allocated from the same partition. - */ - -rtems_status_code rtems_partition_return_buffer( - Objects_Id id, - void *buffer -); - -/* - * _Partition_Allocate_buffer - * - * DESCRIPTION: - * - * This function attempts to allocate a buffer from the_partition. - * If successful, it returns the address of the allocated buffer. - * Otherwise, it returns NULL. - */ - -STATIC INLINE void *_Partition_Allocate_buffer ( - Partition_Control *the_partition -); - -/* - * _Partition_Free_buffer - * - * DESCRIPTION: - * - * This routine frees the_buffer to the_partition. - */ - -STATIC INLINE void _Partition_Free_buffer ( - Partition_Control *the_partition, - Chain_Node *the_buffer -); - -/* - * _Partition_Is_buffer_on_boundary - * - * DESCRIPTION: - * - * This function returns TRUE if the_buffer is on a valid buffer - * boundary for the_partition, and FALSE otherwise. - */ - -STATIC INLINE boolean _Partition_Is_buffer_on_boundary ( - void *the_buffer, - Partition_Control *the_partition -); - -/* - * _Partition_Is_buffer_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the_buffer is a valid buffer from - * the_partition, otherwise FALSE is returned. - */ - -STATIC INLINE boolean _Partition_Is_buffer_valid ( - Chain_Node *the_buffer, - Partition_Control *the_partition -); - -/* - * _Partition_Is_buffer_size_aligned - * - * DESCRIPTION: - * - * This function returns TRUE if the use of the specified buffer_size - * will result in the allocation of buffers whose first byte is - * properly aligned, and FALSE otherwise. - */ - -STATIC INLINE boolean _Partition_Is_buffer_size_aligned ( - unsigned32 buffer_size -); - -/* - * _Partition_Allocate - * - * DESCRIPTION: - * - * This function allocates a partition control block from - * the inactive chain of free partition control blocks. - */ - -STATIC INLINE Partition_Control *_Partition_Allocate ( void ); - -/* - * _Partition_Free - * - * DESCRIPTION: - * - * This routine frees a partition control block to the - * inactive chain of free partition control blocks. - */ - -STATIC INLINE void _Partition_Free ( - Partition_Control *the_partition -); - -/* - * _Partition_Get - * - * DESCRIPTION: - * - * This function maps partition IDs to partition control blocks. - * If ID corresponds to a local partition, then it returns - * the_partition control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. If the partition ID is global and - * resides on a remote node, then location is set to OBJECTS_REMOTE, - * and the_partition is undefined. Otherwise, location is set - * to OBJECTS_ERROR and the_partition is undefined. - */ - -STATIC INLINE Partition_Control *_Partition_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Partition_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_partition is NULL - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Partition_Is_null ( - Partition_Control *the_partition -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/partmp.h b/c/src/exec/rtems/headers/partmp.h deleted file mode 100644 index deacaf7bd1..0000000000 --- a/c/src/exec/rtems/headers/partmp.h +++ /dev/null @@ -1,160 +0,0 @@ -/* partmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Partition Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_PARTITION_MP_h -#define __RTEMS_PARTITION_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote partition operations. - */ - -typedef enum { - PARTITION_MP_ANNOUNCE_CREATE = 0, - PARTITION_MP_ANNOUNCE_DELETE = 1, - PARTITION_MP_EXTRACT_PROXY = 2, - PARTITION_MP_GET_BUFFER_REQUEST = 3, - PARTITION_MP_GET_BUFFER_RESPONSE = 4, - PARTITION_MP_RETURN_BUFFER_REQUEST = 5, - PARTITION_MP_RETURN_BUFFER_RESPONSE = 6, -} Partition_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote partition operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Partition_MP_Remote_operations operation; - Objects_Name name; - void *buffer; - Objects_Id proxy_id; -} Partition_MP_Packet; - -/* - * _Partition_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Partition_MP_Send_process_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Partition_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Partition_MP_Send_request_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - void *buffer -); - -/* - * _Partition_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Partition_MP_Send_response_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - Thread_Control *the_thread -); - -/* - * - * _Partition_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Partition_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Partition_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed by the Partition since a partition - * cannot be deleted when buffers are in use. - */ - -/* - * _Partition_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Partition_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Partition_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a partition mp packet. - */ - -Partition_MP_Packet *_Partition_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/headers/ratemon.h b/c/src/exec/rtems/headers/ratemon.h deleted file mode 100644 index 86acfb9a38..0000000000 --- a/c/src/exec/rtems/headers/ratemon.h +++ /dev/null @@ -1,285 +0,0 @@ -/* ratemon.h - * - * This include file contains all the constants, structures, and - * prototypes associated with the Rate Monotonic Manager. This manager - * provides facilities to implement tasks which execute in a periodic fashion. - * - * Directives provided are: - * - * + create a rate monotonic timer - * + cancel a period - * + delete a rate monotonic timer - * + conclude current and start the next period - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RATE_MONOTONIC_h -#define __RTEMS_RATE_MONOTONIC_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type defines the states in which a - * period may be. - */ - -typedef enum { - RATE_MONOTONIC_INACTIVE, /* off chain, never initialized */ - RATE_MONOTONIC_ACTIVE, /* on chain, running continuously */ - RATE_MONOTONIC_EXPIRED /* off chain, will be reset by next rm_period */ -} Rate_Monotonic_Period_states; - -/* - * The following constant is the interval passed to the rate_monontonic_period - * directive to obtain status information. - */ - -#define RTEMS_PERIOD_STATUS RTEMS_NO_TIMEOUT - -/* - * The following structure defines the control block used to manage - * each period. - */ - -typedef struct { - Objects_Control Object; - Watchdog_Control Timer; - Rate_Monotonic_Period_states state; - Thread_Control *owner; -} Rate_monotonic_Control; - -EXTERN Objects_Information _Rate_monotonic_Information; - -/* - * _Rate_monotonic_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Rate_monotonic_Manager_initialization( - unsigned32 maximum_periods -); - -/* - * rtems_rate_monotonic_create - * - * DESCRIPTION: - * - * This routine implements the rate_monotonic_create directive. The - * period will have the name name. It returns the id of the - * created period in ID. - */ - -rtems_status_code rtems_rate_monotonic_create( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_rate_monotonic_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_ident directive. - * This directive returns the period ID associated with name. - * If more than one period is named name, then the period - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_rate_monotonic_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_rate_monotonic_cancel - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_cancel directive. This - * directive stops the period associated with ID from continuing to - * run. - */ - -rtems_status_code rtems_rate_monotonic_cancel( - Objects_Id id -); - -/* - * rtems_rate_monotonic_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_delete directive. The - * period indicated by ID is deleted. - */ - -rtems_status_code rtems_rate_monotonic_delete( - Objects_Id id -); - -/* - * rtems_rate_monotonic_period - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_period directive. When - * length is non-zero, this directive initiates the period associated with - * ID from continuing for a period of length. If length is zero, then - * result is set to indicate the current state of the period. - */ - -rtems_status_code rtems_rate_monotonic_period( - Objects_Id id, - rtems_interval length -); - -/* - * _Rate_monotonic_Allocate - * - * DESCRIPTION: - * - * This function allocates a period control block from - * the inactive chain of free period control blocks. - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void ); - -/* - * _Rate_monotonic_Free - * - * DESCRIPTION: - * - * This routine allocates a period control block from - * the inactive chain of free period control blocks. - */ - -STATIC INLINE void _Rate_monotonic_Free ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Get - * - * DESCRIPTION: - * - * This function maps period IDs to period control blocks. - * If ID corresponds to a local period, then it returns - * the_period control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the_period is undefined. - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Rate_monotonic_Set_state - * - * DESCRIPTION: - * - * This function blocks the calling task so that it is waiting for - * a period to expire. It returns TRUE if the task was successfully - * blocked, and FALSE otherwise. - */ - -boolean _Rate_monotonic_Set_state( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Timeout - * - * DESCRIPTION: - * - * This routine is invoked when the period represented - * by ID expires. If the task which owns this period is blocked - * waiting for the period to expire, then it is readied and the - * period is restarted. If the owning task is not waiting for the - * period to expire, then the period is placed in the EXPIRED - * state and not restarted. - */ - -void _Rate_monotonic_Timeout ( - Objects_Id id, - void *ignored -); - -/* - * _Rate_monotonic_Is_active - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is in the ACTIVE state, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_active ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Is_inactive - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is in the ACTIVE state, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_inactive ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Is_expired - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is in the EXPIRED state, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_expired ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_null ( - Rate_monotonic_Control *the_period -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/region.h b/c/src/exec/rtems/headers/region.h deleted file mode 100644 index c31e193c33..0000000000 --- a/c/src/exec/rtems/headers/region.h +++ /dev/null @@ -1,311 +0,0 @@ -/* region.h - * - * This include file contains all the constants and structures associated - * with the Region Manager. This manager provides facilities to dynamically - * allocate memory in variable sized units which are returned as segments. - * - * Directives provided are: - * - * + create a region - * + get an ID of a region - * + delete a region - * + get a segment from a region - * + return a segment to a region - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_REGION_h -#define __RTEMS_REGION_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include - -/* - * The following records define the control block used to manage - * each region. - */ - -typedef struct { - Objects_Control Object; - Thread_queue_Control Wait_queue; /* waiting threads */ - void *starting_address; /* physical start addr */ - unsigned32 length; /* physical length(bytes) */ - unsigned32 page_size; /* in bytes */ - unsigned32 maximum_segment_size; /* in bytes */ - rtems_attribute attribute_set; - unsigned32 number_of_used_blocks; /* blocks allocated */ - Heap_Control Memory; -} Region_Control; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Region_Information; - -/* - * _Region_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Region_Manager_initialization( - unsigned32 maximum_regions -); - -/* - * rtems_region_create - * - * DESCRIPTION: - * - * This routine implements the rtems_region_create directive. The - * region will have the name name. The memory area managed by - * the region is of length bytes and starts at starting_address. - * The memory area will be divided into as many allocatable units of - * page_size bytes as possible. The attribute_set determines which - * thread queue discipline is used by the region. It returns the - * id of the created region in ID. - */ - -rtems_status_code rtems_region_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 page_size, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_region_extend - * - * DESCRIPTION: - * - * This routine implements the rtems_region_extend directive. The - * region will have the name name. The memory area managed by - * the region will be attempted to be grown by length bytes using - * the memory starting at starting_address. - */ - -rtems_status_code rtems_region_extend( - Objects_Id id, - void *starting_address, - unsigned32 length -); - -/* - * rtems_region_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_region_ident directive. - * This directive returns the region ID associated with name. - * If more than one region is named name, then the region - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_region_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_region_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_region_delete directive. The - * region indicated by ID is deleted. - */ - -rtems_status_code rtems_region_delete( - Objects_Id id -); - -/* - * rtems_region_get_segment - * - * DESCRIPTION: - * - * This routine implements the rtems_region_get_segment directive. It - * attempts to allocate a segment from the region associated with ID. - * If a segment of the requested size can be allocated, its address - * is returned in segment. If no segment is available, then the task - * may return immediately or block waiting for a segment with an optional - * timeout of timeout clock ticks. Whether the task blocks or returns - * immediately is based on the no_wait option in the option_set. - */ - -rtems_status_code rtems_region_get_segment( - Objects_Id id, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout, - void **segment -); - -/* - * rtems_region_get_segment_size - * - * DESCRIPTION: - * - * This routine implements the rtems_region_get_segment_size directive. It - * returns the size in bytes of the specified user memory area. - */ - -rtems_status_code rtems_region_get_segment_size( - Objects_Id id, - void *segment, - unsigned32 *size -); - -/* - * rtems_region_return_segment - * - * DESCRIPTION: - * - * This routine implements the rtems_region_return_segment directive. It - * frees the segment to the region associated with ID. The segment must - * have been previously allocated from the same region. If freeing the - * segment results in enough memory being available to satisfy the - * rtems_region_get_segment of the first blocked task, then that task and as - * many subsequent tasks as possible will be unblocked with their requests - * satisfied. - */ - -rtems_status_code rtems_region_return_segment( - Objects_Id id, - void *segment -); - -/* - * _Region_Allocate - * - * DESCRIPTION: - * - * This function allocates a region control block from - * the inactive chain of free region control blocks. - */ - -STATIC INLINE Region_Control *_Region_Allocate( void ); - -/* - * _Region_Free - * - * DESCRIPTION: - * - * This routine frees a region control block to the - * inactive chain of free region control blocks. - */ - -STATIC INLINE void _Region_Free ( - Region_Control *the_region -); - -/* - * _Region_Get - * - * DESCRIPTION: - * - * This function maps region IDs to region control blocks. - * If ID corresponds to a local region, then it returns - * the_region control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the_region is undefined. - */ - -STATIC INLINE Region_Control *_Region_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Region_Allocate_segment - * - * DESCRIPTION: - * - * This function attempts to allocate a segment from the_region. - * If successful, it returns the address of the allocated segment. - * Otherwise, it returns NULL. - */ - -STATIC INLINE void *_Region_Allocate_segment ( - Region_Control *the_region, - unsigned32 size -); - -/* - * _Region_Free_segment - * - * DESCRIPTION: - * - * This function frees the_segment to the_region. - */ - -STATIC INLINE boolean _Region_Free_segment ( - Region_Control *the_region, - void *the_segment -); - -/* - * _Region_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_region is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Region_Is_null ( - Region_Control *the_region -); - -#include -#include - -/* - * _Region_Debug_Walk - * - * DESCRIPTION: - * - * This routine is invoked to verify the integrity of a heap associated - * with the_region. - */ - -#ifdef RTEMS_DEBUG - -#define _Region_Debug_Walk( _the_region, _source ) \ - do { \ - if ( _Debug_Is_enabled( RTEMS_DEBUG_REGION ) ) \ - _Heap_Walk( &(_the_region)->Memory, _source, FALSE ); \ - } while ( 0 ) - -#else - -#define _Region_Debug_Walk( _the_region, _source ) - -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/regionmp.h b/c/src/exec/rtems/headers/regionmp.h deleted file mode 100644 index 2810656078..0000000000 --- a/c/src/exec/rtems/headers/regionmp.h +++ /dev/null @@ -1,165 +0,0 @@ -/* regionmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Region Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_REGION_MP_h -#define __RTEMS_REGION_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote region operations. - */ - -typedef enum { - REGION_MP_ANNOUNCE_CREATE = 0, - REGION_MP_ANNOUNCE_DELETE = 1, - REGION_MP_EXTRACT_PROXY = 2, - REGION_MP_GET_SEGMENT_REQUEST = 3, - REGION_MP_GET_SEGMENT_RESPONSE = 4, - REGION_MP_RETURN_SEGMENT_REQUEST = 5, - REGION_MP_RETURN_SEGMENT_RESPONSE = 6, -} Region_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote region operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Region_MP_Remote_operations operation; - Objects_Name name; - rtems_option option_set; - unsigned32 size; - Objects_Id proxy_id; - void *segment; -} Region_MP_Packet; - -/* - * _Region_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Region_MP_Send_process_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Region_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Region_MP_Send_request_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - void *segment, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout -); - -/* - * _Region_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Region_MP_Send_response_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - Thread_Control *the_thread -); - -/* - * - * _Region_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Region_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Region_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed by the Region since a region - * cannot be deleted when segments are in use. - */ - -/* - * _Region_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Region_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Region_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a region mp packet. - */ - -Region_MP_Packet *_Region_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/headers/rtems.h b/c/src/exec/rtems/headers/rtems.h deleted file mode 100644 index d0ab705f57..0000000000 --- a/c/src/exec/rtems/headers/rtems.h +++ /dev/null @@ -1,79 +0,0 @@ -/* rtems.h - * - * This include file contains information about RTEMS executive that - * is required by the application and is CPU independent. It includes - * two (2) CPU dependent files to tailor its data structures for a - * particular processor. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RTEMS_GENERIC_h -#define __RTEMS_RTEMS_GENERIC_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * RTEMS basic type definitions - */ - -typedef unsigned8 rtems_unsigned8; /* unsigned 8-bit value */ -typedef unsigned16 rtems_unsigned16; /* unsigned 16-bit value */ -typedef unsigned32 rtems_unsigned32; /* unsigned 32-bit value */ -typedef unsigned64 rtems_unsigned64; /* unsigned 64-bit value */ - -typedef signed8 rtems_signed8; /* signed 8-bit value */ -typedef signed16 rtems_signed16; /* signed 16-bit value */ -typedef signed32 rtems_signed32; /* signed 32-bit value */ -typedef signed64 rtems_signed64; /* signed 64-bit value */ - -typedef single_precision rtems_single; /* single precision float */ -typedef double_precision rtems_double; /* double precision float */ - -typedef boolean rtems_boolean; - -typedef Objects_Name rtems_name; -typedef Objects_Id rtems_id; - -typedef Context_Control rtems_context; -typedef Context_Control_fp rtems_context_fp; -typedef CPU_Interrupt_frame rtems_interrupt_frame; - -#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/sem.h b/c/src/exec/rtems/headers/sem.h deleted file mode 100644 index 66f5ab82b8..0000000000 --- a/c/src/exec/rtems/headers/sem.h +++ /dev/null @@ -1,238 +0,0 @@ -/* semaphore.h - * - * This include file contains all the constants and structures associated - * with the Semaphore Manager. This manager utilizes standard Dijkstra - * counting semaphores to provide synchronization and mutual exclusion - * capabilities. - * - * Directives provided are: - * - * + create a semaphore - * + get an ID of a semaphore - * + delete a semaphore - * + acquire a semaphore - * + release a semaphore - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SEMAPHORE_h -#define __RTEMS_SEMAPHORE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following defines the control block used to manage each semaphore. - */ - -typedef struct { - Objects_Control Object; - Thread_queue_Control Wait_queue; - rtems_attribute attribute_set; - unsigned32 count; - unsigned32 nest_count; - Thread_Control *holder; - Objects_Id holder_id; -} Semaphore_Control; - -/* - * The following defines the information control block used to manage - * this class of objects. - */ - -EXTERN Objects_Information _Semaphore_Information; - -/* - * _Semaphore_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Semaphore_Manager_initialization( - unsigned32 maximum_semaphores -); - -/* - * rtems_semaphore_create - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_create directive. The - * semaphore will have the name name. The starting count for - * the semaphore is count. The attribute_set determines if - * the semaphore is global or local and the thread queue - * discipline. It returns the id of the created semaphore in ID. - */ - -rtems_status_code rtems_semaphore_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_semaphore_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_ident directive. - * This directive returns the semaphore ID associated with name. - * If more than one semaphore is named name, then the semaphore - * to which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the semaphore named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_semaphore_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_semaphore_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_delete directive. The - * semaphore indicated by ID is deleted. - */ - -rtems_status_code rtems_semaphore_delete( - Objects_Id id -); - -/* - * rtems_semaphore_obtain - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_obtain directive. It - * attempts to obtain a unit from the semaphore associated with ID. - * If a unit can be allocated, the calling task will return immediately. - * If no unit is available, then the task may return immediately or - * block waiting for a unit with an optional timeout of timeout - * clock ticks. Whether the task blocks or returns immediately - * is based on the RTEMS_NO_WAIT option in the option_set. - */ - -rtems_status_code rtems_semaphore_obtain( - Objects_Id id, - unsigned32 option_set, - rtems_interval timeout -); - -/* - * rtems_semaphore_release - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_release directive. It - * frees a unit to the semaphore associated with ID. If a task was - * blocked waiting for a unit from this semaphore, then that task will - * be readied and the unit given to that task. Otherwise, the unit - * will be returned to the semaphore. - */ - -rtems_status_code rtems_semaphore_release( - Objects_Id id -); - -/* - * _Semaphore_Seize - * - * DESCRIPTION: - * - * This routine attempts to receive a unit from the_semaphore. - * If a unit is available or if the RTEMS_NO_WAIT option is enabled in - * option_set, then the routine returns. Otherwise, the calling task - * is blocked until a unit becomes available. - */ - -boolean _Semaphore_Seize( - Semaphore_Control *the_semaphore, - unsigned32 option_set -); - -/* - * _Semaphore_Allocate - * - * DESCRIPTION: - * - * This function allocates a semaphore control block from - * the inactive chain of free semaphore control blocks. - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Allocate( void ); - -/* - * _Semaphore_Free - * - * DESCRIPTION: - * - * This routine frees a semaphore control block to the - * inactive chain of free semaphore control blocks. - */ - -STATIC INLINE void _Semaphore_Free ( - Semaphore_Control *the_semaphore -); - -/* - * _Semaphore_Get - * - * DESCRIPTION: - * - * This function maps semaphore IDs to semaphore control blocks. - * If ID corresponds to a local semaphore, then it returns - * the_semaphore control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. if the semaphore ID is global and - * resides on a remote node, then location is set to OBJECTS_REMOTE, - * and the_semaphore is undefined. Otherwise, location is set - * to OBJECTS_ERROR and the_semaphore is undefined. - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Semaphore_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_semaphore is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Semaphore_Is_null ( - Semaphore_Control *the_semaphore -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/semmp.h b/c/src/exec/rtems/headers/semmp.h deleted file mode 100644 index 2d0554c8cc..0000000000 --- a/c/src/exec/rtems/headers/semmp.h +++ /dev/null @@ -1,163 +0,0 @@ -/* semmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Semaphore Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SEMAPHORE_MP_h -#define __RTEMS_SEMAPHORE_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote semaphore operations. - */ - -typedef enum { - SEMAPHORE_MP_ANNOUNCE_CREATE = 0, - SEMAPHORE_MP_ANNOUNCE_DELETE = 1, - SEMAPHORE_MP_EXTRACT_PROXY = 2, - SEMAPHORE_MP_OBTAIN_REQUEST = 3, - SEMAPHORE_MP_OBTAIN_RESPONSE = 4, - SEMAPHORE_MP_RELEASE_REQUEST = 5, - SEMAPHORE_MP_RELEASE_RESPONSE = 6, -} Semaphore_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote semaphore operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Semaphore_MP_Remote_operations operation; - Objects_Name name; - rtems_option option_set; - Objects_Id proxy_id; -} Semaphore_MP_Packet; - -/* - * _Semaphore_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Semaphore_MP_Send_process_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Semaphore_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Semaphore_MP_Send_request_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - rtems_option option_set, - rtems_interval timeout -); - -/* - * _Semaphore_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Semaphore_MP_Send_response_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - Thread_Control *the_thread -); - -/* - * - * _Semaphore_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Semaphore_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Semaphore_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - */ - -void _Semaphore_MP_Send_object_was_deleted ( - Thread_Control *the_proxy -); - -/* - * _Semaphore_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Semaphore_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Semaphore_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a semaphore mp packet. - */ - -Semaphore_MP_Packet *_Semaphore_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/headers/signal.h b/c/src/exec/rtems/headers/signal.h deleted file mode 100644 index 2466a8f931..0000000000 --- a/c/src/exec/rtems/headers/signal.h +++ /dev/null @@ -1,72 +0,0 @@ -/* signal.h - * - * This include file contains all the constants and structures associated - * with the Signal Manager. This manager provides capabilities required - * for asynchronous communication between tasks via signal sets. - * - * Directives provided are: - * - * + establish an asynchronous signal routine - * + send a signal set to a task - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SIGNAL_h -#define __RTEMS_SIGNAL_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include - -/* - * rtems_signal_catch - * - * DESCRIPTION: - * - * This routine implements the rtems_signal_catch directive. This directive - * is used to establish asr_handler as the Asynchronous Signal Routine - * (RTEMS_ASR) for the calling task. The asr_handler will execute with a - * mode of mode_set. - */ - -rtems_status_code rtems_signal_catch( - rtems_asr_entry asr_handler, - rtems_mode mode_set -); - -/* - * rtems_signal_send - * - * DESCRIPTION: - * - * This routine implements the rtems_signal_send directive. This directive - * sends the signal_set to the task specified by ID. - */ - -rtems_status_code rtems_signal_send( - Objects_Id id, - rtems_signal_set signal_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/signalmp.h b/c/src/exec/rtems/headers/signalmp.h deleted file mode 100644 index 36a2d81594..0000000000 --- a/c/src/exec/rtems/headers/signalmp.h +++ /dev/null @@ -1,147 +0,0 @@ -/* signalmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Signal Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SIGNAL_MP_h -#define __RTEMS_SIGNAL_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote signal operations. - */ - -typedef enum { - SIGNAL_MP_SEND_REQUEST = 0, - SIGNAL_MP_SEND_RESPONSE = 1, -} Signal_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote signal operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Signal_MP_Remote_operations operation; - rtems_signal_set signal_in; -} Signal_MP_Packet; - -/* - * _Signal_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - * - * This routine is not needed since there are no process - * packets to be sent by this manager. - */ - -/* - * _Signal_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Signal_MP_Send_request_packet ( - Signal_MP_Remote_operations operation, - Objects_Id task_id, - rtems_signal_set signal_in -); - -/* - * _Signal_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Signal_MP_Send_response_packet ( - Signal_MP_Remote_operations operation, - Thread_Control *the_thread -); - -/* - * - * _Signal_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Signal_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Signal_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Signal_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Signal_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a signal mp packet. - */ - -Signal_MP_Packet *_Signal_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/headers/status.h b/c/src/exec/rtems/headers/status.h deleted file mode 100644 index 42b8754780..0000000000 --- a/c/src/exec/rtems/headers/status.h +++ /dev/null @@ -1,109 +0,0 @@ -/* status.h - * - * This include file contains the status codes returned from the - * executive directives. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_STATUS_h -#define __RTEMS_STATUS_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* types */ - -/* enumerated constants */ - -typedef enum { - RTEMS_SUCCESSFUL = 0, /* successful completion */ - RTEMS_TASK_EXITTED = 1, /* returned from a thread */ - RTEMS_MP_NOT_CONFIGURED = 2, /* multiprocessing not configured */ - RTEMS_INVALID_NAME = 3, /* invalid object name */ - RTEMS_INVALID_ID = 4, /* invalid object id */ - RTEMS_TOO_MANY = 5, /* too many */ - RTEMS_TIMEOUT = 6, /* timed out waiting */ - RTEMS_OBJECT_WAS_DELETED = 7, /* object deleted while waiting */ - RTEMS_INVALID_SIZE = 8, /* specified size was invalid */ - RTEMS_INVALID_ADDRESS = 9, /* address specified is invalid */ - RTEMS_INVALID_NUMBER = 10, /* number was invalid */ - RTEMS_NOT_DEFINED = 11, /* item has not been initialized */ - RTEMS_RESOURCE_IN_USE = 12, /* resources still outstanding */ - RTEMS_UNSATISFIED = 13, /* request not satisfied */ - RTEMS_INCORRECT_STATE = 14, /* thread is in wrong state */ - RTEMS_ALREADY_SUSPENDED = 15, /* thread already in state */ - RTEMS_ILLEGAL_ON_SELF = 16, /* illegal on calling thread */ - RTEMS_ILLEGAL_ON_REMOTE_OBJECT = 17, /* illegal for remote object */ - RTEMS_CALLED_FROM_ISR = 18, /* called from wrong environment */ - RTEMS_INVALID_PRIORITY = 19, /* invalid thread priority */ - RTEMS_INVALID_CLOCK = 20, /* invalid date/time */ - RTEMS_INVALID_NODE = 21, /* invalid node id */ - RTEMS_NOT_CONFIGURED = 22, /* directive not configured */ - RTEMS_NOT_OWNER_OF_RESOURCE = 23, /* not owner of resource */ - RTEMS_NOT_IMPLEMENTED = 24, /* directive not implemented */ - RTEMS_INTERNAL_ERROR = 25, /* RTEMS inconsistency detected */ - RTEMS_PROXY_BLOCKING = 26, /* internal multiprocessing only */ - RTEMS_NO_MEMORY = 27 /* could not get enough memory */ -} rtems_status_code; - -#define RTEMS_STATUS_CODES_FIRST RTEMS_SUCCESSFUL -#define RTEMS_STATUS_CODES_LAST RTEMS_NO_MEMORY - -/* - * rtems_is_status_successful - * - * DESCRIPTION: - * - * This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL, - * and FALSE otherwise. - */ - -STATIC INLINE boolean rtems_is_status_successful ( - rtems_status_code code -); - -/* - * rtems_are_statuses_equal - * - * DESCRIPTION: - * - * This function returns TRUE if the status code1 is equal to code2, - * and FALSE otherwise. - */ - -STATIC INLINE boolean rtems_are_statuses_equal ( - rtems_status_code code1, - rtems_status_code code2 -); - -/* - * _Status_Is_proxy_blocking - * - * DESCRIPTION: - * - * This function returns TRUE if the status code is equal to the - * status which indicates that a proxy is blocking, and FALSE otherwise. - */ - -STATIC INLINE boolean _Status_Is_proxy_blocking ( - rtems_status_code code -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/taskmp.h b/c/src/exec/rtems/headers/taskmp.h deleted file mode 100644 index 57ab50c630..0000000000 --- a/c/src/exec/rtems/headers/taskmp.h +++ /dev/null @@ -1,167 +0,0 @@ -/* taskmp.h - * - * This include file contains all the constants and structures associated - * with the multiprocessing support in the task manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RTEMS_TASKS_MP_h -#define __RTEMS_RTEMS_TASKS_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote task operations. - */ - -typedef enum { - RTEMS_TASKS_MP_ANNOUNCE_CREATE = 0, - RTEMS_TASKS_MP_ANNOUNCE_DELETE = 1, - RTEMS_TASKS_MP_SUSPEND_REQUEST = 2, - RTEMS_TASKS_MP_SUSPEND_RESPONSE = 3, - RTEMS_TASKS_MP_RESUME_REQUEST = 4, - RTEMS_TASKS_MP_RESUME_RESPONSE = 5, - RTEMS_TASKS_MP_SET_PRIORITY_REQUEST = 6, - RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE = 7, - RTEMS_TASKS_MP_GET_NOTE_REQUEST = 8, - RTEMS_TASKS_MP_GET_NOTE_RESPONSE = 9, - RTEMS_TASKS_MP_SET_NOTE_REQUEST = 10, - RTEMS_TASKS_MP_SET_NOTE_RESPONSE = 11, -} RTEMS_tasks_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote task operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - RTEMS_tasks_MP_Remote_operations operation; - Objects_Name name; - rtems_task_priority the_priority; - unsigned32 notepad; - unsigned32 note; -} RTEMS_tasks_MP_Packet; - -/* - * _RTEMS_tasks_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _RTEMS_tasks_MP_Send_process_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Objects_Id task_id, - Objects_Name name -); - -/* - * _RTEMS_tasks_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _RTEMS_tasks_MP_Send_request_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Objects_Id task_id, - rtems_task_priority the_priority, - unsigned32 notepad, - unsigned32 note -); - -/* - * _RTEMS_tasks_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _RTEMS_tasks_MP_Send_response_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Thread_Control *the_thread -); - -/* - * - * _RTEMS_tasks_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _RTEMS_tasks_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _RTEMS_tasks_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed by RTEMS_tasks since a task - * cannot be deleted when segments are in use. - */ - -/* - * _RTEMS_tasks_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - * - */ - -/* - * _RTEMS_tasks_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a task mp packet. - */ - -RTEMS_tasks_MP_Packet *_RTEMS_tasks_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/headers/tasks.h b/c/src/exec/rtems/headers/tasks.h deleted file mode 100644 index d92913548e..0000000000 --- a/c/src/exec/rtems/headers/tasks.h +++ /dev/null @@ -1,315 +0,0 @@ -/* tasks.h - * - * This include file contains all constants and structures associated - * with RTEMS tasks. This manager provides a comprehensive set of directives - * to create, delete, and administer tasks. - * - * Directives provided are: - * - * + create a task - * + get an ID of a task - * + start a task - * + restart a task - * + delete a task - * + suspend a task - * + resume a task - * + set a task's priority - * + change the current task's mode - * + get a task notepad entry - * + set a task notepad entry - * + wake up after interval - * + wake up when specified - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RTEMS_TASKS_h -#define __RTEMS_RTEMS_TASKS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constant to be used as the ID of current task - */ - -#define RTEMS_SELF OBJECTS_ID_OF_SELF - -/* - * This constant is passed to the rtems_task_wake_after directive as the - * interval when a task wishes to yield the CPU. - */ - -#define RTEMS_YIELD_PROCESSOR RTEMS_NO_TIMEOUT - -/* - * rtems_task_create - * - * DESCRIPTION: - * - * This routine implements the rtems_task_create directive. The task - * will have the name name. The attribute_set can be used to indicate - * that the task will be globally accessible or utilize floating point. - * The task's stack will be stack_size bytes. The task will begin - * execution with initial_priority and initial_modes. It returns the - * id of the created task in ID. - */ - -rtems_status_code rtems_task_create( - Objects_Name name, - rtems_task_priority initial_priority, - unsigned32 stack_size, - rtems_mode initial_modes, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_task_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_task_ident directive. - * This directive returns the task ID associated with name. - * If more than one task is named name, then the task to - * which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the task named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_task_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_task_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_task_delete directive. The - * task indicated by ID is deleted. - */ - -rtems_status_code rtems_task_delete( - Objects_Id id -); - -/* - * rtems_task_get_note - * - * DESCRIPTION: - * - * This routine implements the rtems_task_get_note directive. The - * value of the indicated notepad for the task associated with ID - * is returned in note. - */ - -rtems_status_code rtems_task_get_note( - Objects_Id id, - unsigned32 notepad, - unsigned32 *note -); - -/* - * rtems_task_set_note - * - * DESCRIPTION: - * - * This routine implements the rtems_task_set_note directive. The - * value of the indicated notepad for the task associated with ID - * is returned in note. - */ - -rtems_status_code rtems_task_set_note( - Objects_Id id, - unsigned32 notepad, - unsigned32 note -); - -/* - * rtems_task_mode - * - * DESCRIPTION: - * - * This routine implements the rtems_task_mode directive. The current - * values of the modes indicated by mask of the calling task are changed - * to that indicated in mode_set. The former mode of the task is - * returned in mode_set. - */ - -rtems_status_code rtems_task_mode( - rtems_mode mode_set, - rtems_mode mask, - rtems_mode *previous_mode_set -); - -/* - * rtems_task_restart - * - * DESCRIPTION: - * - * This routine implements the rtems_task_restart directive. The - * task associated with ID is restarted at its initial entry - * point with the new argument. - */ - -rtems_status_code rtems_task_restart( - Objects_Id id, - unsigned32 arg -); - -/* - * rtems_task_suspend - * - * DESCRIPTION: - * - * This routine implements the rtems_task_suspend directive. The - * SUSPENDED state is set for task associated with ID. - */ - -rtems_status_code rtems_task_suspend( - Objects_Id id -); - -/* - * rtems_task_resume - * - * DESCRIPTION: - * - * This routine implements the rtems_task_resume Directive. The - * SUSPENDED state is cleared for task associated with ID. - */ - -rtems_status_code rtems_task_resume( - Objects_Id id -); - -/* - * rtems_task_set_priority - * - * DESCRIPTION: - * - * This routine implements the rtems_task_set_priority directive. The - * current priority of the task associated with ID is set to - * new_priority. The former priority of that task is returned - * in old_priority. - */ - -rtems_status_code rtems_task_set_priority( - Objects_Id id, - rtems_task_priority new_priority, - rtems_task_priority *old_priority -); - -/* - * rtems_task_start - * - * DESCRIPTION: - * - * This routine implements the rtems_task_start directive. The - * starting execution point of the task associated with ID is - * set to entry_point with the initial argument. - */ - -rtems_status_code rtems_task_start( - Objects_Id id, - rtems_task_entry entry_point, - unsigned32 argument -); - -/* - * rtems_task_wake_when - * - * DESCRIPTION: - * - * This routine implements the rtems_task_wake_when directive. The - * calling task is blocked until the current time of day is - * equal to that indicated by time_buffer. - */ - -rtems_status_code rtems_task_wake_when( - rtems_time_of_day *time_buffer -); - -/* - * rtems_task_wake_after - * - * DESCRIPTION: - * - * This routine implements the rtems_task_wake_after directive. The - * calling task is blocked until the indicated number of clock - * ticks have occurred. - */ - -rtems_status_code rtems_task_wake_after( - rtems_interval ticks -); - -/* - * _RTEMS_tasks_Allocate - * - * DESCRIPTION: - * - * This function allocates a task control block from - * the inactive chain of free task control blocks. - */ - -STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void ); - -/* - * _RTEMS_tasks_Free - * - * DESCRIPTION: - * - * This routine frees a task control block to the - * inactive chain of free task control blocks. - - */ - -STATIC INLINE void _RTEMS_tasks_Free ( - Thread_Control *the_task -); - -/* - * _RTEMS_tasks_Cancel_wait - * - * DESCRIPTION: - * - * This routine unblocks the_thread and cancels any timers - * which the_thread has active. - */ - -STATIC INLINE void _RTEMS_tasks_Cancel_wait( - Thread_Control *the_thread -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/headers/timer.h b/c/src/exec/rtems/headers/timer.h deleted file mode 100644 index f6ccb5f4a1..0000000000 --- a/c/src/exec/rtems/headers/timer.h +++ /dev/null @@ -1,292 +0,0 @@ -/* timer.h - * - * This include file contains all the constants, structures, and - * prototypes associated with the Timer Manager. This manager provides - * facilities to configure, initiate, cancel, and delete timers which will - * fire at specified intervals of time. - * - * Directives provided are: - * - * + create a timer - * + get an ID of a timer - * + delete a timer - * + set a timer to fire after a number of ticks have passed - * + set a timer to fire when a specified date and time has been reached - * + reset a timer - * + cancel a time - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TIMER_h -#define __RTEMS_TIMER_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type details the classes to which a timer - * may belong. - */ - -typedef enum { - TIMER_INTERVAL, - TIMER_TIME_OF_DAY, - TIMER_DORMANT -} Timer_Classes; - -/* - * The following defines the type of a Timer Service Routine. - */ - -typedef rtems_timer_service_routine_entry Timer_Service; - -/* - * The following defines the information control block used to manage - * this class of objects. - */ - -EXTERN Objects_Information _Timer_Information; - -/* - * The following records define the control block used to manage - * each timer. - */ - -typedef struct { - Objects_Control Object; - Watchdog_Control Ticker; - Timer_Classes the_class; -} Timer_Control; - -/* - * _Timer_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Timer_Manager_initialization( - unsigned32 maximum_timers -); - -/* - * rtems_timer_create - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_create directive. The - * timer will have the name name. It returns the id of the - * created timer in ID. - */ - -rtems_status_code rtems_timer_create( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_timer_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_ident directive. - * This directive returns the timer ID associated with name. - * If more than one timer is named name, then the timer - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_timer_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_timer_cancel - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_cancel directive. It is used - * to stop the timer associated with ID from firing. - */ - -rtems_status_code rtems_timer_cancel( - Objects_Id id -); - -/* - * rtems_timer_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_delete directive. The - * timer indicated by ID is deleted. - */ - -rtems_status_code rtems_timer_delete( - Objects_Id id -); - -/* - * rtems_timer_fire_after - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_fire_after directive. It - * initiates the timer associated with ID to fire in ticks clock - * ticks. When the timer fires, the routine will be invoked. - */ - -rtems_status_code rtems_timer_fire_after( - Objects_Id id, - rtems_interval ticks, - Timer_Service routine, - void *user_data -); - -/* - * rtems_timer_fire_when - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_fire_when directive. It - * initiates the timer associated with ID to fire at wall_time - * When the timer fires, the routine will be invoked. - */ - -rtems_status_code rtems_timer_fire_when( - Objects_Id id, - rtems_time_of_day *wall_time, - Timer_Service routine, - void *user_data -); - -/* - * rtems_timer_reset - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_reset directive. It is used - * to reinitialize the interval timer associated with ID just as if - * rtems_timer_fire_after were re-invoked with the same arguments that - * were used to initiate this timer. - */ - -rtems_status_code rtems_timer_reset( - Objects_Id id -); - -/* - * _Timer_Allocate - * - * DESCRIPTION: - * - * This function allocates a timer control block from - * the inactive chain of free timer control blocks. - */ - -STATIC INLINE Timer_Control *_Timer_Allocate( void ); - -/* - * _Timer_Free - * - * DESCRIPTION: - * - * This routine frees a timer control block to the - * inactive chain of free timer control blocks. - */ - -STATIC INLINE void _Timer_Free ( - Timer_Control *the_timer -); - -/* - * _Timer_Get - * - * DESCRIPTION: - * - * This function maps timer IDs to timer control blocks. - * If ID corresponds to a local timer, then it returns - * the timer control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the returned value is undefined. - */ - -STATIC INLINE Timer_Control *_Timer_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Timer_Is_interval_class - * - * DESCRIPTION: - * - * This function returns TRUE if the class is that of an INTERVAL - * timer, and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_interval_class ( - Timer_Classes the_class -); - -/* - * _Timer_Is_time_of_day_class - * - * DESCRIPTION: - * - * This function returns TRUE if the class is that of an INTERVAL - * timer, and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_timer_of_day_class ( - Timer_Classes the_class -); - -/* - * _Timer_Is_dormant_class - * - * DESCRIPTION: - * - * This function returns TRUE if the class is that of a DORMANT - * timer, and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_dormant_class ( - Timer_Classes the_class -); - -/* - * _Timer_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_timer is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_null ( - Timer_Control *the_timer -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems.h b/c/src/exec/rtems/include/rtems.h deleted file mode 100644 index d0ab705f57..0000000000 --- a/c/src/exec/rtems/include/rtems.h +++ /dev/null @@ -1,79 +0,0 @@ -/* rtems.h - * - * This include file contains information about RTEMS executive that - * is required by the application and is CPU independent. It includes - * two (2) CPU dependent files to tailor its data structures for a - * particular processor. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RTEMS_GENERIC_h -#define __RTEMS_RTEMS_GENERIC_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * RTEMS basic type definitions - */ - -typedef unsigned8 rtems_unsigned8; /* unsigned 8-bit value */ -typedef unsigned16 rtems_unsigned16; /* unsigned 16-bit value */ -typedef unsigned32 rtems_unsigned32; /* unsigned 32-bit value */ -typedef unsigned64 rtems_unsigned64; /* unsigned 64-bit value */ - -typedef signed8 rtems_signed8; /* signed 8-bit value */ -typedef signed16 rtems_signed16; /* signed 16-bit value */ -typedef signed32 rtems_signed32; /* signed 32-bit value */ -typedef signed64 rtems_signed64; /* signed 64-bit value */ - -typedef single_precision rtems_single; /* single precision float */ -typedef double_precision rtems_double; /* double precision float */ - -typedef boolean rtems_boolean; - -typedef Objects_Name rtems_name; -typedef Objects_Id rtems_id; - -typedef Context_Control rtems_context; -typedef Context_Control_fp rtems_context_fp; -typedef CPU_Interrupt_frame rtems_interrupt_frame; - -#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/asr.h b/c/src/exec/rtems/include/rtems/rtems/asr.h deleted file mode 100644 index 44d03f2802..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/asr.h +++ /dev/null @@ -1,177 +0,0 @@ -/* asr.h - * - * This include file contains all the constants and structures associated - * with the Asynchronous Signal Handler. This Handler provides the low-level - * support required by the Signal Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ASR_h -#define __RTEMS_ASR_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * - * The following type defines the control block used to manage - * each signal set. - */ - -typedef unsigned32 rtems_signal_set; - -/* - * Return type for ASR Handler - */ - -typedef void rtems_asr; - -/* - * The following type corresponds to the applications asynchronous - * signal processing routine. - */ - -typedef rtems_asr ( *rtems_asr_entry )( - rtems_signal_set - ); - -/* - * - * The following defines the control structure used to manage - * signals. Each thread has a copy of this record. - */ - -typedef struct { - rtems_asr_entry handler; /* address of RTEMS_ASR */ - rtems_mode mode_set; /* RTEMS_ASR mode */ - rtems_signal_set signals_posted; /* signal set */ - rtems_signal_set signals_pending; /* pending signal set */ - unsigned32 nest_level; /* nest level of RTEMS_ASR */ -} ASR_Information; - -/* - * The following constants define the individual signals which may - * be used to compose a signal set. - */ - -#define RTEMS_SIGNAL_0 0x00000001 -#define RTEMS_SIGNAL_1 0x00000002 -#define RTEMS_SIGNAL_2 0x00000004 -#define RTEMS_SIGNAL_3 0x00000008 -#define RTEMS_SIGNAL_4 0x00000010 -#define RTEMS_SIGNAL_5 0x00000020 -#define RTEMS_SIGNAL_6 0x00000040 -#define RTEMS_SIGNAL_7 0x00000080 -#define RTEMS_SIGNAL_8 0x00000100 -#define RTEMS_SIGNAL_9 0x00000200 -#define RTEMS_SIGNAL_10 0x00000400 -#define RTEMS_SIGNAL_11 0x00000800 -#define RTEMS_SIGNAL_12 0x00001000 -#define RTEMS_SIGNAL_13 0x00002000 -#define RTEMS_SIGNAL_14 0x00004000 -#define RTEMS_SIGNAL_15 0x00008000 -#define RTEMS_SIGNAL_16 0x00010000 -#define RTEMS_SIGNAL_17 0x00020000 -#define RTEMS_SIGNAL_18 0x00040000 -#define RTEMS_SIGNAL_19 0x00080000 -#define RTEMS_SIGNAL_20 0x00100000 -#define RTEMS_SIGNAL_21 0x00200000 -#define RTEMS_SIGNAL_22 0x00400000 -#define RTEMS_SIGNAL_23 0x00800000 -#define RTEMS_SIGNAL_24 0x01000000 -#define RTEMS_SIGNAL_25 0x02000000 -#define RTEMS_SIGNAL_26 0x04000000 -#define RTEMS_SIGNAL_27 0x08000000 -#define RTEMS_SIGNAL_28 0x10000000 -#define RTEMS_SIGNAL_29 0x20000000 -#define RTEMS_SIGNAL_30 0x40000000 -#define RTEMS_SIGNAL_31 0x80000000 - -/* - * _ASR_Initialize - * - * DESCRIPTION: - * - * This routine initializes the given RTEMS_ASR information record. - */ - -STATIC INLINE void _ASR_Initialize ( - ASR_Information *information -); - -/* - * _ASR_Swap_signals - * - * DESCRIPTION: - * - * This routine atomically swaps the pending and posted signal - * sets. This is done when the thread alters its mode in such a - * way that the RTEMS_ASR disable/enable flag changes. - */ - -STATIC INLINE void _ASR_Swap_signals ( - ASR_Information *information -); - -/* - * _ASR_Is_null_handler - * - * DESCRIPTION: - * - * This function returns TRUE if the given asr_handler is NULL and - * FALSE otherwise. - */ - -STATIC INLINE boolean _ASR_Is_null_handler ( - rtems_asr_entry asr_handler -); - -/* - * _ASR_Are_signals_pending - * - * DESCRIPTION: - * - * This function returns TRUE if there are signals pending in the - * given RTEMS_ASR information record and FALSE otherwise. - */ - -STATIC INLINE boolean _ASR_Are_signals_pending ( - ASR_Information *information -); - -/* - * _ASR_Post_signals - * - * DESCRIPTION: - * - * This routine posts the given signals into the signal_set - * passed in. The result is returned to the user in signal_set. - * - * NOTE: This must be implemented as a macro. - */ - -STATIC INLINE void _ASR_Post_signals( - rtems_signal_set signals, - rtems_signal_set *signal_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/attr.h b/c/src/exec/rtems/include/rtems/rtems/attr.h deleted file mode 100644 index 1c59c98dcd..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/attr.h +++ /dev/null @@ -1,188 +0,0 @@ -/* attr.h - * - * This include file contains all information about the Object Attributes - * Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ATTRIBUTES_h -#define __RTEMS_ATTRIBUTES_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* types */ - -typedef unsigned32 rtems_attribute; - -/* constants */ - -#define RTEMS_DEFAULT_ATTRIBUTES 0x00000000 - -#define RTEMS_NO_FLOATING_POINT 0x00000000 /* don't use FP HW */ -#define RTEMS_FLOATING_POINT 0x00000001 /* utilize coprocessor */ - -#define RTEMS_LOCAL 0x00000000 /* local resource */ -#define RTEMS_GLOBAL 0x00000002 /* global resource */ - -#define RTEMS_FIFO 0x00000000 /* process RTEMS_FIFO */ -#define RTEMS_PRIORITY 0x00000004 /* process by priority */ - -#define RTEMS_NO_LIMIT 0x00000000 /* unlimited Q entries */ -#define RTEMS_LIMIT 0x00000008 /* limit Q entries */ - -#define RTEMS_COUNTING_SEMAPHORE 0x00000000 -#define RTEMS_BINARY_SEMAPHORE 0x00000010 - -#define RTEMS_NO_INHERIT_PRIORITY 0x00000000 -#define RTEMS_INHERIT_PRIORITY 0x00000020 - -#if ( CPU_HARDWARE_FP == TRUE ) -#define ATTRIBUTES_NOT_SUPPORTED 0 -#else -#define ATTRIBUTES_NOT_SUPPORTED RTEMS_FLOATING_POINT -#endif - -#if ( CPU_ALL_TASKS_ARE_FP == TRUE ) -#define ATTRIBUTES_REQUIRED RTEMS_FLOATING_POINT -#else -#define ATTRIBUTES_REQUIRED 0 -#endif - -/* - * _Attributes_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs initialization for this handler. - * - * NOTE: There is no initialization required in C. Conditional compilation - * takes care of this in C. - */ - -#define _Attributes_Handler_initialization() - -/* - * _Attributes_Set - * - * DESCRIPTION: - * - * This function sets the requested new_attributes in the attribute_set - * passed in. The result is returned to the user. - */ - -STATIC INLINE rtems_attribute _Attributes_Set ( - rtems_attribute new_attributes, - rtems_attribute attribute_set -); - -/* - * _Attributes_Clear - * - * DESCRIPTION: - * - * This function clears the requested new_attributes in the attribute_set - * passed in. The result is returned to the user. - */ - -STATIC INLINE rtems_attribute _Attributes_Clear ( - rtems_attribute attribute_set, - rtems_attribute mask -); - -/* - * _Attributes_Is_floating_point - * - * DESCRIPTION: - * - * This function returns TRUE if the floating point attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_floating_point( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_global - * - * DESCRIPTION: - * - * This function returns TRUE if the global object attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_global( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_priority - * - * DESCRIPTION: - * - * This function returns TRUE if the priority attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_priority( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_limit - * - * DESCRIPTION: - * - * This function returns TRUE if the limited attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_limit( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_binary_semaphore - * - * DESCRIPTION: - * - * This function returns TRUE if the binary semaphore attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_binary_semaphore( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_inherit_priority - * - * DESCRIPTION: - * - * This function returns TRUE if the priority inheritance attribute - * is enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_inherit_priority( - rtems_attribute attribute_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/clock.h b/c/src/exec/rtems/include/rtems/rtems/clock.h deleted file mode 100644 index e849ab4f40..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/clock.h +++ /dev/null @@ -1,102 +0,0 @@ -/* clock.h - * - * This include file contains all the constants and structures associated - * with the Clock Manager. This manager provides facilities to set, obtain, - * and continually update the current date and time. - * - * This manager provides directives to: - * - * + set the current date and time - * + obtain the current date and time - * + announce a clock tick - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CLOCK_h -#define __RTEMS_CLOCK_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * List of things which can be returned by the rtems_clock_get directive. - */ - -typedef enum { - RTEMS_CLOCK_GET_TOD, - RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH, - RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, - RTEMS_CLOCK_GET_TICKS_PER_SECOND, - RTEMS_CLOCK_GET_TIME_VALUE -} rtems_clock_get_options; - -/* - * Standard flavor style to return TOD in for a rtems_clock_get option. - */ - -typedef struct { - unsigned32 seconds; - unsigned32 microseconds; -} rtems_clock_time_value; - -/* - * rtems_clock_get - * - * DESCRIPTION: - * - * This routine implements the rtems_clock_get directive. It returns - * one of the following: - * + current time of day - * + seconds since epoch - * + ticks since boot - * + ticks per second - */ - -rtems_status_code rtems_clock_get( - rtems_clock_get_options option, - void *time_buffer -); - -/* - * rtems_clock_set - * - * DESCRIPTION: - * - * This routine implements the rtems_clock_set directive. It sets - * the current time of day to that in the time_buffer record. - */ - -rtems_status_code rtems_clock_set( - rtems_time_of_day *time_buffer -); - -/* - * rtems_clock_tick - * - * DESCRIPTION: - * - * This routine implements the rtems_clock_tick directive. It is invoked - * to inform RTEMS of the occurrence of a clock tick. - */ - -rtems_status_code rtems_clock_tick( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/dpmem.h b/c/src/exec/rtems/include/rtems/rtems/dpmem.h deleted file mode 100644 index 669eb394d8..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/dpmem.h +++ /dev/null @@ -1,210 +0,0 @@ -/* dpmem.h - * - * This include file contains all the constants and structures associated - * with the Dual Ported Memory Manager. This manager provides a mechanism - * for converting addresses between internal and external representations - * for multiple dual-ported memory areas. - * - * Directives provided are: - * - * + create a port - * + get ID of a port - * + delete a port - * + convert external to internal address - * + convert internal to external address - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_DUAL_PORTED_MEMORY_h -#define __RTEMS_DUAL_PORTED_MEMORY_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following structure defines the port control block. Each port - * has a control block associated with it. This control block contains - * all information required to support the port related operations. - */ - -typedef struct { - Objects_Control Object; - void *internal_base; /* base internal address */ - void *external_base; /* base external address */ - unsigned32 length; /* length of dual-ported area */ -} Dual_ported_memory_Control; - -/* - * The following define the internal Dual Ported Memory information. - */ - -EXTERN Objects_Information _Dual_ported_memory_Information; - -/* - * _Dual_ported_memory_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Dual_ported_memory_Manager_initialization( - unsigned32 maximum_ports -); - -/* - * rtems_port_create - * - * DESCRIPTION: - * - * This routine implements the rtems_port_create directive. The port - * will have the name name. The port maps onto an area of dual ported - * memory of length bytes which has internal_start and external_start - * as the internal and external starting addresses, respectively. - * It returns the id of the created port in ID. - */ - -rtems_status_code rtems_port_create( - Objects_Name name, - void *internal_start, - void *external_start, - unsigned32 length, - Objects_Id *id -); - -/* - * rtems_port_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_port_ident directive. This directive - * returns the port ID associated with name. If more than one port is - * named name, then the port to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_port_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_port_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_port_delete directive. It deletes - * the port associated with ID. - */ - -rtems_status_code rtems_port_delete( - Objects_Id id -); - -/* - * rtems_port_external_to_internal - * - * DESCRIPTION: - * - * This routine implements the rtems_port_external_to_internal directive. - * It returns the internal port address which maps to the provided - * external port address for the specified port ID. - */ - -rtems_status_code rtems_port_external_to_internal( - Objects_Id id, - void *external, - void **internal -); - -/* - * rtems_port_internal_to_external - * - * DESCRIPTION: - * - * This routine implements the Port_internal_to_external directive. - * It returns the external port address which maps to the provided - * internal port address for the specified port ID. - */ - -rtems_status_code rtems_port_internal_to_external( - Objects_Id id, - void *internal, - void **external -); - -/* - * _Dual_ported_memory_Allocate - * - * DESCRIPTION: - * - * This routine allocates a port control block from the inactive chain - * of free port control blocks. - */ - -STATIC INLINE Dual_ported_memory_Control - *_Dual_ported_memory_Allocate ( void ); - -/* - * _Dual_ported_memory_Free - * - * DESCRIPTION: - * - * This routine frees a port control block to the inactive chain - * of free port control blocks. - */ - -STATIC INLINE void _Dual_ported_memory_Free ( - Dual_ported_memory_Control *the_port -); - -/* - * _Dual_ported_memory_Get - * - * DESCRIPTION: - * - * This function maps port IDs to port control blocks. If ID - * corresponds to a local port, then it returns the_port control - * pointer which maps to ID and location is set to OBJECTS_LOCAL. - * Global ports are not supported, thus if ID does not map to a - * local port, location is set to OBJECTS_ERROR and the_port is - * undefined. - */ - -STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Dual_ported_memory_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_port is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Dual_ported_memory_Is_null( - Dual_ported_memory_Control *the_port -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/event.h b/c/src/exec/rtems/include/rtems/rtems/event.h deleted file mode 100644 index aeb71b2abd..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/event.h +++ /dev/null @@ -1,158 +0,0 @@ -/* event.h - * - * This include file contains the information pertaining to the Event - * Manager. This manager provides a high performance method of communication - * and synchronization. - * - * Directives provided are: - * - * + send an event set to a task - * + receive event condition - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EVENT_h -#define __RTEMS_EVENT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * This constant is passed as the event_in to the - * rtems_event_receive directive to determine which events are pending. - */ - -#define EVENT_CURRENT 0 - -/* - * _Event_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -STATIC INLINE void _Event_Manager_initialization( void ); - -/* - * rtems_event_send - * - * DESCRIPTION: - * - * This routine implements the rtems_event_send directive. It sends - * event_in to the task specified by ID. If the task is blocked - * waiting to receive events and the posting of event_in satisfies - * the task's event condition, then it is unblocked. - */ - -rtems_status_code rtems_event_send ( - Objects_Id id, - rtems_event_set event_in -); - -/* - * rtems_event_receive - * - * DESCRIPTION: - * - * This routine implements the rtems_event_receive directive. This - * directive is invoked when the calling task wishes to receive - * the event_in event condition. One of the fields in the option_set - * parameter determines whether the receive request is satisfied if - * any or all of the events are pending. If the event condition - * is not satisfied immediately, then the task may block with an - * optional timeout of TICKS clock ticks or return immediately. - * This determination is based on another field in the option_set - * parameter. This directive returns the events received in the - * event_out parameter. - */ - -rtems_status_code rtems_event_receive ( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks, - rtems_event_set *event_out -); - -/* - * _Event_Seize - * - * DESCRIPTION: - * - * This routine determines if the event condition event_in is - * satisfied. If so or if the no_wait option is enabled in option_set, - * then the procedure returns immediately. If neither of these - * conditions is true, then the calling task is blocked with an - * optional timeout of ticks clock ticks. - */ - -void _Event_Seize ( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks -); - -/* - * _Event_Surrender - * - * DESCRIPTION: - * - * This routine determines if the event condition of the_thread - * has been satisfied. If so, it unblocks the_thread. - */ - -void _Event_Surrender ( - Thread_Control *the_thread -); - -/* - * _Event_Timeout - * - * DESCRIPTION: - * - * This routine is invoked when a task's event receive request - * has not been satisfied after the specified timeout interval. - * The task represented by ID will be unblocked and its status - * code will be set in it's control block to indicate that a timeout - * has occurred. - */ - -void _Event_Timeout ( - Objects_Id id, - void *ignored -); - -/* - * The following defines the synchronization flag used by the - * Event Manager to insure that signals sent to the currently - * executing thread are received properly. - */ - -EXTERN boolean _Event_Sync; /* event manager sync flag */ - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/eventmp.h b/c/src/exec/rtems/include/rtems/rtems/eventmp.h deleted file mode 100644 index 9df2ef1e22..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/eventmp.h +++ /dev/null @@ -1,147 +0,0 @@ -/* eventmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Event Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EVENT_MP_h -#define __RTEMS_EVENT_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote event operations. - */ - -typedef enum { - EVENT_MP_SEND_REQUEST = 0, - EVENT_MP_SEND_RESPONSE = 1, -} Event_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote event operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Event_MP_Remote_operations operation; - rtems_event_set event_in; -} Event_MP_Packet; - -/* - * _Event_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - * - * This routine is not needed since there are no process - * packets to be sent by this manager. - */ - -/* - * _Event_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Event_MP_Send_request_packet ( - Event_MP_Remote_operations operation, - Objects_Id event_id, - rtems_event_set event_in -); - -/* - * _Event_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Event_MP_Send_response_packet ( - Event_MP_Remote_operations operation, - Thread_Control *the_thread -); - -/* - * - * _Event_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Event_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Event_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Event_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Event_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a event mp packet. - */ - -Event_MP_Packet *_Event_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/eventset.h b/c/src/exec/rtems/include/rtems/rtems/eventset.h deleted file mode 100644 index a25dabe58b..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/eventset.h +++ /dev/null @@ -1,142 +0,0 @@ -/* eventset.h - * - * This include file contains the information pertaining to the - * Event Sets Handler. This handler provides methods for the manipulation - * of event sets which will be sent and received by tasks. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EVENT_SET_h -#define __RTEMS_EVENT_SET_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following defines the type used to control event sets. - */ - -typedef unsigned32 rtems_event_set; - -/* - * The following constants define the individual events which may - * be used to compose an event set. - */ - -#define RTEMS_PENDING_EVENTS 0 /* receive pending events */ -#define RTEMS_ALL_EVENTS 0xFFFFFFFF - -#define RTEMS_EVENT_0 0x00000001 -#define RTEMS_EVENT_1 0x00000002 -#define RTEMS_EVENT_2 0x00000004 -#define RTEMS_EVENT_3 0x00000008 -#define RTEMS_EVENT_4 0x00000010 -#define RTEMS_EVENT_5 0x00000020 -#define RTEMS_EVENT_6 0x00000040 -#define RTEMS_EVENT_7 0x00000080 -#define RTEMS_EVENT_8 0x00000100 -#define RTEMS_EVENT_9 0x00000200 -#define RTEMS_EVENT_10 0x00000400 -#define RTEMS_EVENT_11 0x00000800 -#define RTEMS_EVENT_12 0x00001000 -#define RTEMS_EVENT_13 0x00002000 -#define RTEMS_EVENT_14 0x00004000 -#define RTEMS_EVENT_15 0x00008000 -#define RTEMS_EVENT_16 0x00010000 -#define RTEMS_EVENT_17 0x00020000 -#define RTEMS_EVENT_18 0x00040000 -#define RTEMS_EVENT_19 0x00080000 -#define RTEMS_EVENT_20 0x00100000 -#define RTEMS_EVENT_21 0x00200000 -#define RTEMS_EVENT_22 0x00400000 -#define RTEMS_EVENT_23 0x00800000 -#define RTEMS_EVENT_24 0x01000000 -#define RTEMS_EVENT_25 0x02000000 -#define RTEMS_EVENT_26 0x04000000 -#define RTEMS_EVENT_27 0x08000000 -#define RTEMS_EVENT_28 0x10000000 -#define RTEMS_EVENT_29 0x20000000 -#define RTEMS_EVENT_30 0x40000000 -#define RTEMS_EVENT_31 0x80000000 - - -/* - * The following constant is the value of an event set which - * has no events pending. - */ - -#define EVENT_SETS_NONE_PENDING 0 - -/* - * _Event_sets_Is_empty - * - * DESCRIPTION: - * - * This function returns TRUE if on events are posted in the event_set, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Event_sets_Is_empty( - rtems_event_set the_event_set -); - -/* - * _Event_sets_Post - * - * DESCRIPTION: - * - * This routine posts the given new_events into the event_set - * passed in. The result is returned to the user in event_set. - */ - -STATIC INLINE void _Event_sets_Post( - rtems_event_set the_new_events, - rtems_event_set *the_event_set -); - -/* - * _Event_sets_Get - * - * DESCRIPTION: - * - * This function returns the events in event_condition which are - * set in event_set. - */ - -STATIC INLINE rtems_event_set _Event_sets_Get( - rtems_event_set the_event_set, - rtems_event_set the_event_condition -); - -/* - * _Event_sets_Clear - * - * DESCRIPTION: - * - * This function removes the events in mask from the event_set - * passed in. The result is returned to the user in event_set. - */ - -STATIC INLINE rtems_event_set _Event_sets_Clear( - rtems_event_set the_event_set, - rtems_event_set the_mask -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/intr.h b/c/src/exec/rtems/include/rtems/rtems/intr.h deleted file mode 100644 index 3669af1ccc..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/intr.h +++ /dev/null @@ -1,125 +0,0 @@ -/* intr.h - * - * This include file contains all the constants and structures associated - * with the Interrupt Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_INTERRUPT_h -#define __RTEMS_INTERRUPT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * Interrupt level type - */ - -typedef ISR_Level rtems_interrupt_level; - -/* - * _Interrupt_Manager_initialization - * - * DESCRIPTION: - * - * This routine initializes the interrupt manager. - * - */ - -void _Interrupt_Manager_initialization( void ); - -/* - * rtems_interrupt_catch - * - * DESCRIPTION: - * - * This routine implements the rtems_interrupt_catch directive. This - * directive installs new_isr_handler as the RTEMS interrupt service - * routine for vector. The previous RTEMS interrupt service - * routine is returned in old_isr_handler. - */ - -rtems_status_code rtems_interrupt_catch( - rtems_isr_entry new_isr_handler, - rtems_vector_number vector, - rtems_isr_entry *old_isr_handler -); - -/* - * rtems_interrupt_disable - * - * DESCRIPTION: - * - * This routine disables all maskable interrupts and returns the - * previous level in _isr_cookie. - */ - -#define rtems_interrupt_disable( _isr_cookie ) \ - _ISR_Disable(_isr_cookie) - -/* - * rtems_interrupt_enable - * - * DESCRIPTION: - * - * This routine enables maskable interrupts to the level indicated - * _isr_cookie. - */ - -#define rtems_interrupt_enable( _isr_cookie ) \ - _ISR_Enable(_isr_cookie) - -/* - * rtems_interrupt_flash - * - * DESCRIPTION: - * - * This routine temporarily enables maskable interrupts to the - * level in _isr_cookie before redisabling them. - */ - -#define rtems_interrupt_flash( _isr_cookie ) \ - _ISR_Flash(_isr_cookie) - -/* - * rtems_interrupt_cause - * - * DESCRIPTION: - * - * This routine generates an interrupt. - * - * NOTE: No implementation. - */ - -#define rtems_interrupt_cause( _interrupt_to_cause ) - -/* - * rtems_interrupt_cause - * - * DESCRIPTION: - * - * This routine clears the specified interrupt. - * - * NOTE: No implementation. - */ - -#define rtems_interrupt_clear( _interrupt_to_clear ) - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/message.h b/c/src/exec/rtems/include/rtems/rtems/message.h deleted file mode 100644 index aefcea3c36..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/message.h +++ /dev/null @@ -1,461 +0,0 @@ -/* message.h - * - * This include file contains all the constants and structures associated - * with the Message Queue Manager. This manager provides a mechanism for - * communication and synchronization between tasks using messages. - * - * Directives provided are: - * - * + create a queue - * + get ID of a queue - * + delete a queue - * + put a message at the rear of a queue - * + put a message at the front of a queue - * + broadcast N messages to a queue - * + receive message from a queue - * + flush all messages on a queue - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MESSAGE_QUEUE_h -#define __RTEMS_MESSAGE_QUEUE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following defines the data types needed to manipulate - * the contents of message buffers. - */ - -typedef struct { - unsigned32 field1; - unsigned32 field2; - unsigned32 field3; - unsigned32 field4; -} Message_queue_Buffer; - -/* - * The following records define the organization of a message - * buffer. - */ - -typedef struct { - Chain_Node Node; - Message_queue_Buffer Contents; -} Message_queue_Buffer_control; - -/* - * The following records define the control block used to manage - * each message queue. - */ - -typedef struct { - Objects_Control Object; - Thread_queue_Control Wait_queue; - rtems_attribute attribute_set; - unsigned32 maximum_pending_messages; - unsigned32 number_of_pending_messages; - Chain_Control Pending_messages; -} Message_queue_Control; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Message_queue_Information; - -/* - * The following defines the data structures used to - * manage the pool of inactive message buffers. - */ - -EXTERN Chain_Control _Message_queue_Inactive_messages; - -/* - * The following enumerated type details the modes in which a message - * may be submitted to a message queue. The message may be posted - * in a send or urgent fashion. - */ - -typedef enum { - MESSAGE_QUEUE_SEND_REQUEST = 0, - MESSAGE_QUEUE_URGENT_REQUEST = 1 -} Message_queue_Submit_types; - -/* - * _Message_queue_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Message_queue_Manager_initialization( - unsigned32 maximum_message_queues, - unsigned32 maximum_messages -); - -/* - * rtems_message_queue_create - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_create directive. The - * message queue will have the name name. If the attribute_set indicates - * that the message queue is to be limited in the number of messages - * that can be outstanding, then count indicates the maximum number of - * messages that will be held. It returns the id of the created - * message queue in ID. - */ - -rtems_status_code rtems_message_queue_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_message_queue_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_ident directive. - * This directive returns the message queue ID associated with NAME. - * If more than one message queue is named name, then the message - * queue to which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the message queue named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_message_queue_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_message_queue_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_delete directive. The - * message queue indicated by ID is deleted. - */ - -rtems_status_code rtems_message_queue_delete( - Objects_Id id -); - -/* - * rtems_message_queue_send - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_send directive. - * This directive sends the message buffer to the message queue - * indicated by ID. If one or more tasks is blocked waiting - * to receive a message from this message queue, then one will - * receive the message. The task selected to receive the - * message is based on the task queue discipline algorithm in - * use by this particular message queue. If no tasks are waiting, - * then the message buffer will be placed at the rear of the - * chain of pending messages for this message queue. - */ - -rtems_status_code rtems_message_queue_send( - Objects_Id id, - void *buffer -); - -/* - * rtems_message_queue_urgent - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_send directive. - * This directive sends the message buffer to the message queue - * indicated by ID. If one or more tasks is blocked waiting - * to receive a message from this message queue, then one will - * receive the message. The task selected to receive the - * message is based on the task queue discipline algorithm in - * use by this particular message queue. If no tasks are waiting, - * then the message buffer will be placed at the rear of the - * chain of pending messages for this message queue. - */ - -rtems_status_code rtems_message_queue_urgent( - Objects_Id id, - void *buffer -); - -/* - * rtems_message_queue_broadcast - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_send directive. - * This directive sends the message buffer to the message queue - * indicated by ID. If one or more tasks is blocked waiting - * to receive a message from this message queue, then one will - * receive the message. The task selected to receive the - * message is based on the task queue discipline algorithm in - * use by this particular message queue. If no tasks are waiting, - * then the message buffer will be placed at the rear of the - * chain of pending messages for this message queue. - */ - -rtems_status_code rtems_message_queue_broadcast( - Objects_Id id, - void *buffer, - unsigned32 *count -); - -/* - * rtems_message_queue_receive - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_receive directive. - * This directive is invoked when the calling task wishes to receive - * a message from the message queue indicated by ID. The received - * message is to be placed in buffer. If no messages are outstanding - * and the option_set indicates that the task is willing to block, - * then the task will be blocked until a message arrives or until, - * optionally, timeout clock ticks have passed. - */ - -rtems_status_code rtems_message_queue_receive( - Objects_Id id, - void *buffer, - unsigned32 option_set, - rtems_interval timeout -); - -/* - * rtems_message_queue_flush - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_flush directive. - * This directive takes all outstanding messages for the message - * queue indicated by ID and returns them to the inactive message - * chain. The number of messages flushed is returned in COUNT. - */ - -rtems_status_code rtems_message_queue_flush( - Objects_Id id, - unsigned32 *count -); - -/* - * _Message_queue_Copy_buffer - * - * DESCRIPTION: - * - * This routine copies the contents of the source message buffer - * to the destination message buffer. - */ - -STATIC INLINE void _Message_queue_Copy_buffer ( - Message_queue_Buffer *source, - Message_queue_Buffer *destination -); - -/* - * _Message_queue_Seize - * - * DESCRIPTION: - * - * This routine attempts to receive a message from the_message_queue. - * If a message is available or if the RTEMS_NO_WAIT option is enabled in - * option_set, then the routine returns. Otherwise, the calling task - * is blocked until a message is available. If a message is returned - * to the task, then buffer will contain its contents. - */ - -boolean _Message_queue_Seize( - Message_queue_Control *the_message_queue, - unsigned32 option_set, - Message_queue_Buffer *buffer -); - -/* - * _Message_queue_Flush_support - * - * DESCRIPTION: - * - * This routine flushes all outstanding messages and returns - * them to the inactive message chain. - */ - -unsigned32 _Message_queue_Flush_support( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Submit - * - * DESCRIPTION: - * - * This routine provides the common foundation for the - * rtems_message_queue_send and rtems_message_queue_urgent directives. - */ - -rtems_status_code _Message_queue_Submit( - Objects_Id id, - Message_queue_Buffer *buffer, - Message_queue_Submit_types submit_type -); - -/* - * _Message_queue_Allocate_message_buffer - * - * DESCRIPTION: - * - * This function allocates a message buffer from the inactive - * message buffer chain. - */ - -STATIC INLINE Message_queue_Buffer_control * - _Message_queue_Allocate_message_buffer ( void ); - -/* - * _Message_queue_Free_message_buffer - * - * DESCRIPTION: - * - * This routine frees a message buffer to the inactive - * message buffer chain. - */ - -STATIC INLINE void _Message_queue_Free_message_buffer ( - Message_queue_Buffer_control *the_message -); - -/* - * _Message_queue_Get_pending_message - * - * DESCRIPTION: - * - * This function removes the first message from the_message_queue - * and returns a pointer to it. - */ - -STATIC INLINE - Message_queue_Buffer_control *_Message_queue_Get_pending_message ( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Append - * - * DESCRIPTION: - * - * This routine places the_message at the rear of the outstanding - * messages on the_message_queue. - */ - -STATIC INLINE void _Message_queue_Append ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -); - -/* - * _Message_queue_Prepend - * - * DESCRIPTION: - * - * This routine places the_message at the rear of the outstanding - * messages on the_message_queue. - */ - -STATIC INLINE void _Message_queue_Prepend ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -); - -/* - * _Message_queue_Is_null - * - * DESCRIPTION: - * - * This function places the_message at the rear of the outstanding - * messages on the_message_queue. - */ - -STATIC INLINE boolean _Message_queue_Is_null ( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Allocate - * - * DESCRIPTION: - * - * This function allocates a message queue control block from - * the inactive chain of free message queue control blocks. - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Allocate ( void ); - -/* - * _Message_queue_Free - * - * DESCRIPTION: - * - * This routine allocates a message queue control block from - * the inactive chain of free message queue control blocks. - */ - -STATIC INLINE void _Message_queue_Free ( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Get - * - * DESCRIPTION: - * - * This function maps message queue IDs to message queue control - * blocks. If ID corresponds to a local message queue, then it - * returns the_message_queue control pointer which maps to ID - * and location is set to OBJECTS_LOCAL. If the message queue ID is - * global and resides on a remote node, then location is set - * to OBJECTS_REMOTE, and the_message_queue is undefined. - * Otherwise, location is set to OBJECTS_ERROR and - * the_message_queue is undefined. - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Get ( - Objects_Id id, - Objects_Locations *location -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/modes.h b/c/src/exec/rtems/include/rtems/rtems/modes.h deleted file mode 100644 index 9e714591ab..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/modes.h +++ /dev/null @@ -1,183 +0,0 @@ -/* modes.h - * - * This include file contains all constants and structures associated - * with the RTEMS thread and RTEMS_ASR modes. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MODES_h -#define __RTEMS_MODES_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the control block used to manage - * each a mode set. - */ - -typedef unsigned32 rtems_mode; - -/* - * The following constants define the individual modes and masks - * which may be used to compose a mode set and to alter modes. - */ - -#define RTEMS_ALL_MODE_MASKS 0x0000ffff - -#define RTEMS_DEFAULT_MODES 0x00000000 -#define RTEMS_CURRENT_MODE 0 - -#define RTEMS_PREEMPT_MASK 0x00000100 /* preemption bit */ -#define RTEMS_TIMESLICE_MASK 0x00000200 /* timeslice bit */ -#define RTEMS_ASR_MASK 0x00000400 /* RTEMS_ASR enable bit */ -#define RTEMS_INTERRUPT_MASK CPU_MODES_INTERRUPT_MASK - -#define RTEMS_PREEMPT 0x00000000 /* enable preemption */ -#define RTEMS_NO_PREEMPT 0x00000100 /* disable preemption */ - -#define RTEMS_NO_TIMESLICE 0x00000000 /* disable timeslicing */ -#define RTEMS_TIMESLICE 0x00000200 /* enable timeslicing */ - -#define RTEMS_ASR 0x00000000 /* enable RTEMS_ASR */ -#define RTEMS_NO_ASR 0x00000400 /* disable RTEMS_ASR */ - -/* - * The number of bits for interrupt levels is CPU dependent. - * RTEMS supports 0 to 256 levels in bits 0-7 of the mode. - */ - -/* - * RTEMS_INTERRUPT_LEVEL - * - * DESCRIPTION: - * - * This function returns the processor dependent interrupt - * level which corresponds to the requested interrupt level. - * - * NOTE: RTEMS supports 256 interrupt levels using the least - * significant eight bits of MODES.CONTROL. On any - * particular CPU, fewer than 256 levels may be supported. - */ - -STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL ( - rtems_mode mode_set -); - -/* - * _Modes_Mask_changed - * - * DESCRIPTION: - * - * This function returns TRUE if any of the mode flags in mask - * are set in mode_set, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Mask_changed ( - rtems_mode mode_set, - rtems_mode masks -); - -/* - * _Modes_Is_asr_disabled - * - * DESCRIPTION: - * - * This function returns TRUE if mode_set indicates that Asynchronous - * Signal Processing is disabled, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Is_asr_disabled ( - rtems_mode mode_set -); - -/* - * _Modes_Is_preempt - * - * DESCRIPTION: - * - * This function returns TRUE if mode_set indicates that preemption - * is enabled, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Is_preempt ( - rtems_mode mode_set -); - -/* - * _Modes_Is_timeslice - * - * DESCRIPTION: - * - * This function returns TRUE if mode_set indicates that timeslicing - * is enabled, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Is_timeslice ( - rtems_mode mode_set -); - -/* - * _Modes_Get_interrupt_level - * - * DESCRIPTION: - * - * This function returns the interrupt level portion of the mode_set. - */ - -STATIC INLINE ISR_Level _Modes_Get_interrupt_level ( - rtems_mode mode_set -); - -/* - * _Modes_Set_interrupt_level - * - * DESCRIPTION: - * - * This routine sets the current interrupt level to that specified - * in the mode_set. - */ - -STATIC INLINE void _Modes_Set_interrupt_level ( - rtems_mode mode_set -); - -/* - * _Modes_Change - * - * DESCRIPTION: - * - * This routine changes the modes in old_mode_set indicated by - * mask to the requested values in new_mode_set. The resulting - * mode set is returned in out_mode_set and the modes that changed - * is returned in changed. - */ - -STATIC INLINE void _Modes_Change ( - rtems_mode old_mode_set, - rtems_mode new_mode_set, - rtems_mode mask, - rtems_mode *out_mode_set, - rtems_mode *changed -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/mp.h b/c/src/exec/rtems/include/rtems/rtems/mp.h deleted file mode 100644 index 96147d3b44..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/mp.h +++ /dev/null @@ -1,67 +0,0 @@ -/* mp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MP_h -#define __RTEMS_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * - * _Multiprocessing_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Multiprocessing_Manager_initialization ( void ); - -/* - * - * rtems_multiprocessing_announce - * - * DESCRIPTION: - * - * This routine implements the MULTIPROCESSING_ANNOUNCE directive. - * It is invoked by the MPCI layer to indicate that an MPCI packet - * has been received. - */ - -void rtems_multiprocessing_announce ( void ); - -/* - * - * _Multiprocessing_Receive_server - * - * DESCRIPTION: - * - * This routine is a server thread which processes remote requests - * from other nodes. - */ - -Thread _Multiprocessing_Receive_server ( - Thread_Argument ignored -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/msgmp.h b/c/src/exec/rtems/include/rtems/rtems/msgmp.h deleted file mode 100644 index 486bf00002..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/msgmp.h +++ /dev/null @@ -1,175 +0,0 @@ -/* msgmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Message Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MESSAGE_QUEUE_MP_h -#define __RTEMS_MESSAGE_QUEUE_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote message queue operations. - */ - -typedef enum { - MESSAGE_QUEUE_MP_ANNOUNCE_CREATE = 0, - MESSAGE_QUEUE_MP_ANNOUNCE_DELETE = 1, - MESSAGE_QUEUE_MP_EXTRACT_PROXY = 2, - MESSAGE_QUEUE_MP_RECEIVE_REQUEST = 3, - MESSAGE_QUEUE_MP_RECEIVE_RESPONSE = 4, - MESSAGE_QUEUE_MP_SEND_REQUEST = 5, - MESSAGE_QUEUE_MP_SEND_RESPONSE = 6, - MESSAGE_QUEUE_MP_URGENT_REQUEST = 7, - MESSAGE_QUEUE_MP_URGENT_RESPONSE = 8, - MESSAGE_QUEUE_MP_BROADCAST_REQUEST = 9, - MESSAGE_QUEUE_MP_BROADCAST_RESPONSE = 10, - MESSAGE_QUEUE_MP_FLUSH_REQUEST = 11, - MESSAGE_QUEUE_MP_FLUSH_RESPONSE = 12 -} Message_queue_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote message queue operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Message_queue_MP_Remote_operations operation; - Objects_Name name; - rtems_option option_set; - Objects_Id proxy_id; - unsigned32 count; - unsigned32 pad0; - unsigned32 pad1; - unsigned32 pad2; - Message_queue_Buffer Buffer; -} Message_queue_MP_Packet; - -/* - * _Message_queue_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Message_queue_MP_Send_process_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Message_queue_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Message_queue_MP_Send_request_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Message_queue_Buffer *buffer, - rtems_option option_set, - rtems_interval timeout -); - -/* - * _Message_queue_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Message_queue_MP_Send_response_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Thread_Control *the_thread -); - -/* - * - * _Message_queue_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Message_queue_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Message_queue_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - */ - -void _Message_queue_MP_Send_object_was_deleted ( - Thread_Control *the_proxy -); - -/* - * _Message_queue_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Message_queue_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Message_queue_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a message queue mp packet. - */ - -Message_queue_MP_Packet *_Message_queue_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/options.h b/c/src/exec/rtems/include/rtems/rtems/options.h deleted file mode 100644 index b318aad8c9..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/options.h +++ /dev/null @@ -1,79 +0,0 @@ -/* options.h - * - * This include file contains information which defines the - * options available on many directives. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_OPTIONS_h -#define __RTEMS_OPTIONS_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage - * option sets. - */ - -typedef unsigned32 rtems_option; - -/* - * The following constants define the individual options which may - * be used to compose an option set. - */ - -#define RTEMS_DEFAULT_OPTIONS 0x00000000 - -#define RTEMS_WAIT 0x00000000 /* wait on resource */ -#define RTEMS_NO_WAIT 0x00000001 /* do not wait on resource */ - -#define RTEMS_EVENT_ALL 0x00000000 /* wait for all events */ -#define RTEMS_EVENT_ANY 0x00000002 /* wait on any event */ - -/* - * _Options_Is_no_wait - * - * DESCRIPTION: - * - * This function returns TRUE if the RTEMS_NO_WAIT option is enabled in - * option_set, and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Options_Is_no_wait ( - rtems_option option_set -); - -/* - * _Options_Is_any - * - * DESCRIPTION: - * - * This function returns TRUE if the RTEMS_EVENT_ANY option is enabled in - * OPTION_SET, and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Options_Is_any ( - rtems_option option_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/part.h b/c/src/exec/rtems/include/rtems/rtems/part.h deleted file mode 100644 index e639029dc8..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/part.h +++ /dev/null @@ -1,290 +0,0 @@ -/* partition.h - * - * This include file contains all the constants and structures associated - * with the Partition Manager. This manager provides facilities to - * dynamically allocate memory in fixed-sized units which are returned - * as buffers. - * - * Directives provided are: - * - * + create a partition - * + get an ID of a partition - * + delete a partition - * + get a buffer from a partition - * + return a buffer to a partition - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_PARTITION_h -#define __RTEMS_PARTITION_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following defines the control block used to manage each partition. - */ - -typedef struct { - Objects_Control Object; - void *starting_address; /* physical address */ - unsigned32 length; /* in bytes */ - unsigned32 buffer_size; /* in bytes */ - rtems_attribute attribute_set; /* attributes */ - unsigned32 number_of_used_blocks; /* or allocated buffers */ - Chain_Control Memory; /* buffer chain */ -} Partition_Control; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Partition_Information; - -/* - * _Partition_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Partition_Manager_initialization( - unsigned32 maximum_partitions -); - -/* - * rtems_partition_create - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_create directive. The - * partition will have the name name. The memory area managed by - * the partition is of length bytes and starts at starting_address. - * The memory area will be divided into as many buffers of - * buffer_size bytes as possible. The attribute_set determines if - * the partition is global or local. It returns the id of the - * created partition in ID. - */ - -rtems_status_code rtems_partition_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 buffer_size, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_partition_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_ident directive. - * This directive returns the partition ID associated with name. - * If more than one partition is named name, then the partition - * to which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the partition named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_partition_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_partition_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_delete directive. The - * partition indicated by ID is deleted. - */ - -rtems_status_code rtems_partition_delete( - Objects_Id id -); - -/* - * rtems_partition_get_buffer - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_get_buffer directive. It - * attempts to allocate a buffer from the partition associated with ID. - * If a buffer is allocated, its address is returned in buffer. - */ - -rtems_status_code rtems_partition_get_buffer( - Objects_Id id, - void **buffer -); - -/* - * rtems_partition_return_buffer - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_return_buffer directive. It - * frees the buffer to the partition associated with ID. The buffer must - * have been previously allocated from the same partition. - */ - -rtems_status_code rtems_partition_return_buffer( - Objects_Id id, - void *buffer -); - -/* - * _Partition_Allocate_buffer - * - * DESCRIPTION: - * - * This function attempts to allocate a buffer from the_partition. - * If successful, it returns the address of the allocated buffer. - * Otherwise, it returns NULL. - */ - -STATIC INLINE void *_Partition_Allocate_buffer ( - Partition_Control *the_partition -); - -/* - * _Partition_Free_buffer - * - * DESCRIPTION: - * - * This routine frees the_buffer to the_partition. - */ - -STATIC INLINE void _Partition_Free_buffer ( - Partition_Control *the_partition, - Chain_Node *the_buffer -); - -/* - * _Partition_Is_buffer_on_boundary - * - * DESCRIPTION: - * - * This function returns TRUE if the_buffer is on a valid buffer - * boundary for the_partition, and FALSE otherwise. - */ - -STATIC INLINE boolean _Partition_Is_buffer_on_boundary ( - void *the_buffer, - Partition_Control *the_partition -); - -/* - * _Partition_Is_buffer_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the_buffer is a valid buffer from - * the_partition, otherwise FALSE is returned. - */ - -STATIC INLINE boolean _Partition_Is_buffer_valid ( - Chain_Node *the_buffer, - Partition_Control *the_partition -); - -/* - * _Partition_Is_buffer_size_aligned - * - * DESCRIPTION: - * - * This function returns TRUE if the use of the specified buffer_size - * will result in the allocation of buffers whose first byte is - * properly aligned, and FALSE otherwise. - */ - -STATIC INLINE boolean _Partition_Is_buffer_size_aligned ( - unsigned32 buffer_size -); - -/* - * _Partition_Allocate - * - * DESCRIPTION: - * - * This function allocates a partition control block from - * the inactive chain of free partition control blocks. - */ - -STATIC INLINE Partition_Control *_Partition_Allocate ( void ); - -/* - * _Partition_Free - * - * DESCRIPTION: - * - * This routine frees a partition control block to the - * inactive chain of free partition control blocks. - */ - -STATIC INLINE void _Partition_Free ( - Partition_Control *the_partition -); - -/* - * _Partition_Get - * - * DESCRIPTION: - * - * This function maps partition IDs to partition control blocks. - * If ID corresponds to a local partition, then it returns - * the_partition control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. If the partition ID is global and - * resides on a remote node, then location is set to OBJECTS_REMOTE, - * and the_partition is undefined. Otherwise, location is set - * to OBJECTS_ERROR and the_partition is undefined. - */ - -STATIC INLINE Partition_Control *_Partition_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Partition_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_partition is NULL - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Partition_Is_null ( - Partition_Control *the_partition -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/partmp.h b/c/src/exec/rtems/include/rtems/rtems/partmp.h deleted file mode 100644 index deacaf7bd1..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/partmp.h +++ /dev/null @@ -1,160 +0,0 @@ -/* partmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Partition Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_PARTITION_MP_h -#define __RTEMS_PARTITION_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote partition operations. - */ - -typedef enum { - PARTITION_MP_ANNOUNCE_CREATE = 0, - PARTITION_MP_ANNOUNCE_DELETE = 1, - PARTITION_MP_EXTRACT_PROXY = 2, - PARTITION_MP_GET_BUFFER_REQUEST = 3, - PARTITION_MP_GET_BUFFER_RESPONSE = 4, - PARTITION_MP_RETURN_BUFFER_REQUEST = 5, - PARTITION_MP_RETURN_BUFFER_RESPONSE = 6, -} Partition_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote partition operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Partition_MP_Remote_operations operation; - Objects_Name name; - void *buffer; - Objects_Id proxy_id; -} Partition_MP_Packet; - -/* - * _Partition_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Partition_MP_Send_process_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Partition_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Partition_MP_Send_request_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - void *buffer -); - -/* - * _Partition_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Partition_MP_Send_response_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - Thread_Control *the_thread -); - -/* - * - * _Partition_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Partition_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Partition_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed by the Partition since a partition - * cannot be deleted when buffers are in use. - */ - -/* - * _Partition_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Partition_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Partition_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a partition mp packet. - */ - -Partition_MP_Packet *_Partition_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/ratemon.h b/c/src/exec/rtems/include/rtems/rtems/ratemon.h deleted file mode 100644 index 86acfb9a38..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/ratemon.h +++ /dev/null @@ -1,285 +0,0 @@ -/* ratemon.h - * - * This include file contains all the constants, structures, and - * prototypes associated with the Rate Monotonic Manager. This manager - * provides facilities to implement tasks which execute in a periodic fashion. - * - * Directives provided are: - * - * + create a rate monotonic timer - * + cancel a period - * + delete a rate monotonic timer - * + conclude current and start the next period - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RATE_MONOTONIC_h -#define __RTEMS_RATE_MONOTONIC_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type defines the states in which a - * period may be. - */ - -typedef enum { - RATE_MONOTONIC_INACTIVE, /* off chain, never initialized */ - RATE_MONOTONIC_ACTIVE, /* on chain, running continuously */ - RATE_MONOTONIC_EXPIRED /* off chain, will be reset by next rm_period */ -} Rate_Monotonic_Period_states; - -/* - * The following constant is the interval passed to the rate_monontonic_period - * directive to obtain status information. - */ - -#define RTEMS_PERIOD_STATUS RTEMS_NO_TIMEOUT - -/* - * The following structure defines the control block used to manage - * each period. - */ - -typedef struct { - Objects_Control Object; - Watchdog_Control Timer; - Rate_Monotonic_Period_states state; - Thread_Control *owner; -} Rate_monotonic_Control; - -EXTERN Objects_Information _Rate_monotonic_Information; - -/* - * _Rate_monotonic_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Rate_monotonic_Manager_initialization( - unsigned32 maximum_periods -); - -/* - * rtems_rate_monotonic_create - * - * DESCRIPTION: - * - * This routine implements the rate_monotonic_create directive. The - * period will have the name name. It returns the id of the - * created period in ID. - */ - -rtems_status_code rtems_rate_monotonic_create( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_rate_monotonic_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_ident directive. - * This directive returns the period ID associated with name. - * If more than one period is named name, then the period - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_rate_monotonic_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_rate_monotonic_cancel - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_cancel directive. This - * directive stops the period associated with ID from continuing to - * run. - */ - -rtems_status_code rtems_rate_monotonic_cancel( - Objects_Id id -); - -/* - * rtems_rate_monotonic_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_delete directive. The - * period indicated by ID is deleted. - */ - -rtems_status_code rtems_rate_monotonic_delete( - Objects_Id id -); - -/* - * rtems_rate_monotonic_period - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_period directive. When - * length is non-zero, this directive initiates the period associated with - * ID from continuing for a period of length. If length is zero, then - * result is set to indicate the current state of the period. - */ - -rtems_status_code rtems_rate_monotonic_period( - Objects_Id id, - rtems_interval length -); - -/* - * _Rate_monotonic_Allocate - * - * DESCRIPTION: - * - * This function allocates a period control block from - * the inactive chain of free period control blocks. - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void ); - -/* - * _Rate_monotonic_Free - * - * DESCRIPTION: - * - * This routine allocates a period control block from - * the inactive chain of free period control blocks. - */ - -STATIC INLINE void _Rate_monotonic_Free ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Get - * - * DESCRIPTION: - * - * This function maps period IDs to period control blocks. - * If ID corresponds to a local period, then it returns - * the_period control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the_period is undefined. - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Rate_monotonic_Set_state - * - * DESCRIPTION: - * - * This function blocks the calling task so that it is waiting for - * a period to expire. It returns TRUE if the task was successfully - * blocked, and FALSE otherwise. - */ - -boolean _Rate_monotonic_Set_state( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Timeout - * - * DESCRIPTION: - * - * This routine is invoked when the period represented - * by ID expires. If the task which owns this period is blocked - * waiting for the period to expire, then it is readied and the - * period is restarted. If the owning task is not waiting for the - * period to expire, then the period is placed in the EXPIRED - * state and not restarted. - */ - -void _Rate_monotonic_Timeout ( - Objects_Id id, - void *ignored -); - -/* - * _Rate_monotonic_Is_active - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is in the ACTIVE state, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_active ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Is_inactive - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is in the ACTIVE state, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_inactive ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Is_expired - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is in the EXPIRED state, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_expired ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_null ( - Rate_monotonic_Control *the_period -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/region.h b/c/src/exec/rtems/include/rtems/rtems/region.h deleted file mode 100644 index c31e193c33..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/region.h +++ /dev/null @@ -1,311 +0,0 @@ -/* region.h - * - * This include file contains all the constants and structures associated - * with the Region Manager. This manager provides facilities to dynamically - * allocate memory in variable sized units which are returned as segments. - * - * Directives provided are: - * - * + create a region - * + get an ID of a region - * + delete a region - * + get a segment from a region - * + return a segment to a region - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_REGION_h -#define __RTEMS_REGION_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include - -/* - * The following records define the control block used to manage - * each region. - */ - -typedef struct { - Objects_Control Object; - Thread_queue_Control Wait_queue; /* waiting threads */ - void *starting_address; /* physical start addr */ - unsigned32 length; /* physical length(bytes) */ - unsigned32 page_size; /* in bytes */ - unsigned32 maximum_segment_size; /* in bytes */ - rtems_attribute attribute_set; - unsigned32 number_of_used_blocks; /* blocks allocated */ - Heap_Control Memory; -} Region_Control; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Region_Information; - -/* - * _Region_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Region_Manager_initialization( - unsigned32 maximum_regions -); - -/* - * rtems_region_create - * - * DESCRIPTION: - * - * This routine implements the rtems_region_create directive. The - * region will have the name name. The memory area managed by - * the region is of length bytes and starts at starting_address. - * The memory area will be divided into as many allocatable units of - * page_size bytes as possible. The attribute_set determines which - * thread queue discipline is used by the region. It returns the - * id of the created region in ID. - */ - -rtems_status_code rtems_region_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 page_size, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_region_extend - * - * DESCRIPTION: - * - * This routine implements the rtems_region_extend directive. The - * region will have the name name. The memory area managed by - * the region will be attempted to be grown by length bytes using - * the memory starting at starting_address. - */ - -rtems_status_code rtems_region_extend( - Objects_Id id, - void *starting_address, - unsigned32 length -); - -/* - * rtems_region_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_region_ident directive. - * This directive returns the region ID associated with name. - * If more than one region is named name, then the region - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_region_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_region_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_region_delete directive. The - * region indicated by ID is deleted. - */ - -rtems_status_code rtems_region_delete( - Objects_Id id -); - -/* - * rtems_region_get_segment - * - * DESCRIPTION: - * - * This routine implements the rtems_region_get_segment directive. It - * attempts to allocate a segment from the region associated with ID. - * If a segment of the requested size can be allocated, its address - * is returned in segment. If no segment is available, then the task - * may return immediately or block waiting for a segment with an optional - * timeout of timeout clock ticks. Whether the task blocks or returns - * immediately is based on the no_wait option in the option_set. - */ - -rtems_status_code rtems_region_get_segment( - Objects_Id id, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout, - void **segment -); - -/* - * rtems_region_get_segment_size - * - * DESCRIPTION: - * - * This routine implements the rtems_region_get_segment_size directive. It - * returns the size in bytes of the specified user memory area. - */ - -rtems_status_code rtems_region_get_segment_size( - Objects_Id id, - void *segment, - unsigned32 *size -); - -/* - * rtems_region_return_segment - * - * DESCRIPTION: - * - * This routine implements the rtems_region_return_segment directive. It - * frees the segment to the region associated with ID. The segment must - * have been previously allocated from the same region. If freeing the - * segment results in enough memory being available to satisfy the - * rtems_region_get_segment of the first blocked task, then that task and as - * many subsequent tasks as possible will be unblocked with their requests - * satisfied. - */ - -rtems_status_code rtems_region_return_segment( - Objects_Id id, - void *segment -); - -/* - * _Region_Allocate - * - * DESCRIPTION: - * - * This function allocates a region control block from - * the inactive chain of free region control blocks. - */ - -STATIC INLINE Region_Control *_Region_Allocate( void ); - -/* - * _Region_Free - * - * DESCRIPTION: - * - * This routine frees a region control block to the - * inactive chain of free region control blocks. - */ - -STATIC INLINE void _Region_Free ( - Region_Control *the_region -); - -/* - * _Region_Get - * - * DESCRIPTION: - * - * This function maps region IDs to region control blocks. - * If ID corresponds to a local region, then it returns - * the_region control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the_region is undefined. - */ - -STATIC INLINE Region_Control *_Region_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Region_Allocate_segment - * - * DESCRIPTION: - * - * This function attempts to allocate a segment from the_region. - * If successful, it returns the address of the allocated segment. - * Otherwise, it returns NULL. - */ - -STATIC INLINE void *_Region_Allocate_segment ( - Region_Control *the_region, - unsigned32 size -); - -/* - * _Region_Free_segment - * - * DESCRIPTION: - * - * This function frees the_segment to the_region. - */ - -STATIC INLINE boolean _Region_Free_segment ( - Region_Control *the_region, - void *the_segment -); - -/* - * _Region_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_region is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Region_Is_null ( - Region_Control *the_region -); - -#include -#include - -/* - * _Region_Debug_Walk - * - * DESCRIPTION: - * - * This routine is invoked to verify the integrity of a heap associated - * with the_region. - */ - -#ifdef RTEMS_DEBUG - -#define _Region_Debug_Walk( _the_region, _source ) \ - do { \ - if ( _Debug_Is_enabled( RTEMS_DEBUG_REGION ) ) \ - _Heap_Walk( &(_the_region)->Memory, _source, FALSE ); \ - } while ( 0 ) - -#else - -#define _Region_Debug_Walk( _the_region, _source ) - -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/regionmp.h b/c/src/exec/rtems/include/rtems/rtems/regionmp.h deleted file mode 100644 index 2810656078..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/regionmp.h +++ /dev/null @@ -1,165 +0,0 @@ -/* regionmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Region Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_REGION_MP_h -#define __RTEMS_REGION_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote region operations. - */ - -typedef enum { - REGION_MP_ANNOUNCE_CREATE = 0, - REGION_MP_ANNOUNCE_DELETE = 1, - REGION_MP_EXTRACT_PROXY = 2, - REGION_MP_GET_SEGMENT_REQUEST = 3, - REGION_MP_GET_SEGMENT_RESPONSE = 4, - REGION_MP_RETURN_SEGMENT_REQUEST = 5, - REGION_MP_RETURN_SEGMENT_RESPONSE = 6, -} Region_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote region operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Region_MP_Remote_operations operation; - Objects_Name name; - rtems_option option_set; - unsigned32 size; - Objects_Id proxy_id; - void *segment; -} Region_MP_Packet; - -/* - * _Region_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Region_MP_Send_process_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Region_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Region_MP_Send_request_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - void *segment, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout -); - -/* - * _Region_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Region_MP_Send_response_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - Thread_Control *the_thread -); - -/* - * - * _Region_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Region_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Region_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed by the Region since a region - * cannot be deleted when segments are in use. - */ - -/* - * _Region_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Region_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Region_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a region mp packet. - */ - -Region_MP_Packet *_Region_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/sem.h b/c/src/exec/rtems/include/rtems/rtems/sem.h deleted file mode 100644 index 66f5ab82b8..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/sem.h +++ /dev/null @@ -1,238 +0,0 @@ -/* semaphore.h - * - * This include file contains all the constants and structures associated - * with the Semaphore Manager. This manager utilizes standard Dijkstra - * counting semaphores to provide synchronization and mutual exclusion - * capabilities. - * - * Directives provided are: - * - * + create a semaphore - * + get an ID of a semaphore - * + delete a semaphore - * + acquire a semaphore - * + release a semaphore - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SEMAPHORE_h -#define __RTEMS_SEMAPHORE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following defines the control block used to manage each semaphore. - */ - -typedef struct { - Objects_Control Object; - Thread_queue_Control Wait_queue; - rtems_attribute attribute_set; - unsigned32 count; - unsigned32 nest_count; - Thread_Control *holder; - Objects_Id holder_id; -} Semaphore_Control; - -/* - * The following defines the information control block used to manage - * this class of objects. - */ - -EXTERN Objects_Information _Semaphore_Information; - -/* - * _Semaphore_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Semaphore_Manager_initialization( - unsigned32 maximum_semaphores -); - -/* - * rtems_semaphore_create - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_create directive. The - * semaphore will have the name name. The starting count for - * the semaphore is count. The attribute_set determines if - * the semaphore is global or local and the thread queue - * discipline. It returns the id of the created semaphore in ID. - */ - -rtems_status_code rtems_semaphore_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_semaphore_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_ident directive. - * This directive returns the semaphore ID associated with name. - * If more than one semaphore is named name, then the semaphore - * to which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the semaphore named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_semaphore_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_semaphore_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_delete directive. The - * semaphore indicated by ID is deleted. - */ - -rtems_status_code rtems_semaphore_delete( - Objects_Id id -); - -/* - * rtems_semaphore_obtain - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_obtain directive. It - * attempts to obtain a unit from the semaphore associated with ID. - * If a unit can be allocated, the calling task will return immediately. - * If no unit is available, then the task may return immediately or - * block waiting for a unit with an optional timeout of timeout - * clock ticks. Whether the task blocks or returns immediately - * is based on the RTEMS_NO_WAIT option in the option_set. - */ - -rtems_status_code rtems_semaphore_obtain( - Objects_Id id, - unsigned32 option_set, - rtems_interval timeout -); - -/* - * rtems_semaphore_release - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_release directive. It - * frees a unit to the semaphore associated with ID. If a task was - * blocked waiting for a unit from this semaphore, then that task will - * be readied and the unit given to that task. Otherwise, the unit - * will be returned to the semaphore. - */ - -rtems_status_code rtems_semaphore_release( - Objects_Id id -); - -/* - * _Semaphore_Seize - * - * DESCRIPTION: - * - * This routine attempts to receive a unit from the_semaphore. - * If a unit is available or if the RTEMS_NO_WAIT option is enabled in - * option_set, then the routine returns. Otherwise, the calling task - * is blocked until a unit becomes available. - */ - -boolean _Semaphore_Seize( - Semaphore_Control *the_semaphore, - unsigned32 option_set -); - -/* - * _Semaphore_Allocate - * - * DESCRIPTION: - * - * This function allocates a semaphore control block from - * the inactive chain of free semaphore control blocks. - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Allocate( void ); - -/* - * _Semaphore_Free - * - * DESCRIPTION: - * - * This routine frees a semaphore control block to the - * inactive chain of free semaphore control blocks. - */ - -STATIC INLINE void _Semaphore_Free ( - Semaphore_Control *the_semaphore -); - -/* - * _Semaphore_Get - * - * DESCRIPTION: - * - * This function maps semaphore IDs to semaphore control blocks. - * If ID corresponds to a local semaphore, then it returns - * the_semaphore control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. if the semaphore ID is global and - * resides on a remote node, then location is set to OBJECTS_REMOTE, - * and the_semaphore is undefined. Otherwise, location is set - * to OBJECTS_ERROR and the_semaphore is undefined. - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Semaphore_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_semaphore is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Semaphore_Is_null ( - Semaphore_Control *the_semaphore -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/semmp.h b/c/src/exec/rtems/include/rtems/rtems/semmp.h deleted file mode 100644 index 2d0554c8cc..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/semmp.h +++ /dev/null @@ -1,163 +0,0 @@ -/* semmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Semaphore Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SEMAPHORE_MP_h -#define __RTEMS_SEMAPHORE_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote semaphore operations. - */ - -typedef enum { - SEMAPHORE_MP_ANNOUNCE_CREATE = 0, - SEMAPHORE_MP_ANNOUNCE_DELETE = 1, - SEMAPHORE_MP_EXTRACT_PROXY = 2, - SEMAPHORE_MP_OBTAIN_REQUEST = 3, - SEMAPHORE_MP_OBTAIN_RESPONSE = 4, - SEMAPHORE_MP_RELEASE_REQUEST = 5, - SEMAPHORE_MP_RELEASE_RESPONSE = 6, -} Semaphore_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote semaphore operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Semaphore_MP_Remote_operations operation; - Objects_Name name; - rtems_option option_set; - Objects_Id proxy_id; -} Semaphore_MP_Packet; - -/* - * _Semaphore_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Semaphore_MP_Send_process_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Semaphore_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Semaphore_MP_Send_request_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - rtems_option option_set, - rtems_interval timeout -); - -/* - * _Semaphore_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Semaphore_MP_Send_response_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - Thread_Control *the_thread -); - -/* - * - * _Semaphore_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Semaphore_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Semaphore_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - */ - -void _Semaphore_MP_Send_object_was_deleted ( - Thread_Control *the_proxy -); - -/* - * _Semaphore_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Semaphore_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Semaphore_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a semaphore mp packet. - */ - -Semaphore_MP_Packet *_Semaphore_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/signal.h b/c/src/exec/rtems/include/rtems/rtems/signal.h deleted file mode 100644 index 2466a8f931..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/signal.h +++ /dev/null @@ -1,72 +0,0 @@ -/* signal.h - * - * This include file contains all the constants and structures associated - * with the Signal Manager. This manager provides capabilities required - * for asynchronous communication between tasks via signal sets. - * - * Directives provided are: - * - * + establish an asynchronous signal routine - * + send a signal set to a task - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SIGNAL_h -#define __RTEMS_SIGNAL_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include - -/* - * rtems_signal_catch - * - * DESCRIPTION: - * - * This routine implements the rtems_signal_catch directive. This directive - * is used to establish asr_handler as the Asynchronous Signal Routine - * (RTEMS_ASR) for the calling task. The asr_handler will execute with a - * mode of mode_set. - */ - -rtems_status_code rtems_signal_catch( - rtems_asr_entry asr_handler, - rtems_mode mode_set -); - -/* - * rtems_signal_send - * - * DESCRIPTION: - * - * This routine implements the rtems_signal_send directive. This directive - * sends the signal_set to the task specified by ID. - */ - -rtems_status_code rtems_signal_send( - Objects_Id id, - rtems_signal_set signal_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/signalmp.h b/c/src/exec/rtems/include/rtems/rtems/signalmp.h deleted file mode 100644 index 36a2d81594..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/signalmp.h +++ /dev/null @@ -1,147 +0,0 @@ -/* signalmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Signal Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SIGNAL_MP_h -#define __RTEMS_SIGNAL_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote signal operations. - */ - -typedef enum { - SIGNAL_MP_SEND_REQUEST = 0, - SIGNAL_MP_SEND_RESPONSE = 1, -} Signal_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote signal operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Signal_MP_Remote_operations operation; - rtems_signal_set signal_in; -} Signal_MP_Packet; - -/* - * _Signal_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - * - * This routine is not needed since there are no process - * packets to be sent by this manager. - */ - -/* - * _Signal_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Signal_MP_Send_request_packet ( - Signal_MP_Remote_operations operation, - Objects_Id task_id, - rtems_signal_set signal_in -); - -/* - * _Signal_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Signal_MP_Send_response_packet ( - Signal_MP_Remote_operations operation, - Thread_Control *the_thread -); - -/* - * - * _Signal_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Signal_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Signal_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Signal_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Signal_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a signal mp packet. - */ - -Signal_MP_Packet *_Signal_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/status.h b/c/src/exec/rtems/include/rtems/rtems/status.h deleted file mode 100644 index 42b8754780..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/status.h +++ /dev/null @@ -1,109 +0,0 @@ -/* status.h - * - * This include file contains the status codes returned from the - * executive directives. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_STATUS_h -#define __RTEMS_STATUS_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* types */ - -/* enumerated constants */ - -typedef enum { - RTEMS_SUCCESSFUL = 0, /* successful completion */ - RTEMS_TASK_EXITTED = 1, /* returned from a thread */ - RTEMS_MP_NOT_CONFIGURED = 2, /* multiprocessing not configured */ - RTEMS_INVALID_NAME = 3, /* invalid object name */ - RTEMS_INVALID_ID = 4, /* invalid object id */ - RTEMS_TOO_MANY = 5, /* too many */ - RTEMS_TIMEOUT = 6, /* timed out waiting */ - RTEMS_OBJECT_WAS_DELETED = 7, /* object deleted while waiting */ - RTEMS_INVALID_SIZE = 8, /* specified size was invalid */ - RTEMS_INVALID_ADDRESS = 9, /* address specified is invalid */ - RTEMS_INVALID_NUMBER = 10, /* number was invalid */ - RTEMS_NOT_DEFINED = 11, /* item has not been initialized */ - RTEMS_RESOURCE_IN_USE = 12, /* resources still outstanding */ - RTEMS_UNSATISFIED = 13, /* request not satisfied */ - RTEMS_INCORRECT_STATE = 14, /* thread is in wrong state */ - RTEMS_ALREADY_SUSPENDED = 15, /* thread already in state */ - RTEMS_ILLEGAL_ON_SELF = 16, /* illegal on calling thread */ - RTEMS_ILLEGAL_ON_REMOTE_OBJECT = 17, /* illegal for remote object */ - RTEMS_CALLED_FROM_ISR = 18, /* called from wrong environment */ - RTEMS_INVALID_PRIORITY = 19, /* invalid thread priority */ - RTEMS_INVALID_CLOCK = 20, /* invalid date/time */ - RTEMS_INVALID_NODE = 21, /* invalid node id */ - RTEMS_NOT_CONFIGURED = 22, /* directive not configured */ - RTEMS_NOT_OWNER_OF_RESOURCE = 23, /* not owner of resource */ - RTEMS_NOT_IMPLEMENTED = 24, /* directive not implemented */ - RTEMS_INTERNAL_ERROR = 25, /* RTEMS inconsistency detected */ - RTEMS_PROXY_BLOCKING = 26, /* internal multiprocessing only */ - RTEMS_NO_MEMORY = 27 /* could not get enough memory */ -} rtems_status_code; - -#define RTEMS_STATUS_CODES_FIRST RTEMS_SUCCESSFUL -#define RTEMS_STATUS_CODES_LAST RTEMS_NO_MEMORY - -/* - * rtems_is_status_successful - * - * DESCRIPTION: - * - * This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL, - * and FALSE otherwise. - */ - -STATIC INLINE boolean rtems_is_status_successful ( - rtems_status_code code -); - -/* - * rtems_are_statuses_equal - * - * DESCRIPTION: - * - * This function returns TRUE if the status code1 is equal to code2, - * and FALSE otherwise. - */ - -STATIC INLINE boolean rtems_are_statuses_equal ( - rtems_status_code code1, - rtems_status_code code2 -); - -/* - * _Status_Is_proxy_blocking - * - * DESCRIPTION: - * - * This function returns TRUE if the status code is equal to the - * status which indicates that a proxy is blocking, and FALSE otherwise. - */ - -STATIC INLINE boolean _Status_Is_proxy_blocking ( - rtems_status_code code -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/taskmp.h b/c/src/exec/rtems/include/rtems/rtems/taskmp.h deleted file mode 100644 index 57ab50c630..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/taskmp.h +++ /dev/null @@ -1,167 +0,0 @@ -/* taskmp.h - * - * This include file contains all the constants and structures associated - * with the multiprocessing support in the task manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RTEMS_TASKS_MP_h -#define __RTEMS_RTEMS_TASKS_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote task operations. - */ - -typedef enum { - RTEMS_TASKS_MP_ANNOUNCE_CREATE = 0, - RTEMS_TASKS_MP_ANNOUNCE_DELETE = 1, - RTEMS_TASKS_MP_SUSPEND_REQUEST = 2, - RTEMS_TASKS_MP_SUSPEND_RESPONSE = 3, - RTEMS_TASKS_MP_RESUME_REQUEST = 4, - RTEMS_TASKS_MP_RESUME_RESPONSE = 5, - RTEMS_TASKS_MP_SET_PRIORITY_REQUEST = 6, - RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE = 7, - RTEMS_TASKS_MP_GET_NOTE_REQUEST = 8, - RTEMS_TASKS_MP_GET_NOTE_RESPONSE = 9, - RTEMS_TASKS_MP_SET_NOTE_REQUEST = 10, - RTEMS_TASKS_MP_SET_NOTE_RESPONSE = 11, -} RTEMS_tasks_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote task operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - RTEMS_tasks_MP_Remote_operations operation; - Objects_Name name; - rtems_task_priority the_priority; - unsigned32 notepad; - unsigned32 note; -} RTEMS_tasks_MP_Packet; - -/* - * _RTEMS_tasks_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _RTEMS_tasks_MP_Send_process_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Objects_Id task_id, - Objects_Name name -); - -/* - * _RTEMS_tasks_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _RTEMS_tasks_MP_Send_request_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Objects_Id task_id, - rtems_task_priority the_priority, - unsigned32 notepad, - unsigned32 note -); - -/* - * _RTEMS_tasks_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _RTEMS_tasks_MP_Send_response_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Thread_Control *the_thread -); - -/* - * - * _RTEMS_tasks_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _RTEMS_tasks_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _RTEMS_tasks_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed by RTEMS_tasks since a task - * cannot be deleted when segments are in use. - */ - -/* - * _RTEMS_tasks_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - * - */ - -/* - * _RTEMS_tasks_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a task mp packet. - */ - -RTEMS_tasks_MP_Packet *_RTEMS_tasks_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/tasks.h b/c/src/exec/rtems/include/rtems/rtems/tasks.h deleted file mode 100644 index d92913548e..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/tasks.h +++ /dev/null @@ -1,315 +0,0 @@ -/* tasks.h - * - * This include file contains all constants and structures associated - * with RTEMS tasks. This manager provides a comprehensive set of directives - * to create, delete, and administer tasks. - * - * Directives provided are: - * - * + create a task - * + get an ID of a task - * + start a task - * + restart a task - * + delete a task - * + suspend a task - * + resume a task - * + set a task's priority - * + change the current task's mode - * + get a task notepad entry - * + set a task notepad entry - * + wake up after interval - * + wake up when specified - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RTEMS_TASKS_h -#define __RTEMS_RTEMS_TASKS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constant to be used as the ID of current task - */ - -#define RTEMS_SELF OBJECTS_ID_OF_SELF - -/* - * This constant is passed to the rtems_task_wake_after directive as the - * interval when a task wishes to yield the CPU. - */ - -#define RTEMS_YIELD_PROCESSOR RTEMS_NO_TIMEOUT - -/* - * rtems_task_create - * - * DESCRIPTION: - * - * This routine implements the rtems_task_create directive. The task - * will have the name name. The attribute_set can be used to indicate - * that the task will be globally accessible or utilize floating point. - * The task's stack will be stack_size bytes. The task will begin - * execution with initial_priority and initial_modes. It returns the - * id of the created task in ID. - */ - -rtems_status_code rtems_task_create( - Objects_Name name, - rtems_task_priority initial_priority, - unsigned32 stack_size, - rtems_mode initial_modes, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_task_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_task_ident directive. - * This directive returns the task ID associated with name. - * If more than one task is named name, then the task to - * which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the task named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_task_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_task_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_task_delete directive. The - * task indicated by ID is deleted. - */ - -rtems_status_code rtems_task_delete( - Objects_Id id -); - -/* - * rtems_task_get_note - * - * DESCRIPTION: - * - * This routine implements the rtems_task_get_note directive. The - * value of the indicated notepad for the task associated with ID - * is returned in note. - */ - -rtems_status_code rtems_task_get_note( - Objects_Id id, - unsigned32 notepad, - unsigned32 *note -); - -/* - * rtems_task_set_note - * - * DESCRIPTION: - * - * This routine implements the rtems_task_set_note directive. The - * value of the indicated notepad for the task associated with ID - * is returned in note. - */ - -rtems_status_code rtems_task_set_note( - Objects_Id id, - unsigned32 notepad, - unsigned32 note -); - -/* - * rtems_task_mode - * - * DESCRIPTION: - * - * This routine implements the rtems_task_mode directive. The current - * values of the modes indicated by mask of the calling task are changed - * to that indicated in mode_set. The former mode of the task is - * returned in mode_set. - */ - -rtems_status_code rtems_task_mode( - rtems_mode mode_set, - rtems_mode mask, - rtems_mode *previous_mode_set -); - -/* - * rtems_task_restart - * - * DESCRIPTION: - * - * This routine implements the rtems_task_restart directive. The - * task associated with ID is restarted at its initial entry - * point with the new argument. - */ - -rtems_status_code rtems_task_restart( - Objects_Id id, - unsigned32 arg -); - -/* - * rtems_task_suspend - * - * DESCRIPTION: - * - * This routine implements the rtems_task_suspend directive. The - * SUSPENDED state is set for task associated with ID. - */ - -rtems_status_code rtems_task_suspend( - Objects_Id id -); - -/* - * rtems_task_resume - * - * DESCRIPTION: - * - * This routine implements the rtems_task_resume Directive. The - * SUSPENDED state is cleared for task associated with ID. - */ - -rtems_status_code rtems_task_resume( - Objects_Id id -); - -/* - * rtems_task_set_priority - * - * DESCRIPTION: - * - * This routine implements the rtems_task_set_priority directive. The - * current priority of the task associated with ID is set to - * new_priority. The former priority of that task is returned - * in old_priority. - */ - -rtems_status_code rtems_task_set_priority( - Objects_Id id, - rtems_task_priority new_priority, - rtems_task_priority *old_priority -); - -/* - * rtems_task_start - * - * DESCRIPTION: - * - * This routine implements the rtems_task_start directive. The - * starting execution point of the task associated with ID is - * set to entry_point with the initial argument. - */ - -rtems_status_code rtems_task_start( - Objects_Id id, - rtems_task_entry entry_point, - unsigned32 argument -); - -/* - * rtems_task_wake_when - * - * DESCRIPTION: - * - * This routine implements the rtems_task_wake_when directive. The - * calling task is blocked until the current time of day is - * equal to that indicated by time_buffer. - */ - -rtems_status_code rtems_task_wake_when( - rtems_time_of_day *time_buffer -); - -/* - * rtems_task_wake_after - * - * DESCRIPTION: - * - * This routine implements the rtems_task_wake_after directive. The - * calling task is blocked until the indicated number of clock - * ticks have occurred. - */ - -rtems_status_code rtems_task_wake_after( - rtems_interval ticks -); - -/* - * _RTEMS_tasks_Allocate - * - * DESCRIPTION: - * - * This function allocates a task control block from - * the inactive chain of free task control blocks. - */ - -STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void ); - -/* - * _RTEMS_tasks_Free - * - * DESCRIPTION: - * - * This routine frees a task control block to the - * inactive chain of free task control blocks. - - */ - -STATIC INLINE void _RTEMS_tasks_Free ( - Thread_Control *the_task -); - -/* - * _RTEMS_tasks_Cancel_wait - * - * DESCRIPTION: - * - * This routine unblocks the_thread and cancels any timers - * which the_thread has active. - */ - -STATIC INLINE void _RTEMS_tasks_Cancel_wait( - Thread_Control *the_thread -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/include/rtems/rtems/timer.h b/c/src/exec/rtems/include/rtems/rtems/timer.h deleted file mode 100644 index f6ccb5f4a1..0000000000 --- a/c/src/exec/rtems/include/rtems/rtems/timer.h +++ /dev/null @@ -1,292 +0,0 @@ -/* timer.h - * - * This include file contains all the constants, structures, and - * prototypes associated with the Timer Manager. This manager provides - * facilities to configure, initiate, cancel, and delete timers which will - * fire at specified intervals of time. - * - * Directives provided are: - * - * + create a timer - * + get an ID of a timer - * + delete a timer - * + set a timer to fire after a number of ticks have passed - * + set a timer to fire when a specified date and time has been reached - * + reset a timer - * + cancel a time - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TIMER_h -#define __RTEMS_TIMER_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type details the classes to which a timer - * may belong. - */ - -typedef enum { - TIMER_INTERVAL, - TIMER_TIME_OF_DAY, - TIMER_DORMANT -} Timer_Classes; - -/* - * The following defines the type of a Timer Service Routine. - */ - -typedef rtems_timer_service_routine_entry Timer_Service; - -/* - * The following defines the information control block used to manage - * this class of objects. - */ - -EXTERN Objects_Information _Timer_Information; - -/* - * The following records define the control block used to manage - * each timer. - */ - -typedef struct { - Objects_Control Object; - Watchdog_Control Ticker; - Timer_Classes the_class; -} Timer_Control; - -/* - * _Timer_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Timer_Manager_initialization( - unsigned32 maximum_timers -); - -/* - * rtems_timer_create - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_create directive. The - * timer will have the name name. It returns the id of the - * created timer in ID. - */ - -rtems_status_code rtems_timer_create( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_timer_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_ident directive. - * This directive returns the timer ID associated with name. - * If more than one timer is named name, then the timer - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_timer_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_timer_cancel - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_cancel directive. It is used - * to stop the timer associated with ID from firing. - */ - -rtems_status_code rtems_timer_cancel( - Objects_Id id -); - -/* - * rtems_timer_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_delete directive. The - * timer indicated by ID is deleted. - */ - -rtems_status_code rtems_timer_delete( - Objects_Id id -); - -/* - * rtems_timer_fire_after - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_fire_after directive. It - * initiates the timer associated with ID to fire in ticks clock - * ticks. When the timer fires, the routine will be invoked. - */ - -rtems_status_code rtems_timer_fire_after( - Objects_Id id, - rtems_interval ticks, - Timer_Service routine, - void *user_data -); - -/* - * rtems_timer_fire_when - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_fire_when directive. It - * initiates the timer associated with ID to fire at wall_time - * When the timer fires, the routine will be invoked. - */ - -rtems_status_code rtems_timer_fire_when( - Objects_Id id, - rtems_time_of_day *wall_time, - Timer_Service routine, - void *user_data -); - -/* - * rtems_timer_reset - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_reset directive. It is used - * to reinitialize the interval timer associated with ID just as if - * rtems_timer_fire_after were re-invoked with the same arguments that - * were used to initiate this timer. - */ - -rtems_status_code rtems_timer_reset( - Objects_Id id -); - -/* - * _Timer_Allocate - * - * DESCRIPTION: - * - * This function allocates a timer control block from - * the inactive chain of free timer control blocks. - */ - -STATIC INLINE Timer_Control *_Timer_Allocate( void ); - -/* - * _Timer_Free - * - * DESCRIPTION: - * - * This routine frees a timer control block to the - * inactive chain of free timer control blocks. - */ - -STATIC INLINE void _Timer_Free ( - Timer_Control *the_timer -); - -/* - * _Timer_Get - * - * DESCRIPTION: - * - * This function maps timer IDs to timer control blocks. - * If ID corresponds to a local timer, then it returns - * the timer control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the returned value is undefined. - */ - -STATIC INLINE Timer_Control *_Timer_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Timer_Is_interval_class - * - * DESCRIPTION: - * - * This function returns TRUE if the class is that of an INTERVAL - * timer, and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_interval_class ( - Timer_Classes the_class -); - -/* - * _Timer_Is_time_of_day_class - * - * DESCRIPTION: - * - * This function returns TRUE if the class is that of an INTERVAL - * timer, and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_timer_of_day_class ( - Timer_Classes the_class -); - -/* - * _Timer_Is_dormant_class - * - * DESCRIPTION: - * - * This function returns TRUE if the class is that of a DORMANT - * timer, and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_dormant_class ( - Timer_Classes the_class -); - -/* - * _Timer_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_timer is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_null ( - Timer_Control *the_timer -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/asr.inl b/c/src/exec/rtems/inline/asr.inl deleted file mode 100644 index a2da1ae311..0000000000 --- a/c/src/exec/rtems/inline/asr.inl +++ /dev/null @@ -1,105 +0,0 @@ -/* inline/asr.inl - * - * This include file contains the implemenation of all routines - * associated with the asynchronous signal handler which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ASR_inl -#define __INLINE_ASR_inl - -#include - -/*PAGE - * - * _ASR_Initialize - * - */ - -STATIC INLINE void _ASR_Initialize ( - ASR_Information *information -) -{ - information->handler = NULL; - information->mode_set = RTEMS_DEFAULT_MODES; - information->signals_posted = 0; - information->signals_pending = 0; - information->nest_level = 0; -} - -/*PAGE - * - * _ASR_Swap_signals - * - */ - -STATIC INLINE void _ASR_Swap_signals ( - ASR_Information *information -) -{ - rtems_signal_set _signals; - ISR_Level _level; - - _ISR_Disable( _level ); - _signals = information->signals_pending; - information->signals_pending = information->signals_posted; - information->signals_posted = _signals; - _ISR_Enable( _level ); -} - -/*PAGE - * - * _ASR_Is_null_handler - * - */ - -STATIC INLINE boolean _ASR_Is_null_handler ( - rtems_asr_entry asr_handler -) -{ - return asr_handler == NULL; -} - -/*PAGE - * - * _ASR_Are_signals_pending - * - */ - -STATIC INLINE boolean _ASR_Are_signals_pending ( - ASR_Information *information -) -{ - return information->signals_posted != 0; -} - -/*PAGE - * - * _ASR_Post_signals - * - */ - -STATIC INLINE void _ASR_Post_signals( - rtems_signal_set signals, - rtems_signal_set *signal_set -) -{ - ISR_Level _level; - - _ISR_Disable( _level ); - *signal_set |= signals; - _ISR_Enable( _level ); -} - - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/attr.inl b/c/src/exec/rtems/inline/attr.inl deleted file mode 100644 index c657a08211..0000000000 --- a/c/src/exec/rtems/inline/attr.inl +++ /dev/null @@ -1,125 +0,0 @@ -/* inline/attr.inl - * - * This include file contains all of the inlined routines associated - * with attributes. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ATTRIBUTES_inl -#define __INLINE_ATTRIBUTES_inl - -/*PAGE - * - * _Attributes_Set - */ - -STATIC INLINE rtems_attribute _Attributes_Set ( - rtems_attribute new_attributes, - rtems_attribute attribute_set -) -{ - return attribute_set | new_attributes; -} - -/*PAGE - * - * _Attributes_Clear - */ - -STATIC INLINE rtems_attribute _Attributes_Clear ( - rtems_attribute attribute_set, - rtems_attribute mask -) -{ - return attribute_set & ~mask; -} - -/*PAGE - * - * _Attributes_Is_floating_point - * - */ - -STATIC INLINE boolean _Attributes_Is_floating_point( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_FLOATING_POINT ); -} - -/*PAGE - * - * _Attributes_Is_global - * - */ - -STATIC INLINE boolean _Attributes_Is_global( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_GLOBAL ); -} - -/*PAGE - * - * _Attributes_Is_priority - * - */ - -STATIC INLINE boolean _Attributes_Is_priority( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_PRIORITY ); -} - -/*PAGE - * - * _Attributes_Is_limit - * - */ - -STATIC INLINE boolean _Attributes_Is_limit( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_LIMIT ); -} - -/*PAGE - * - * _Attributes_Is_binary_semaphore - * - */ - -STATIC INLINE boolean _Attributes_Is_binary_semaphore( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_BINARY_SEMAPHORE ); -} - -/*PAGE - * - * _Attributes_Is_inherit_priority - * - */ - -STATIC INLINE boolean _Attributes_Is_inherit_priority( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_INHERIT_PRIORITY ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/dpmem.inl b/c/src/exec/rtems/inline/dpmem.inl deleted file mode 100644 index 829ec5ab07..0000000000 --- a/c/src/exec/rtems/inline/dpmem.inl +++ /dev/null @@ -1,75 +0,0 @@ -/* inline/dpmem.inl - * - * This include file contains the inline routine used in conjunction - * with the Dual Ported Memory Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_DPMEM_inl -#define __INLINE_DPMEM_inl - - -/*PAGE - * - * _Dual_ported_memory_Allocate - * - */ - -STATIC INLINE Dual_ported_memory_Control - *_Dual_ported_memory_Allocate ( void ) -{ - return (Dual_ported_memory_Control *) - _Objects_Allocate( &_Dual_ported_memory_Information ); -} - -/*PAGE - * - * _Dual_ported_memory_Free - * - */ - -STATIC INLINE void _Dual_ported_memory_Free ( - Dual_ported_memory_Control *the_port -) -{ - _Objects_Free( &_Dual_ported_memory_Information, &the_port->Object ); -} - -/*PAGE - * - * _Dual_ported_memory_Get - * - */ - -STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Dual_ported_memory_Control *) - _Objects_Get( &_Dual_ported_memory_Information, id, location ); -} - -/*PAGE - * - * _Dual_ported_memory_Is_null - */ - -STATIC INLINE boolean _Dual_ported_memory_Is_null( - Dual_ported_memory_Control *the_port -) -{ - return ( the_port == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/event.inl b/c/src/exec/rtems/inline/event.inl deleted file mode 100644 index 2f2f480001..0000000000 --- a/c/src/exec/rtems/inline/event.inl +++ /dev/null @@ -1,30 +0,0 @@ -/* inline/event.inl - * - * This include file contains the static inline implementation of - * macros for the Event Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_EVENT_inl -#define __MACROS_EVENT_inl - -/* - * Event_Manager_initialization - */ - -STATIC INLINE void _Event_Manager_initialization( void ) -{ - _Event_Sync = FALSE; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/eventset.inl b/c/src/exec/rtems/inline/eventset.inl deleted file mode 100644 index b38c61de1a..0000000000 --- a/c/src/exec/rtems/inline/eventset.inl +++ /dev/null @@ -1,71 +0,0 @@ -/* inline/eventset.inl - * - * This include file contains the information pertaining to event sets. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_EVENT_SET_inl -#define __INLINE_EVENT_SET_inl - -/*PAGE - * - * _Event_sets_Is_empty - */ - -STATIC INLINE boolean _Event_sets_Is_empty( - rtems_event_set the_event_set -) -{ - return ( the_event_set == 0 ); -} - -/*PAGE - * - * _Event_sets_Post - */ - -STATIC INLINE void _Event_sets_Post( - rtems_event_set the_new_events, - rtems_event_set *the_event_set -) -{ - *the_event_set |= the_new_events; -} - -/*PAGE - * - * _Event_sets_Get - */ - -STATIC INLINE rtems_event_set _Event_sets_Get( - rtems_event_set the_event_set, - rtems_event_set the_event_condition -) -{ - return ( the_event_set & the_event_condition ); -} - -/*PAGE - * - * _Event_sets_Clear - */ - -STATIC INLINE rtems_event_set _Event_sets_Clear( - rtems_event_set the_event_set, - rtems_event_set the_mask -) -{ - return ( the_event_set & ~(the_mask) ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/message.inl b/c/src/exec/rtems/inline/message.inl deleted file mode 100644 index ee8d5f6cb1..0000000000 --- a/c/src/exec/rtems/inline/message.inl +++ /dev/null @@ -1,160 +0,0 @@ -/* message.inl - * - * This include file contains the static inline implementation of all - * inlined routines in the Message Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MESSAGE_QUEUE_inl -#define __MESSAGE_QUEUE_inl - -/*PAGE - * - * _Message_queue_Copy_buffer - * - */ - -STATIC INLINE void _Message_queue_Copy_buffer ( - Message_queue_Buffer *source, - Message_queue_Buffer *destination -) -{ - *destination = *source; -} - -/*PAGE - * - * _Message_queue_Allocate_message_buffer - * - */ - -STATIC INLINE Message_queue_Buffer_control * - _Message_queue_Allocate_message_buffer ( void ) -{ - return (Message_queue_Buffer_control *) - _Chain_Get( &_Message_queue_Inactive_messages ); -} - -/*PAGE - * - * _Message_queue_Free_message_buffer - * - */ - -STATIC INLINE void _Message_queue_Free_message_buffer ( - Message_queue_Buffer_control *the_message -) -{ - _Chain_Append( &_Message_queue_Inactive_messages, &the_message->Node ); -} - -/*PAGE - * - * _Message_queue_Get_pending_message - * - */ - -STATIC INLINE - Message_queue_Buffer_control *_Message_queue_Get_pending_message ( - Message_queue_Control *the_message_queue -) -{ - return (Message_queue_Buffer_control *) - _Chain_Get_unprotected( &the_message_queue->Pending_messages ); -} - -/*PAGE - * - * _Message_queue_Append - * - */ - -STATIC INLINE void _Message_queue_Append ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -) -{ - _Chain_Append( &the_message_queue->Pending_messages, &the_message->Node ); -} - -/*PAGE - * - * _Message_queue_Prepend - * - */ - -STATIC INLINE void _Message_queue_Prepend ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -) -{ - _Chain_Prepend( - &the_message_queue->Pending_messages, - &the_message->Node - ); -} - -/*PAGE - * - * _Message_queue_Is_null - * - */ - -STATIC INLINE boolean _Message_queue_Is_null ( - Message_queue_Control *the_message_queue -) -{ - return ( the_message_queue == NULL ); -} - -/*PAGE - * - * _Message_queue_Allocate - * - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Allocate ( void ) -{ - return (Message_queue_Control *) - _Objects_Allocate( &_Message_queue_Information ); -} - -/*PAGE - * - * _Message_queue_Free - * - */ - -STATIC INLINE void _Message_queue_Free ( - Message_queue_Control *the_message_queue -) -{ - _Objects_Free( &_Message_queue_Information, &the_message_queue->Object ); -} - -/*PAGE - * - * _Message_queue_Get - * - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Message_queue_Control *) - _Objects_Get( &_Message_queue_Information, id, location ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/modes.inl b/c/src/exec/rtems/inline/modes.inl deleted file mode 100644 index 6331a18a3a..0000000000 --- a/c/src/exec/rtems/inline/modes.inl +++ /dev/null @@ -1,136 +0,0 @@ -/* modes.inl - * - * This include file contains the static inline implementation of the - * inlined routines in the Mode Handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MODES_inl -#define __MODES_inl - -/*PAGE - * - * RTEMS_INTERRUPT_LEVEL - */ - -STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL ( - rtems_mode mode_set -) -{ - return mode_set & RTEMS_INTERRUPT_MASK; -} - -/*PAGE - * - * _Modes_Mask_changed - * - */ - -STATIC INLINE boolean _Modes_Mask_changed ( - rtems_mode mode_set, - rtems_mode masks -) -{ - return ( mode_set & masks ); -} - -/*PAGE - * - * _Modes_Is_asr_disabled - * - */ - -STATIC INLINE boolean _Modes_Is_asr_disabled ( - rtems_mode mode_set -) -{ - return ( mode_set & RTEMS_ASR_MASK ); -} - -/*PAGE - * - * _Modes_Is_preempt - * - */ - -STATIC INLINE boolean _Modes_Is_preempt ( - rtems_mode mode_set -) -{ - return ( ( mode_set & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT ); -} - -/*PAGE - * - * _Modes_Is_timeslice - * - */ - -STATIC INLINE boolean _Modes_Is_timeslice ( - rtems_mode mode_set -) -{ - return ((mode_set & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) == - (RTEMS_TIMESLICE|RTEMS_PREEMPT) ); -} - -/*PAGE - * - * _Modes_Get_interrupt_level - * - */ - -STATIC INLINE ISR_Level _Modes_Get_interrupt_level ( - rtems_mode mode_set -) -{ - return ( mode_set & RTEMS_INTERRUPT_MASK ); -} - -/*PAGE - * - * _Modes_Set_interrupt_level - * - */ - -STATIC INLINE void _Modes_Set_interrupt_level ( - rtems_mode mode_set -) -{ - _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) ); -} - -/*PAGE - * - * _Modes_Change - * - */ - -STATIC INLINE void _Modes_Change ( - rtems_mode old_mode_set, - rtems_mode new_mode_set, - rtems_mode mask, - rtems_mode *out_mode_set, - rtems_mode *changed -) -{ - rtems_mode _out_mode; - - _out_mode = old_mode_set; - _out_mode &= ~mask; - _out_mode |= new_mode_set & mask; - *changed = _out_mode ^ old_mode_set; - *out_mode_set = _out_mode; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/options.inl b/c/src/exec/rtems/inline/options.inl deleted file mode 100644 index b3c7312010..0000000000 --- a/c/src/exec/rtems/inline/options.inl +++ /dev/null @@ -1,47 +0,0 @@ -/* options.inl - * - * This file contains the static inline implementation of the inlined - * routines from the Options Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OPTIONS_inl -#define __OPTIONS_inl - -/*PAGE - * - * _Options_Is_no_wait - * - */ - -STATIC INLINE boolean _Options_Is_no_wait ( - rtems_option option_set -) -{ - return (option_set & RTEMS_NO_WAIT); -} - -/*PAGE - * - * _Options_Is_any - * - */ - -STATIC INLINE boolean _Options_Is_any ( - rtems_option option_set -) -{ - return (option_set & RTEMS_EVENT_ANY); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/part.inl b/c/src/exec/rtems/inline/part.inl deleted file mode 100644 index 78f86dcefc..0000000000 --- a/c/src/exec/rtems/inline/part.inl +++ /dev/null @@ -1,157 +0,0 @@ -/* part.inl - * - * This file contains the macro implementation of all inlined routines - * in the Partition Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PARTITION_inl -#define __PARTITION_inl - -/*PAGE - * - * _Partition_Allocate_buffer - * - */ - -STATIC INLINE void *_Partition_Allocate_buffer ( - Partition_Control *the_partition -) -{ - return _Chain_Get( &the_partition->Memory ); -} - -/*PAGE - * - * _Partition_Free_buffer - * - */ - -STATIC INLINE void _Partition_Free_buffer ( - Partition_Control *the_partition, - Chain_Node *the_buffer -) -{ - _Chain_Append( &the_partition->Memory, the_buffer ); -} - -/*PAGE - * - * _Partition_Is_buffer_on_boundary - * - */ - -STATIC INLINE boolean _Partition_Is_buffer_on_boundary ( - void *the_buffer, - Partition_Control *the_partition -) -{ - unsigned32 offset; - - offset = (unsigned32) _Addresses_Subtract( - the_buffer, - the_partition->starting_address - ); - - return ((offset % the_partition->buffer_size) == 0); -} - -/*PAGE - * - * _Partition_Is_buffer_valid - * - */ - -STATIC INLINE boolean _Partition_Is_buffer_valid ( - Chain_Node *the_buffer, - Partition_Control *the_partition -) -{ - void *starting; - void *ending; - - starting = the_partition->starting_address; - ending = _Addresses_Add_offset( starting, the_partition->length ); - - return ( - _Addresses_Is_in_range( the_buffer, starting, ending ) && - _Partition_Is_buffer_on_boundary( the_buffer, the_partition ) - ); -} - -/*PAGE - * - * _Partition_Is_buffer_size_aligned - * - */ - -STATIC INLINE boolean _Partition_Is_buffer_size_aligned ( - unsigned32 buffer_size -) -{ - return ((buffer_size % CPU_PARTITION_ALIGNMENT) == 0); -} - -/*PAGE - * - * _Partition_Allocate - * - */ - -STATIC INLINE Partition_Control *_Partition_Allocate ( void ) -{ - return (Partition_Control *) _Objects_Allocate( &_Partition_Information ); -} - -/*PAGE - * - * _Partition_Free - * - */ - -STATIC INLINE void _Partition_Free ( - Partition_Control *the_partition -) -{ - _Objects_Free( &_Partition_Information, &the_partition->Object ); -} - -/*PAGE - * - * _Partition_Get - * - */ - -STATIC INLINE Partition_Control *_Partition_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Partition_Control *) - _Objects_Get( &_Partition_Information, id, location ); -} - -/*PAGE - * - * _Partition_Is_null - * - */ - -STATIC INLINE boolean _Partition_Is_null ( - Partition_Control *the_partition -) -{ - return ( the_partition == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/ratemon.inl b/c/src/exec/rtems/inline/ratemon.inl deleted file mode 100644 index b748f919b3..0000000000 --- a/c/src/exec/rtems/inline/ratemon.inl +++ /dev/null @@ -1,113 +0,0 @@ -/* ratemon.inl - * - * This file contains the static inline implementation of the inlined - * routines in the Rate Monotonic Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RATE_MONOTONIC_inl -#define __RATE_MONOTONIC_inl - -/*PAGE - * - * _Rate_monotonic_Allocate - * - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void ) -{ - return (Rate_monotonic_Control *) - _Objects_Allocate( &_Rate_monotonic_Information ); -} - -/*PAGE - * - * _Rate_monotonic_Free - * - */ - -STATIC INLINE void _Rate_monotonic_Free ( - Rate_monotonic_Control *the_period -) -{ - _Objects_Free( &_Rate_monotonic_Information, &the_period->Object ); -} - -/*PAGE - * - * _Rate_monotonic_Get - * - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Rate_monotonic_Control *) - _Objects_Get( &_Rate_monotonic_Information, id, location ); -} - -/*PAGE - * - * _Rate_monotonic_Is_active - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_active ( - Rate_monotonic_Control *the_period -) -{ - return (the_period->state == RATE_MONOTONIC_ACTIVE); -} - -/*PAGE - * - * _Rate_monotonic_Is_inactive - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_inactive ( - Rate_monotonic_Control *the_period -) -{ - return (the_period->state == RATE_MONOTONIC_INACTIVE); -} - -/*PAGE - * - * _Rate_monotonic_Is_expired - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_expired ( - Rate_monotonic_Control *the_period -) -{ - return (the_period->state == RATE_MONOTONIC_EXPIRED); -} - -/*PAGE - * - * _Rate_monotonic_Is_null - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_null ( - Rate_monotonic_Control *the_period -) -{ - return (the_period == NULL); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/region.inl b/c/src/exec/rtems/inline/region.inl deleted file mode 100644 index 5a0e4da1bf..0000000000 --- a/c/src/exec/rtems/inline/region.inl +++ /dev/null @@ -1,101 +0,0 @@ -/* region.inl - * - * This file contains the macro implementation of the inlined - * routines from the Region Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __REGION_inl -#define __REGION_inl - -/*PAGE - * - * _Region_Allocate - * - */ - -STATIC INLINE Region_Control *_Region_Allocate( void ) -{ - return (Region_Control *) _Objects_Allocate( &_Region_Information ); -} - -/*PAGE - * - * _Region_Free - * - */ - -STATIC INLINE void _Region_Free ( - Region_Control *the_region -) -{ - _Objects_Free( &_Region_Information, &the_region->Object ); -} - -/*PAGE - * - * _Region_Get - * - */ - -STATIC INLINE Region_Control *_Region_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Region_Control *) - _Objects_Get( &_Region_Information, id, location ); -} - -/*PAGE - * - * _Region_Allocate_segment - * - */ - -STATIC INLINE void *_Region_Allocate_segment ( - Region_Control *the_region, - unsigned32 size -) -{ - return _Heap_Allocate( &the_region->Memory, size ); -} - -/*PAGE - * - * _Region_Free_segment - * - */ - -STATIC INLINE boolean _Region_Free_segment ( - Region_Control *the_region, - void *the_segment -) -{ - return _Heap_Free( &the_region->Memory, the_segment ); -} - -/*PAGE - * - * _Region_Is_null - * - */ - -STATIC INLINE boolean _Region_Is_null ( - Region_Control *the_region -) -{ - return ( the_region == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/asr.inl b/c/src/exec/rtems/inline/rtems/rtems/asr.inl deleted file mode 100644 index a2da1ae311..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/asr.inl +++ /dev/null @@ -1,105 +0,0 @@ -/* inline/asr.inl - * - * This include file contains the implemenation of all routines - * associated with the asynchronous signal handler which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ASR_inl -#define __INLINE_ASR_inl - -#include - -/*PAGE - * - * _ASR_Initialize - * - */ - -STATIC INLINE void _ASR_Initialize ( - ASR_Information *information -) -{ - information->handler = NULL; - information->mode_set = RTEMS_DEFAULT_MODES; - information->signals_posted = 0; - information->signals_pending = 0; - information->nest_level = 0; -} - -/*PAGE - * - * _ASR_Swap_signals - * - */ - -STATIC INLINE void _ASR_Swap_signals ( - ASR_Information *information -) -{ - rtems_signal_set _signals; - ISR_Level _level; - - _ISR_Disable( _level ); - _signals = information->signals_pending; - information->signals_pending = information->signals_posted; - information->signals_posted = _signals; - _ISR_Enable( _level ); -} - -/*PAGE - * - * _ASR_Is_null_handler - * - */ - -STATIC INLINE boolean _ASR_Is_null_handler ( - rtems_asr_entry asr_handler -) -{ - return asr_handler == NULL; -} - -/*PAGE - * - * _ASR_Are_signals_pending - * - */ - -STATIC INLINE boolean _ASR_Are_signals_pending ( - ASR_Information *information -) -{ - return information->signals_posted != 0; -} - -/*PAGE - * - * _ASR_Post_signals - * - */ - -STATIC INLINE void _ASR_Post_signals( - rtems_signal_set signals, - rtems_signal_set *signal_set -) -{ - ISR_Level _level; - - _ISR_Disable( _level ); - *signal_set |= signals; - _ISR_Enable( _level ); -} - - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/attr.inl b/c/src/exec/rtems/inline/rtems/rtems/attr.inl deleted file mode 100644 index c657a08211..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/attr.inl +++ /dev/null @@ -1,125 +0,0 @@ -/* inline/attr.inl - * - * This include file contains all of the inlined routines associated - * with attributes. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ATTRIBUTES_inl -#define __INLINE_ATTRIBUTES_inl - -/*PAGE - * - * _Attributes_Set - */ - -STATIC INLINE rtems_attribute _Attributes_Set ( - rtems_attribute new_attributes, - rtems_attribute attribute_set -) -{ - return attribute_set | new_attributes; -} - -/*PAGE - * - * _Attributes_Clear - */ - -STATIC INLINE rtems_attribute _Attributes_Clear ( - rtems_attribute attribute_set, - rtems_attribute mask -) -{ - return attribute_set & ~mask; -} - -/*PAGE - * - * _Attributes_Is_floating_point - * - */ - -STATIC INLINE boolean _Attributes_Is_floating_point( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_FLOATING_POINT ); -} - -/*PAGE - * - * _Attributes_Is_global - * - */ - -STATIC INLINE boolean _Attributes_Is_global( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_GLOBAL ); -} - -/*PAGE - * - * _Attributes_Is_priority - * - */ - -STATIC INLINE boolean _Attributes_Is_priority( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_PRIORITY ); -} - -/*PAGE - * - * _Attributes_Is_limit - * - */ - -STATIC INLINE boolean _Attributes_Is_limit( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_LIMIT ); -} - -/*PAGE - * - * _Attributes_Is_binary_semaphore - * - */ - -STATIC INLINE boolean _Attributes_Is_binary_semaphore( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_BINARY_SEMAPHORE ); -} - -/*PAGE - * - * _Attributes_Is_inherit_priority - * - */ - -STATIC INLINE boolean _Attributes_Is_inherit_priority( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_INHERIT_PRIORITY ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/dpmem.inl b/c/src/exec/rtems/inline/rtems/rtems/dpmem.inl deleted file mode 100644 index 829ec5ab07..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/dpmem.inl +++ /dev/null @@ -1,75 +0,0 @@ -/* inline/dpmem.inl - * - * This include file contains the inline routine used in conjunction - * with the Dual Ported Memory Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_DPMEM_inl -#define __INLINE_DPMEM_inl - - -/*PAGE - * - * _Dual_ported_memory_Allocate - * - */ - -STATIC INLINE Dual_ported_memory_Control - *_Dual_ported_memory_Allocate ( void ) -{ - return (Dual_ported_memory_Control *) - _Objects_Allocate( &_Dual_ported_memory_Information ); -} - -/*PAGE - * - * _Dual_ported_memory_Free - * - */ - -STATIC INLINE void _Dual_ported_memory_Free ( - Dual_ported_memory_Control *the_port -) -{ - _Objects_Free( &_Dual_ported_memory_Information, &the_port->Object ); -} - -/*PAGE - * - * _Dual_ported_memory_Get - * - */ - -STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Dual_ported_memory_Control *) - _Objects_Get( &_Dual_ported_memory_Information, id, location ); -} - -/*PAGE - * - * _Dual_ported_memory_Is_null - */ - -STATIC INLINE boolean _Dual_ported_memory_Is_null( - Dual_ported_memory_Control *the_port -) -{ - return ( the_port == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/event.inl b/c/src/exec/rtems/inline/rtems/rtems/event.inl deleted file mode 100644 index 2f2f480001..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/event.inl +++ /dev/null @@ -1,30 +0,0 @@ -/* inline/event.inl - * - * This include file contains the static inline implementation of - * macros for the Event Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_EVENT_inl -#define __MACROS_EVENT_inl - -/* - * Event_Manager_initialization - */ - -STATIC INLINE void _Event_Manager_initialization( void ) -{ - _Event_Sync = FALSE; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/eventset.inl b/c/src/exec/rtems/inline/rtems/rtems/eventset.inl deleted file mode 100644 index b38c61de1a..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/eventset.inl +++ /dev/null @@ -1,71 +0,0 @@ -/* inline/eventset.inl - * - * This include file contains the information pertaining to event sets. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_EVENT_SET_inl -#define __INLINE_EVENT_SET_inl - -/*PAGE - * - * _Event_sets_Is_empty - */ - -STATIC INLINE boolean _Event_sets_Is_empty( - rtems_event_set the_event_set -) -{ - return ( the_event_set == 0 ); -} - -/*PAGE - * - * _Event_sets_Post - */ - -STATIC INLINE void _Event_sets_Post( - rtems_event_set the_new_events, - rtems_event_set *the_event_set -) -{ - *the_event_set |= the_new_events; -} - -/*PAGE - * - * _Event_sets_Get - */ - -STATIC INLINE rtems_event_set _Event_sets_Get( - rtems_event_set the_event_set, - rtems_event_set the_event_condition -) -{ - return ( the_event_set & the_event_condition ); -} - -/*PAGE - * - * _Event_sets_Clear - */ - -STATIC INLINE rtems_event_set _Event_sets_Clear( - rtems_event_set the_event_set, - rtems_event_set the_mask -) -{ - return ( the_event_set & ~(the_mask) ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/message.inl b/c/src/exec/rtems/inline/rtems/rtems/message.inl deleted file mode 100644 index ee8d5f6cb1..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/message.inl +++ /dev/null @@ -1,160 +0,0 @@ -/* message.inl - * - * This include file contains the static inline implementation of all - * inlined routines in the Message Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MESSAGE_QUEUE_inl -#define __MESSAGE_QUEUE_inl - -/*PAGE - * - * _Message_queue_Copy_buffer - * - */ - -STATIC INLINE void _Message_queue_Copy_buffer ( - Message_queue_Buffer *source, - Message_queue_Buffer *destination -) -{ - *destination = *source; -} - -/*PAGE - * - * _Message_queue_Allocate_message_buffer - * - */ - -STATIC INLINE Message_queue_Buffer_control * - _Message_queue_Allocate_message_buffer ( void ) -{ - return (Message_queue_Buffer_control *) - _Chain_Get( &_Message_queue_Inactive_messages ); -} - -/*PAGE - * - * _Message_queue_Free_message_buffer - * - */ - -STATIC INLINE void _Message_queue_Free_message_buffer ( - Message_queue_Buffer_control *the_message -) -{ - _Chain_Append( &_Message_queue_Inactive_messages, &the_message->Node ); -} - -/*PAGE - * - * _Message_queue_Get_pending_message - * - */ - -STATIC INLINE - Message_queue_Buffer_control *_Message_queue_Get_pending_message ( - Message_queue_Control *the_message_queue -) -{ - return (Message_queue_Buffer_control *) - _Chain_Get_unprotected( &the_message_queue->Pending_messages ); -} - -/*PAGE - * - * _Message_queue_Append - * - */ - -STATIC INLINE void _Message_queue_Append ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -) -{ - _Chain_Append( &the_message_queue->Pending_messages, &the_message->Node ); -} - -/*PAGE - * - * _Message_queue_Prepend - * - */ - -STATIC INLINE void _Message_queue_Prepend ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -) -{ - _Chain_Prepend( - &the_message_queue->Pending_messages, - &the_message->Node - ); -} - -/*PAGE - * - * _Message_queue_Is_null - * - */ - -STATIC INLINE boolean _Message_queue_Is_null ( - Message_queue_Control *the_message_queue -) -{ - return ( the_message_queue == NULL ); -} - -/*PAGE - * - * _Message_queue_Allocate - * - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Allocate ( void ) -{ - return (Message_queue_Control *) - _Objects_Allocate( &_Message_queue_Information ); -} - -/*PAGE - * - * _Message_queue_Free - * - */ - -STATIC INLINE void _Message_queue_Free ( - Message_queue_Control *the_message_queue -) -{ - _Objects_Free( &_Message_queue_Information, &the_message_queue->Object ); -} - -/*PAGE - * - * _Message_queue_Get - * - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Message_queue_Control *) - _Objects_Get( &_Message_queue_Information, id, location ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/modes.inl b/c/src/exec/rtems/inline/rtems/rtems/modes.inl deleted file mode 100644 index 6331a18a3a..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/modes.inl +++ /dev/null @@ -1,136 +0,0 @@ -/* modes.inl - * - * This include file contains the static inline implementation of the - * inlined routines in the Mode Handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MODES_inl -#define __MODES_inl - -/*PAGE - * - * RTEMS_INTERRUPT_LEVEL - */ - -STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL ( - rtems_mode mode_set -) -{ - return mode_set & RTEMS_INTERRUPT_MASK; -} - -/*PAGE - * - * _Modes_Mask_changed - * - */ - -STATIC INLINE boolean _Modes_Mask_changed ( - rtems_mode mode_set, - rtems_mode masks -) -{ - return ( mode_set & masks ); -} - -/*PAGE - * - * _Modes_Is_asr_disabled - * - */ - -STATIC INLINE boolean _Modes_Is_asr_disabled ( - rtems_mode mode_set -) -{ - return ( mode_set & RTEMS_ASR_MASK ); -} - -/*PAGE - * - * _Modes_Is_preempt - * - */ - -STATIC INLINE boolean _Modes_Is_preempt ( - rtems_mode mode_set -) -{ - return ( ( mode_set & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT ); -} - -/*PAGE - * - * _Modes_Is_timeslice - * - */ - -STATIC INLINE boolean _Modes_Is_timeslice ( - rtems_mode mode_set -) -{ - return ((mode_set & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) == - (RTEMS_TIMESLICE|RTEMS_PREEMPT) ); -} - -/*PAGE - * - * _Modes_Get_interrupt_level - * - */ - -STATIC INLINE ISR_Level _Modes_Get_interrupt_level ( - rtems_mode mode_set -) -{ - return ( mode_set & RTEMS_INTERRUPT_MASK ); -} - -/*PAGE - * - * _Modes_Set_interrupt_level - * - */ - -STATIC INLINE void _Modes_Set_interrupt_level ( - rtems_mode mode_set -) -{ - _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) ); -} - -/*PAGE - * - * _Modes_Change - * - */ - -STATIC INLINE void _Modes_Change ( - rtems_mode old_mode_set, - rtems_mode new_mode_set, - rtems_mode mask, - rtems_mode *out_mode_set, - rtems_mode *changed -) -{ - rtems_mode _out_mode; - - _out_mode = old_mode_set; - _out_mode &= ~mask; - _out_mode |= new_mode_set & mask; - *changed = _out_mode ^ old_mode_set; - *out_mode_set = _out_mode; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/options.inl b/c/src/exec/rtems/inline/rtems/rtems/options.inl deleted file mode 100644 index b3c7312010..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/options.inl +++ /dev/null @@ -1,47 +0,0 @@ -/* options.inl - * - * This file contains the static inline implementation of the inlined - * routines from the Options Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OPTIONS_inl -#define __OPTIONS_inl - -/*PAGE - * - * _Options_Is_no_wait - * - */ - -STATIC INLINE boolean _Options_Is_no_wait ( - rtems_option option_set -) -{ - return (option_set & RTEMS_NO_WAIT); -} - -/*PAGE - * - * _Options_Is_any - * - */ - -STATIC INLINE boolean _Options_Is_any ( - rtems_option option_set -) -{ - return (option_set & RTEMS_EVENT_ANY); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/part.inl b/c/src/exec/rtems/inline/rtems/rtems/part.inl deleted file mode 100644 index 78f86dcefc..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/part.inl +++ /dev/null @@ -1,157 +0,0 @@ -/* part.inl - * - * This file contains the macro implementation of all inlined routines - * in the Partition Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PARTITION_inl -#define __PARTITION_inl - -/*PAGE - * - * _Partition_Allocate_buffer - * - */ - -STATIC INLINE void *_Partition_Allocate_buffer ( - Partition_Control *the_partition -) -{ - return _Chain_Get( &the_partition->Memory ); -} - -/*PAGE - * - * _Partition_Free_buffer - * - */ - -STATIC INLINE void _Partition_Free_buffer ( - Partition_Control *the_partition, - Chain_Node *the_buffer -) -{ - _Chain_Append( &the_partition->Memory, the_buffer ); -} - -/*PAGE - * - * _Partition_Is_buffer_on_boundary - * - */ - -STATIC INLINE boolean _Partition_Is_buffer_on_boundary ( - void *the_buffer, - Partition_Control *the_partition -) -{ - unsigned32 offset; - - offset = (unsigned32) _Addresses_Subtract( - the_buffer, - the_partition->starting_address - ); - - return ((offset % the_partition->buffer_size) == 0); -} - -/*PAGE - * - * _Partition_Is_buffer_valid - * - */ - -STATIC INLINE boolean _Partition_Is_buffer_valid ( - Chain_Node *the_buffer, - Partition_Control *the_partition -) -{ - void *starting; - void *ending; - - starting = the_partition->starting_address; - ending = _Addresses_Add_offset( starting, the_partition->length ); - - return ( - _Addresses_Is_in_range( the_buffer, starting, ending ) && - _Partition_Is_buffer_on_boundary( the_buffer, the_partition ) - ); -} - -/*PAGE - * - * _Partition_Is_buffer_size_aligned - * - */ - -STATIC INLINE boolean _Partition_Is_buffer_size_aligned ( - unsigned32 buffer_size -) -{ - return ((buffer_size % CPU_PARTITION_ALIGNMENT) == 0); -} - -/*PAGE - * - * _Partition_Allocate - * - */ - -STATIC INLINE Partition_Control *_Partition_Allocate ( void ) -{ - return (Partition_Control *) _Objects_Allocate( &_Partition_Information ); -} - -/*PAGE - * - * _Partition_Free - * - */ - -STATIC INLINE void _Partition_Free ( - Partition_Control *the_partition -) -{ - _Objects_Free( &_Partition_Information, &the_partition->Object ); -} - -/*PAGE - * - * _Partition_Get - * - */ - -STATIC INLINE Partition_Control *_Partition_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Partition_Control *) - _Objects_Get( &_Partition_Information, id, location ); -} - -/*PAGE - * - * _Partition_Is_null - * - */ - -STATIC INLINE boolean _Partition_Is_null ( - Partition_Control *the_partition -) -{ - return ( the_partition == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/ratemon.inl b/c/src/exec/rtems/inline/rtems/rtems/ratemon.inl deleted file mode 100644 index b748f919b3..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/ratemon.inl +++ /dev/null @@ -1,113 +0,0 @@ -/* ratemon.inl - * - * This file contains the static inline implementation of the inlined - * routines in the Rate Monotonic Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RATE_MONOTONIC_inl -#define __RATE_MONOTONIC_inl - -/*PAGE - * - * _Rate_monotonic_Allocate - * - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void ) -{ - return (Rate_monotonic_Control *) - _Objects_Allocate( &_Rate_monotonic_Information ); -} - -/*PAGE - * - * _Rate_monotonic_Free - * - */ - -STATIC INLINE void _Rate_monotonic_Free ( - Rate_monotonic_Control *the_period -) -{ - _Objects_Free( &_Rate_monotonic_Information, &the_period->Object ); -} - -/*PAGE - * - * _Rate_monotonic_Get - * - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Rate_monotonic_Control *) - _Objects_Get( &_Rate_monotonic_Information, id, location ); -} - -/*PAGE - * - * _Rate_monotonic_Is_active - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_active ( - Rate_monotonic_Control *the_period -) -{ - return (the_period->state == RATE_MONOTONIC_ACTIVE); -} - -/*PAGE - * - * _Rate_monotonic_Is_inactive - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_inactive ( - Rate_monotonic_Control *the_period -) -{ - return (the_period->state == RATE_MONOTONIC_INACTIVE); -} - -/*PAGE - * - * _Rate_monotonic_Is_expired - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_expired ( - Rate_monotonic_Control *the_period -) -{ - return (the_period->state == RATE_MONOTONIC_EXPIRED); -} - -/*PAGE - * - * _Rate_monotonic_Is_null - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_null ( - Rate_monotonic_Control *the_period -) -{ - return (the_period == NULL); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/region.inl b/c/src/exec/rtems/inline/rtems/rtems/region.inl deleted file mode 100644 index 5a0e4da1bf..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/region.inl +++ /dev/null @@ -1,101 +0,0 @@ -/* region.inl - * - * This file contains the macro implementation of the inlined - * routines from the Region Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __REGION_inl -#define __REGION_inl - -/*PAGE - * - * _Region_Allocate - * - */ - -STATIC INLINE Region_Control *_Region_Allocate( void ) -{ - return (Region_Control *) _Objects_Allocate( &_Region_Information ); -} - -/*PAGE - * - * _Region_Free - * - */ - -STATIC INLINE void _Region_Free ( - Region_Control *the_region -) -{ - _Objects_Free( &_Region_Information, &the_region->Object ); -} - -/*PAGE - * - * _Region_Get - * - */ - -STATIC INLINE Region_Control *_Region_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Region_Control *) - _Objects_Get( &_Region_Information, id, location ); -} - -/*PAGE - * - * _Region_Allocate_segment - * - */ - -STATIC INLINE void *_Region_Allocate_segment ( - Region_Control *the_region, - unsigned32 size -) -{ - return _Heap_Allocate( &the_region->Memory, size ); -} - -/*PAGE - * - * _Region_Free_segment - * - */ - -STATIC INLINE boolean _Region_Free_segment ( - Region_Control *the_region, - void *the_segment -) -{ - return _Heap_Free( &the_region->Memory, the_segment ); -} - -/*PAGE - * - * _Region_Is_null - * - */ - -STATIC INLINE boolean _Region_Is_null ( - Region_Control *the_region -) -{ - return ( the_region == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/sem.inl b/c/src/exec/rtems/inline/rtems/rtems/sem.inl deleted file mode 100644 index 518684a97a..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/sem.inl +++ /dev/null @@ -1,73 +0,0 @@ -/* sem.inl - * - * This file contains the static inlin implementation of the inlined - * routines from the Semaphore Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SEMAPHORE_inl -#define __SEMAPHORE_inl - -/*PAGE - * - * _Semaphore_Allocate - * - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Allocate( void ) -{ - return (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information ); -} - -/*PAGE - * - * _Semaphore_Free - * - */ - -STATIC INLINE void _Semaphore_Free ( - Semaphore_Control *the_semaphore -) -{ - _Objects_Free( &_Semaphore_Information, &the_semaphore->Object ); -} - -/*PAGE - * - * _Semaphore_Get - * - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Semaphore_Control *) - _Objects_Get( &_Semaphore_Information, id, location ); -} - -/*PAGE - * - * _Semaphore_Is_null - * - */ - -STATIC INLINE boolean _Semaphore_Is_null ( - Semaphore_Control *the_semaphore -) -{ - return ( the_semaphore == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/status.inl b/c/src/exec/rtems/inline/rtems/rtems/status.inl deleted file mode 100644 index bd158e535b..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/status.inl +++ /dev/null @@ -1,60 +0,0 @@ -/* inline/status.inl - * - * This include file contains the implementations of the inlined - * routines for the status package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_STATUS_inl -#define __INLINE_STATUS_inl - -/*PAGE - * - * rtems_is_status_successful - * - */ - -STATIC INLINE boolean rtems_is_status_successful( - rtems_status_code code -) -{ - return (code == RTEMS_SUCCESSFUL); -} - -/*PAGE - * - * rtems_are_statuses_equal - * - */ - -STATIC INLINE boolean rtems_are_statuses_equal( - rtems_status_code code1, - rtems_status_code code2 -) -{ - return (code1 == code2); -} - -/* - * _Status_Is_proxy_blocking - * - */ - -STATIC INLINE boolean _Status_Is_proxy_blocking ( - rtems_status_code code -) -{ - return (code == RTEMS_PROXY_BLOCKING); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/tasks.inl b/c/src/exec/rtems/inline/rtems/rtems/tasks.inl deleted file mode 100644 index d5df18831a..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/tasks.inl +++ /dev/null @@ -1,90 +0,0 @@ -/* tasks.inl - * - * This file contains the static inline implementation of all inlined - * routines in the with RTEMS Tasks Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TASKS_inl -#define __RTEMS_TASKS_inl - -/*PAGE - * - * _RTEMS_tasks_Allocate - * - */ - -STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void ) -{ - return (Thread_Control *) _Objects_Allocate( &_Thread_Information ); -} - -/*PAGE - * - * _RTEMS_tasks_Free - * - */ - -STATIC INLINE void _RTEMS_tasks_Free ( - Thread_Control *the_task -) -{ - _Objects_Free( &_Thread_Information, &the_task->Object ); -} - -/*PAGE - * - * _RTEMS_tasks_Cancel_wait - * - */ - -STATIC INLINE void _RTEMS_tasks_Cancel_wait( - Thread_Control *the_thread -) -{ - States_Control state; - States_Control remote_state; - - state = the_thread->current_state; - - if ( _States_Is_waiting_on_thread_queue( state ) ) { - if ( _States_Is_waiting_for_rpc_reply( state ) && - _States_Is_locally_blocked( state ) ) { - remote_state = _States_Clear( - STATES_WAITING_FOR_RPC_REPLY | STATES_TRANSIENT, - state - ); - - switch ( remote_state ) { - - case STATES_WAITING_FOR_BUFFER: - _Partition_MP_Send_extract_proxy( the_thread ); - break; - case STATES_WAITING_FOR_SEGMENT: - _Region_MP_Send_extract_proxy( the_thread ); - break; - case STATES_WAITING_FOR_SEMAPHORE: - _Semaphore_MP_Send_extract_proxy( the_thread ); - break; - case STATES_WAITING_FOR_MESSAGE: - _Message_queue_MP_Send_extract_proxy( the_thread ); - break; - } - } - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - } - else if ( _Watchdog_Is_active( &the_thread->Timer ) ) - (void) _Watchdog_Remove( &the_thread->Timer ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/rtems/rtems/timer.inl b/c/src/exec/rtems/inline/rtems/rtems/timer.inl deleted file mode 100644 index 7af3b9fa3d..0000000000 --- a/c/src/exec/rtems/inline/rtems/rtems/timer.inl +++ /dev/null @@ -1,112 +0,0 @@ -/* timer.inl - * - * This file contains the static inline implementation of the inlined routines - * from the Timer Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIMER_inl -#define __TIMER_inl - -/*PAGE - * - * _Timer_Allocate - * - */ - -STATIC INLINE Timer_Control *_Timer_Allocate( void ) -{ - return (Timer_Control *) _Objects_Allocate( &_Timer_Information ); -} - -/*PAGE - * - * _Timer_Free - * - */ - -STATIC INLINE void _Timer_Free ( - Timer_Control *the_timer -) -{ - _Objects_Free( &_Timer_Information, &the_timer->Object ); -} - -/*PAGE - * - * _Timer_Get - * - */ - -STATIC INLINE Timer_Control *_Timer_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Timer_Control *) - _Objects_Get( &_Timer_Information, id, location ); -} - -/*PAGE - * - * _Timer_Is_interval_class - * - */ - -STATIC INLINE boolean _Timer_Is_interval_class ( - Timer_Classes the_class -) -{ - return ( the_class == TIMER_INTERVAL ); -} - -/*PAGE - * - * _Timer_Is_time_of_day_class - * - */ - -STATIC INLINE boolean _Timer_Is_timer_of_day_class ( - Timer_Classes the_class -) -{ - return ( the_class == TIMER_TIME_OF_DAY ); -} - -/*PAGE - * - * _Timer_Is_dormant_class - * - */ - -STATIC INLINE boolean _Timer_Is_dormant_class ( - Timer_Classes the_class -) -{ - return ( the_class == TIMER_DORMANT ); -} - -/*PAGE - * - * _Timer_Is_null - * - */ - -STATIC INLINE boolean _Timer_Is_null ( - Timer_Control *the_timer -) -{ - return ( the_timer == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/sem.inl b/c/src/exec/rtems/inline/sem.inl deleted file mode 100644 index 518684a97a..0000000000 --- a/c/src/exec/rtems/inline/sem.inl +++ /dev/null @@ -1,73 +0,0 @@ -/* sem.inl - * - * This file contains the static inlin implementation of the inlined - * routines from the Semaphore Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SEMAPHORE_inl -#define __SEMAPHORE_inl - -/*PAGE - * - * _Semaphore_Allocate - * - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Allocate( void ) -{ - return (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information ); -} - -/*PAGE - * - * _Semaphore_Free - * - */ - -STATIC INLINE void _Semaphore_Free ( - Semaphore_Control *the_semaphore -) -{ - _Objects_Free( &_Semaphore_Information, &the_semaphore->Object ); -} - -/*PAGE - * - * _Semaphore_Get - * - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Semaphore_Control *) - _Objects_Get( &_Semaphore_Information, id, location ); -} - -/*PAGE - * - * _Semaphore_Is_null - * - */ - -STATIC INLINE boolean _Semaphore_Is_null ( - Semaphore_Control *the_semaphore -) -{ - return ( the_semaphore == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/status.inl b/c/src/exec/rtems/inline/status.inl deleted file mode 100644 index bd158e535b..0000000000 --- a/c/src/exec/rtems/inline/status.inl +++ /dev/null @@ -1,60 +0,0 @@ -/* inline/status.inl - * - * This include file contains the implementations of the inlined - * routines for the status package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_STATUS_inl -#define __INLINE_STATUS_inl - -/*PAGE - * - * rtems_is_status_successful - * - */ - -STATIC INLINE boolean rtems_is_status_successful( - rtems_status_code code -) -{ - return (code == RTEMS_SUCCESSFUL); -} - -/*PAGE - * - * rtems_are_statuses_equal - * - */ - -STATIC INLINE boolean rtems_are_statuses_equal( - rtems_status_code code1, - rtems_status_code code2 -) -{ - return (code1 == code2); -} - -/* - * _Status_Is_proxy_blocking - * - */ - -STATIC INLINE boolean _Status_Is_proxy_blocking ( - rtems_status_code code -) -{ - return (code == RTEMS_PROXY_BLOCKING); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/tasks.inl b/c/src/exec/rtems/inline/tasks.inl deleted file mode 100644 index d5df18831a..0000000000 --- a/c/src/exec/rtems/inline/tasks.inl +++ /dev/null @@ -1,90 +0,0 @@ -/* tasks.inl - * - * This file contains the static inline implementation of all inlined - * routines in the with RTEMS Tasks Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TASKS_inl -#define __RTEMS_TASKS_inl - -/*PAGE - * - * _RTEMS_tasks_Allocate - * - */ - -STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void ) -{ - return (Thread_Control *) _Objects_Allocate( &_Thread_Information ); -} - -/*PAGE - * - * _RTEMS_tasks_Free - * - */ - -STATIC INLINE void _RTEMS_tasks_Free ( - Thread_Control *the_task -) -{ - _Objects_Free( &_Thread_Information, &the_task->Object ); -} - -/*PAGE - * - * _RTEMS_tasks_Cancel_wait - * - */ - -STATIC INLINE void _RTEMS_tasks_Cancel_wait( - Thread_Control *the_thread -) -{ - States_Control state; - States_Control remote_state; - - state = the_thread->current_state; - - if ( _States_Is_waiting_on_thread_queue( state ) ) { - if ( _States_Is_waiting_for_rpc_reply( state ) && - _States_Is_locally_blocked( state ) ) { - remote_state = _States_Clear( - STATES_WAITING_FOR_RPC_REPLY | STATES_TRANSIENT, - state - ); - - switch ( remote_state ) { - - case STATES_WAITING_FOR_BUFFER: - _Partition_MP_Send_extract_proxy( the_thread ); - break; - case STATES_WAITING_FOR_SEGMENT: - _Region_MP_Send_extract_proxy( the_thread ); - break; - case STATES_WAITING_FOR_SEMAPHORE: - _Semaphore_MP_Send_extract_proxy( the_thread ); - break; - case STATES_WAITING_FOR_MESSAGE: - _Message_queue_MP_Send_extract_proxy( the_thread ); - break; - } - } - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - } - else if ( _Watchdog_Is_active( &the_thread->Timer ) ) - (void) _Watchdog_Remove( &the_thread->Timer ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/inline/timer.inl b/c/src/exec/rtems/inline/timer.inl deleted file mode 100644 index 7af3b9fa3d..0000000000 --- a/c/src/exec/rtems/inline/timer.inl +++ /dev/null @@ -1,112 +0,0 @@ -/* timer.inl - * - * This file contains the static inline implementation of the inlined routines - * from the Timer Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIMER_inl -#define __TIMER_inl - -/*PAGE - * - * _Timer_Allocate - * - */ - -STATIC INLINE Timer_Control *_Timer_Allocate( void ) -{ - return (Timer_Control *) _Objects_Allocate( &_Timer_Information ); -} - -/*PAGE - * - * _Timer_Free - * - */ - -STATIC INLINE void _Timer_Free ( - Timer_Control *the_timer -) -{ - _Objects_Free( &_Timer_Information, &the_timer->Object ); -} - -/*PAGE - * - * _Timer_Get - * - */ - -STATIC INLINE Timer_Control *_Timer_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Timer_Control *) - _Objects_Get( &_Timer_Information, id, location ); -} - -/*PAGE - * - * _Timer_Is_interval_class - * - */ - -STATIC INLINE boolean _Timer_Is_interval_class ( - Timer_Classes the_class -) -{ - return ( the_class == TIMER_INTERVAL ); -} - -/*PAGE - * - * _Timer_Is_time_of_day_class - * - */ - -STATIC INLINE boolean _Timer_Is_timer_of_day_class ( - Timer_Classes the_class -) -{ - return ( the_class == TIMER_TIME_OF_DAY ); -} - -/*PAGE - * - * _Timer_Is_dormant_class - * - */ - -STATIC INLINE boolean _Timer_Is_dormant_class ( - Timer_Classes the_class -) -{ - return ( the_class == TIMER_DORMANT ); -} - -/*PAGE - * - * _Timer_Is_null - * - */ - -STATIC INLINE boolean _Timer_Is_null ( - Timer_Control *the_timer -) -{ - return ( the_timer == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/asr.inl b/c/src/exec/rtems/macros/asr.inl deleted file mode 100644 index 421755879b..0000000000 --- a/c/src/exec/rtems/macros/asr.inl +++ /dev/null @@ -1,89 +0,0 @@ -/* macros/asr.h - * - * This include file contains the implemenation of all routines - * associated with the asynchronous signal handler which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ASR_h -#define __INLINE_ASR_h - -#include - -/*PAGE - * - * _ASR_Initialize - * - */ - -#define _ASR_Initialize( _information ) \ -{ \ - (_information)->handler = NULL; \ - (_information)->mode_set = RTEMS_DEFAULT_MODES; \ - (_information)->signals_posted = 0; \ - (_information)->signals_pending = 0; \ - (_information)->nest_level = 0; \ -} - -/*PAGE - * - * _ASR_Swap_signals - * - */ - -#define _ASR_Swap_signals( _information ) \ -{ \ - rtems_signal_set _signals; \ - ISR_Level _level; \ - \ - _ISR_Disable( _level ); \ - _signals = (_information)->signals_pending; \ - (_information)->signals_pending = (_information)->signals_posted; \ - (_information)->signals_posted = _signals; \ - _ISR_Enable( _level ); \ -} - -/*PAGE - * - * _ASR_Is_null_handler - * - */ - -#define _ASR_Is_null_handler( _asr_handler ) \ - ( (_asr_handler) == NULL ) - -/*PAGE - * - * _ASR_Are_signals_pending - * - */ - -#define _ASR_Are_signals_pending( _information ) \ - ( (_information)->signals_posted != 0 ) - -/*PAGE - * - * _ASR_Post_signals - * - */ - -#define _ASR_Post_signals( _signals, _signal_set ) \ - do { \ - ISR_Level _level; \ - \ - _ISR_Disable( _level ); \ - *(_signal_set) |= (_signals); \ - _ISR_Enable( _level ); \ - } while ( 0 ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/attr.inl b/c/src/exec/rtems/macros/attr.inl deleted file mode 100644 index 602622ca35..0000000000 --- a/c/src/exec/rtems/macros/attr.inl +++ /dev/null @@ -1,91 +0,0 @@ -/* macros/attr.h - * - * This include file contains all of the inlined routines associated - * with attributes. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_ATTRIBUTES_h -#define __MACROS_ATTRIBUTES_h - -/*PAGE - * - * _Attributes_Set - */ - -#define _Attributes_Set( _new_attributes, _attribute_set ) \ - ( (_attribute_set) | (_new_attributes) ) - -/*PAGE - * - * _Attributes_Clear - */ - -#define _Attributes_Clear( _attribute_set, _mask ) \ - ( (_attribute_set) & ~(_mask) ) - -/*PAGE - * - * _Attributes_Is_floating_point - * - */ - -#define _Attributes_Is_floating_point( _attribute_set ) \ - ( (_attribute_set) & RTEMS_FLOATING_POINT ) - -/*PAGE - * - * _Attributes_Is_global - * - */ - -#define _Attributes_Is_global( _attribute_set ) \ - ( (_attribute_set) & RTEMS_GLOBAL ) - -/*PAGE - * - * _Attributes_Is_priority - * - */ - -#define _Attributes_Is_priority( _attribute_set ) \ - ( (_attribute_set) & RTEMS_PRIORITY ) - -/*PAGE - * - * _Attributes_Is_limit - * - */ - -#define _Attributes_Is_limit( _attribute_set ) \ - ( (_attribute_set) & RTEMS_LIMIT ) - -/*PAGE - * - * _Attributes_Is_binary_semaphore - * - */ - -#define _Attributes_Is_binary_semaphore( _attribute_set ) \ - ( (_attribute_set) & RTEMS_BINARY_SEMAPHORE ) - -/*PAGE - * - * _Attributes_Is_inherit_priority - * - */ - -#define _Attributes_Is_inherit_priority( _attribute_set ) \ - ( (_attribute_set) & RTEMS_INHERIT_PRIORITY ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/dpmem.inl b/c/src/exec/rtems/macros/dpmem.inl deleted file mode 100644 index 3e1d7bce95..0000000000 --- a/c/src/exec/rtems/macros/dpmem.inl +++ /dev/null @@ -1,59 +0,0 @@ -/* macros/dpmem.h - * - * This include file contains the inline routine used in conjunction - * with the Dual Ported Memory Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_DPMEM_h -#define __MACROS_DPMEM_h - -/*PAGE - * - * _Dual_ported_memory_Allocate - * - */ - -#define _Dual_ported_memory_Allocate() \ - (Dual_ported_memory_Control *) \ - _Objects_Allocate( &_Dual_ported_memory_Information ) - -/*PAGE - * - * _Dual_ported_memory_Free - * - */ - -#define _Dual_ported_memory_Free( _the_port ) \ - _Objects_Free( &_Dual_ported_memory_Information, &(_the_port)->Object ) - -/*PAGE - * - * _Dual_ported_memory_Get - * - */ - -#define _Dual_ported_memory_Get( _id, _location ) \ - (Dual_ported_memory_Control *) \ - _Objects_Get( &_Dual_ported_memory_Information, (_id), (_location) ) - - -/*PAGE - * - * _Dual_ported_memory_Is_null - */ - -#define _Dual_ported_memory_Is_null( _the_port ) \ - ( (_the_port) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/event.inl b/c/src/exec/rtems/macros/event.inl deleted file mode 100644 index 1d4cb78237..0000000000 --- a/c/src/exec/rtems/macros/event.inl +++ /dev/null @@ -1,28 +0,0 @@ -/* macros/event.h - * - * This include file contains the implementation of macros for - * the Event Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_EVENT_h -#define __MACROS_EVENT_h - -/* - * Event_Manager_initialization - */ - -#define _Event_Manager_initialization() \ - _Event_Sync = FALSE - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/eventset.inl b/c/src/exec/rtems/macros/eventset.inl deleted file mode 100644 index 1803d18637..0000000000 --- a/c/src/exec/rtems/macros/eventset.inl +++ /dev/null @@ -1,53 +0,0 @@ -/* eventset.inl - * - * This include file contains the macro implementation of inlined - * routines in the event set object. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __EVENT_SET_inl -#define __EVENT_SET_inl - -/*PAGE - * - * _Event_sets_Is_empty - */ - -#define _Event_sets_Is_empty( _the_event_set ) \ - ((_the_event_set) == 0 ) - -/*PAGE - * - * _Event_sets_Is_empty - */ - -#define _Event_sets_Post( _the_new_events, _the_event_set ) \ - *(_the_event_set) |= (_the_new_events) - -/*PAGE - * - * _Event_sets_Is_empty - */ - -#define _Event_sets_Get( _the_event_set, _the_event_condition ) \ - ((_the_event_set) & (_the_event_condition)) - -/*PAGE - * - * _Event_sets_Clear - */ - -#define _Event_sets_Clear( _the_event_set, _the_mask ) \ - ((_the_event_set) & ~(_the_mask)) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/message.inl b/c/src/exec/rtems/macros/message.inl deleted file mode 100644 index 5415708ac5..0000000000 --- a/c/src/exec/rtems/macros/message.inl +++ /dev/null @@ -1,118 +0,0 @@ -/* message.inl - * - * This include file contains the macro implementation of all - * inlined routines in the Message Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MESSAGE_QUEUE_inl -#define __MESSAGE_QUEUE_inl - -/*PAGE - * - * _Message_queue_Copy_buffer - */ - -#define _Message_queue_Copy_buffer( _source, _destination ) \ - *(Message_queue_Buffer *)(_destination) = \ - *(Message_queue_Buffer *)(_source) - -/*PAGE - * - * _Message_queue_Allocate_message_buffer - * - */ - -#define _Message_queue_Allocate_message_buffer() \ - (Message_queue_Buffer_control *) \ - _Chain_Get( &_Message_queue_Inactive_messages ) - -/*PAGE - * - * _Message_queue_Free_message_buffer - * - */ - -#define _Message_queue_Free_message_buffer( _the_message ) \ - _Chain_Append( &_Message_queue_Inactive_messages, &(_the_message)->Node ) - -/*PAGE - * - * _Message_queue_Get_pending_message - * - */ - -#define _Message_queue_Get_pending_message( _the_message_queue ) \ - (Message_queue_Buffer_control *) \ - _Chain_Get_unprotected( &(_the_message_queue)->Pending_messages ) - -/*PAGE - * - * _Message_queue_Append - * - */ - -#define _Message_queue_Append( _the_message_queue, _the_message ) \ - _Chain_Append( &(_the_message_queue)->Pending_messages, \ - &(_the_message)->Node ) - -/*PAGE - * - * _Message_queue_Prepend - * - */ - -#define _Message_queue_Prepend( _the_message_queue, _the_message ) \ - _Chain_Prepend( &(_the_message_queue)->Pending_messages, \ - &(_the_message)->Node ) - -/*PAGE - * - * _Message_queue_Is_null - * - */ - -#define _Message_queue_Is_null( _the_message_queue ) \ - ( (_the_message_queue) == NULL ) - -/*PAGE - * - * _Message_queue_Allocate - * - */ - -#define _Message_queue_Allocate() \ - (Message_queue_Control *) \ - _Objects_Allocate( &_Message_queue_Information ) - -/*PAGE - * - * _Message_queue_Free - * - */ - -#define _Message_queue_Free( _the_message_queue ) \ - _Objects_Free( &_Message_queue_Information, \ - &(_the_message_queue)->Object ) - -/*PAGE - * - * _Message_queue_Get - * - */ - -#define _Message_queue_Get( _id, _location ) \ - (Message_queue_Control *) \ - _Objects_Get( &_Message_queue_Information, (_id), (_location) ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/modes.inl b/c/src/exec/rtems/macros/modes.inl deleted file mode 100644 index f8ac061dce..0000000000 --- a/c/src/exec/rtems/macros/modes.inl +++ /dev/null @@ -1,101 +0,0 @@ -/* modes.inl - * - * This include file contains the macro implementation of the - * inlined routines in the Mode Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MODES_inl -#define __MODES_inl - -/*PAGE - * - * RTEMS_INTERRUPT_LEVEL - */ - -#define RTEMS_INTERRUPT_LEVEL( _mode_set ) \ - ( (_mode_set) & RTEMS_INTERRUPT_MASK ) - -/*PAGE - * - * _Modes_Mask_changed - * - */ - -#define _Modes_Mask_changed( _mode_set, _masks ) \ - ( (_mode_set) & (_masks) ) - -/*PAGE - * - * _Modes_Is_asr_disabled - * - */ - -#define _Modes_Is_asr_disabled( _mode_set ) \ - ( (_mode_set) & RTEMS_ASR_MASK ) - -/*PAGE - * - * _Modes_Is_preempt - * - */ - -#define _Modes_Is_preempt( _mode_set ) \ - ( ( (_mode_set) & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT ) - -/*PAGE - * - * _Modes_Is_timeslice - * - */ - -#define _Modes_Is_timeslice( _mode_set ) \ - (((_mode_set) & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) == \ - (RTEMS_TIMESLICE|RTEMS_PREEMPT) ) - -/*PAGE - * - * _Modes_Get_interrupt_level - * - */ - -#define _Modes_Get_interrupt_level( _mode_set ) \ - ( (_mode_set) & RTEMS_INTERRUPT_MASK ) - -/*PAGE - * - * _Modes_Set_interrupt_level - * - */ - -#define _Modes_Set_interrupt_level( _mode_set ) \ - _ISR_Set_level( _Modes_Get_interrupt_level( (_mode_set) ) ) - -/*PAGE - * - * _Modes_Change - * - */ - -#define _Modes_Change( _old_mode_set, _new_mode_set, \ - _mask, _out_mode_set, _changed ) \ - { rtems_mode _out_mode; \ - \ - _out_mode = (_old_mode_set); \ - _out_mode &= ~(_mask); \ - _out_mode |= (_new_mode_set) & (_mask); \ - *(_changed) = _out_mode ^ (_old_mode_set); \ - *(_out_mode_set) = _out_mode; \ - } - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/options.inl b/c/src/exec/rtems/macros/options.inl deleted file mode 100644 index 7c14e4fe4f..0000000000 --- a/c/src/exec/rtems/macros/options.inl +++ /dev/null @@ -1,39 +0,0 @@ -/* options.inl - * - * This file contains the macro implementation of the inlined - * routines from the Options Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OPTIONS_inl -#define __OPTIONS_inl - -/*PAGE - * - * _Options_Is_no_wait - * - */ - -#define _Options_Is_no_wait( _option_set ) \ - ( (_option_set) & RTEMS_NO_WAIT ) - -/*PAGE - * - * _Options_Is_any - * - */ - -#define _Options_Is_any( _option_set ) \ - ( (_option_set) & RTEMS_EVENT_ANY ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/part.inl b/c/src/exec/rtems/macros/part.inl deleted file mode 100644 index 55c188b210..0000000000 --- a/c/src/exec/rtems/macros/part.inl +++ /dev/null @@ -1,117 +0,0 @@ -/* part.inl - * - * This file contains the macro implementation of all inlined routines - * in the Partition Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PARTITION_inl -#define __PARTITION_inl - -/*PAGE - * - * _Partition_Allocate_buffer - * - */ - -#define _Partition_Allocate_buffer( _the_partition ) \ - _Chain_Get( &(_the_partition)->Memory ) - -/*PAGE - * - * _Partition_Free_buffer - * - */ - -#define _Partition_Free_buffer( _the_partition, _the_buffer ) \ - _Chain_Append( &(_the_partition)->Memory, (_the_buffer) ) - -/*PAGE - * - * _Partition_Is_buffer_on_boundary - * - */ - -#define _Partition_Is_buffer_on_boundary( _the_buffer, _the_partition ) \ - ((((unsigned32) _Addresses_Subtract( \ - (_the_buffer), \ - (_the_partition)->starting_address ) \ - ) % \ - (_the_partition)->buffer_size) == 0) - -/*PAGE - * - * _Partition_Is_buffer_valid - * - */ - -#define _Partition_Is_buffer_valid( _the_buffer, _the_partition ) \ - ( \ - _Addresses_Is_in_range( \ - (_the_buffer), \ - (_the_partition)->starting_address, \ - _Addresses_Add_offset( \ - (_the_partition)->starting_address, \ - (_the_partition)->length \ - ) \ - ) && \ - _Partition_Is_buffer_on_boundary( (_the_buffer), (_the_partition) ) \ - ) - -/*PAGE - * - * _Partition_Is_buffer_size_aligned - * - */ - -#define _Partition_Is_buffer_size_aligned( _buffer_size ) \ - ((_buffer_size) % CPU_PARTITION_ALIGNMENT == 0) - -/*PAGE - * - * _Partition_Allocate - * - */ - -#define _Partition_Allocate() \ - (Partition_Control *) _Objects_Allocate( &_Partition_Information ) - -/*PAGE - * - * _Partition_Free - * - */ - -#define _Partition_Free( _the_partition ) \ - _Objects_Free( &_Partition_Information, &(_the_partition)->Object ) - -/*PAGE - * - * _Partition_Get - * - */ - -#define _Partition_Get( _id, _location ) \ - (Partition_Control *) \ - _Objects_Get( &_Partition_Information, (_id), (_location) ) - -/*PAGE - * - * _Partition_Is_null - * - */ - -#define _Partition_Is_null( _the_partition ) \ - ( (_the_partition) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/ratemon.inl b/c/src/exec/rtems/macros/ratemon.inl deleted file mode 100644 index ebb182e6f1..0000000000 --- a/c/src/exec/rtems/macros/ratemon.inl +++ /dev/null @@ -1,85 +0,0 @@ -/* ratemon.inl - * - * This file contains the macro implementation of the inlined - * routines in the Rate Monotonic Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RATE_MONOTONIC_inl -#define __RATE_MONOTONIC_inl - -/*PAGE - * - * _Rate_monotonic_Allocate - * - */ - -#define _Rate_monotonic_Allocate() \ - (Rate_monotonic_Control *) \ - _Objects_Allocate( &_Rate_monotonic_Information ) - -/*PAGE - * - * _Rate_monotonic_Free - * - */ - -#define _Rate_monotonic_Free( _the_period ) \ - _Objects_Free( &_Rate_monotonic_Information, &(_the_period)->Object ) - -/*PAGE - * - * _Rate_monotonic_Get - * - */ - -#define _Rate_monotonic_Get( _id, _location ) \ - (Rate_monotonic_Control *) \ - _Objects_Get( &_Rate_monotonic_Information, (_id), (_location) ) - -/*PAGE - * - * _Rate_monotonic_Is_active - * - */ - -#define _Rate_monotonic_Is_active( _the_period ) \ - ((_the_period)->state == RATE_MONOTONIC_ACTIVE) - -/*PAGE - * - * _Rate_monotonic_Is_inactive - * - */ - -#define _Rate_monotonic_Is_inactive( _the_period ) \ - ((_the_period)->state == RATE_MONOTONIC_INACTIVE) - -/*PAGE - * - * _Rate_monotonic_Is_expired - * - */ - -#define _Rate_monotonic_Is_expired( _the_period ) \ - ((_the_period)->state == RATE_MONOTONIC_EXPIRED) - -/*PAGE - * - * _Rate_monotonic_Is_null - * - */ - -#define _Rate_monotonic_Is_null( _the_period ) ( (_the_period) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/region.inl b/c/src/exec/rtems/macros/region.inl deleted file mode 100644 index 667d77e307..0000000000 --- a/c/src/exec/rtems/macros/region.inl +++ /dev/null @@ -1,75 +0,0 @@ -/* region.inl - * - * This file contains the macro implementation of the inlined - * routines from the Region Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __REGION_inl -#define __REGION_inl - -/*PAGE - * - * _Region_Allocate - * - */ - -#define _Region_Allocate() \ - (Region_Control *) _Objects_Allocate( &_Region_Information ) - -/*PAGE - * - * _Region_Free - * - */ - -#define _Region_Free( _the_region ) \ - _Objects_Free( &_Region_Information, &(_the_region)->Object ) - -/*PAGE - * - * _Region_Get - * - */ - -#define _Region_Get( _id, _location ) \ - (Region_Control *) \ - _Objects_Get( &_Region_Information, (_id), (_location) ) - -/*PAGE - * - * _Region_Allocate_segment - * - */ - -#define _Region_Allocate_segment( _the_region, _size ) \ - _Heap_Allocate( &(_the_region)->Memory, (_size) ) - -/*PAGE - * - * _Region_Free_segment - * - */ - -#define _Region_Free_segment( _the_region, _the_segment ) \ - _Heap_Free( &(_the_region)->Memory, (_the_segment) ) - -/*PAGE - * - * _Region_Is_null - * - */ - -#define _Region_Is_null( _the_region ) ( (_the_region) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/asr.inl b/c/src/exec/rtems/macros/rtems/rtems/asr.inl deleted file mode 100644 index 421755879b..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/asr.inl +++ /dev/null @@ -1,89 +0,0 @@ -/* macros/asr.h - * - * This include file contains the implemenation of all routines - * associated with the asynchronous signal handler which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ASR_h -#define __INLINE_ASR_h - -#include - -/*PAGE - * - * _ASR_Initialize - * - */ - -#define _ASR_Initialize( _information ) \ -{ \ - (_information)->handler = NULL; \ - (_information)->mode_set = RTEMS_DEFAULT_MODES; \ - (_information)->signals_posted = 0; \ - (_information)->signals_pending = 0; \ - (_information)->nest_level = 0; \ -} - -/*PAGE - * - * _ASR_Swap_signals - * - */ - -#define _ASR_Swap_signals( _information ) \ -{ \ - rtems_signal_set _signals; \ - ISR_Level _level; \ - \ - _ISR_Disable( _level ); \ - _signals = (_information)->signals_pending; \ - (_information)->signals_pending = (_information)->signals_posted; \ - (_information)->signals_posted = _signals; \ - _ISR_Enable( _level ); \ -} - -/*PAGE - * - * _ASR_Is_null_handler - * - */ - -#define _ASR_Is_null_handler( _asr_handler ) \ - ( (_asr_handler) == NULL ) - -/*PAGE - * - * _ASR_Are_signals_pending - * - */ - -#define _ASR_Are_signals_pending( _information ) \ - ( (_information)->signals_posted != 0 ) - -/*PAGE - * - * _ASR_Post_signals - * - */ - -#define _ASR_Post_signals( _signals, _signal_set ) \ - do { \ - ISR_Level _level; \ - \ - _ISR_Disable( _level ); \ - *(_signal_set) |= (_signals); \ - _ISR_Enable( _level ); \ - } while ( 0 ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/attr.inl b/c/src/exec/rtems/macros/rtems/rtems/attr.inl deleted file mode 100644 index 602622ca35..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/attr.inl +++ /dev/null @@ -1,91 +0,0 @@ -/* macros/attr.h - * - * This include file contains all of the inlined routines associated - * with attributes. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_ATTRIBUTES_h -#define __MACROS_ATTRIBUTES_h - -/*PAGE - * - * _Attributes_Set - */ - -#define _Attributes_Set( _new_attributes, _attribute_set ) \ - ( (_attribute_set) | (_new_attributes) ) - -/*PAGE - * - * _Attributes_Clear - */ - -#define _Attributes_Clear( _attribute_set, _mask ) \ - ( (_attribute_set) & ~(_mask) ) - -/*PAGE - * - * _Attributes_Is_floating_point - * - */ - -#define _Attributes_Is_floating_point( _attribute_set ) \ - ( (_attribute_set) & RTEMS_FLOATING_POINT ) - -/*PAGE - * - * _Attributes_Is_global - * - */ - -#define _Attributes_Is_global( _attribute_set ) \ - ( (_attribute_set) & RTEMS_GLOBAL ) - -/*PAGE - * - * _Attributes_Is_priority - * - */ - -#define _Attributes_Is_priority( _attribute_set ) \ - ( (_attribute_set) & RTEMS_PRIORITY ) - -/*PAGE - * - * _Attributes_Is_limit - * - */ - -#define _Attributes_Is_limit( _attribute_set ) \ - ( (_attribute_set) & RTEMS_LIMIT ) - -/*PAGE - * - * _Attributes_Is_binary_semaphore - * - */ - -#define _Attributes_Is_binary_semaphore( _attribute_set ) \ - ( (_attribute_set) & RTEMS_BINARY_SEMAPHORE ) - -/*PAGE - * - * _Attributes_Is_inherit_priority - * - */ - -#define _Attributes_Is_inherit_priority( _attribute_set ) \ - ( (_attribute_set) & RTEMS_INHERIT_PRIORITY ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/dpmem.inl b/c/src/exec/rtems/macros/rtems/rtems/dpmem.inl deleted file mode 100644 index 3e1d7bce95..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/dpmem.inl +++ /dev/null @@ -1,59 +0,0 @@ -/* macros/dpmem.h - * - * This include file contains the inline routine used in conjunction - * with the Dual Ported Memory Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_DPMEM_h -#define __MACROS_DPMEM_h - -/*PAGE - * - * _Dual_ported_memory_Allocate - * - */ - -#define _Dual_ported_memory_Allocate() \ - (Dual_ported_memory_Control *) \ - _Objects_Allocate( &_Dual_ported_memory_Information ) - -/*PAGE - * - * _Dual_ported_memory_Free - * - */ - -#define _Dual_ported_memory_Free( _the_port ) \ - _Objects_Free( &_Dual_ported_memory_Information, &(_the_port)->Object ) - -/*PAGE - * - * _Dual_ported_memory_Get - * - */ - -#define _Dual_ported_memory_Get( _id, _location ) \ - (Dual_ported_memory_Control *) \ - _Objects_Get( &_Dual_ported_memory_Information, (_id), (_location) ) - - -/*PAGE - * - * _Dual_ported_memory_Is_null - */ - -#define _Dual_ported_memory_Is_null( _the_port ) \ - ( (_the_port) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/event.inl b/c/src/exec/rtems/macros/rtems/rtems/event.inl deleted file mode 100644 index 1d4cb78237..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/event.inl +++ /dev/null @@ -1,28 +0,0 @@ -/* macros/event.h - * - * This include file contains the implementation of macros for - * the Event Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_EVENT_h -#define __MACROS_EVENT_h - -/* - * Event_Manager_initialization - */ - -#define _Event_Manager_initialization() \ - _Event_Sync = FALSE - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/eventset.inl b/c/src/exec/rtems/macros/rtems/rtems/eventset.inl deleted file mode 100644 index 1803d18637..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/eventset.inl +++ /dev/null @@ -1,53 +0,0 @@ -/* eventset.inl - * - * This include file contains the macro implementation of inlined - * routines in the event set object. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __EVENT_SET_inl -#define __EVENT_SET_inl - -/*PAGE - * - * _Event_sets_Is_empty - */ - -#define _Event_sets_Is_empty( _the_event_set ) \ - ((_the_event_set) == 0 ) - -/*PAGE - * - * _Event_sets_Is_empty - */ - -#define _Event_sets_Post( _the_new_events, _the_event_set ) \ - *(_the_event_set) |= (_the_new_events) - -/*PAGE - * - * _Event_sets_Is_empty - */ - -#define _Event_sets_Get( _the_event_set, _the_event_condition ) \ - ((_the_event_set) & (_the_event_condition)) - -/*PAGE - * - * _Event_sets_Clear - */ - -#define _Event_sets_Clear( _the_event_set, _the_mask ) \ - ((_the_event_set) & ~(_the_mask)) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/message.inl b/c/src/exec/rtems/macros/rtems/rtems/message.inl deleted file mode 100644 index 5415708ac5..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/message.inl +++ /dev/null @@ -1,118 +0,0 @@ -/* message.inl - * - * This include file contains the macro implementation of all - * inlined routines in the Message Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MESSAGE_QUEUE_inl -#define __MESSAGE_QUEUE_inl - -/*PAGE - * - * _Message_queue_Copy_buffer - */ - -#define _Message_queue_Copy_buffer( _source, _destination ) \ - *(Message_queue_Buffer *)(_destination) = \ - *(Message_queue_Buffer *)(_source) - -/*PAGE - * - * _Message_queue_Allocate_message_buffer - * - */ - -#define _Message_queue_Allocate_message_buffer() \ - (Message_queue_Buffer_control *) \ - _Chain_Get( &_Message_queue_Inactive_messages ) - -/*PAGE - * - * _Message_queue_Free_message_buffer - * - */ - -#define _Message_queue_Free_message_buffer( _the_message ) \ - _Chain_Append( &_Message_queue_Inactive_messages, &(_the_message)->Node ) - -/*PAGE - * - * _Message_queue_Get_pending_message - * - */ - -#define _Message_queue_Get_pending_message( _the_message_queue ) \ - (Message_queue_Buffer_control *) \ - _Chain_Get_unprotected( &(_the_message_queue)->Pending_messages ) - -/*PAGE - * - * _Message_queue_Append - * - */ - -#define _Message_queue_Append( _the_message_queue, _the_message ) \ - _Chain_Append( &(_the_message_queue)->Pending_messages, \ - &(_the_message)->Node ) - -/*PAGE - * - * _Message_queue_Prepend - * - */ - -#define _Message_queue_Prepend( _the_message_queue, _the_message ) \ - _Chain_Prepend( &(_the_message_queue)->Pending_messages, \ - &(_the_message)->Node ) - -/*PAGE - * - * _Message_queue_Is_null - * - */ - -#define _Message_queue_Is_null( _the_message_queue ) \ - ( (_the_message_queue) == NULL ) - -/*PAGE - * - * _Message_queue_Allocate - * - */ - -#define _Message_queue_Allocate() \ - (Message_queue_Control *) \ - _Objects_Allocate( &_Message_queue_Information ) - -/*PAGE - * - * _Message_queue_Free - * - */ - -#define _Message_queue_Free( _the_message_queue ) \ - _Objects_Free( &_Message_queue_Information, \ - &(_the_message_queue)->Object ) - -/*PAGE - * - * _Message_queue_Get - * - */ - -#define _Message_queue_Get( _id, _location ) \ - (Message_queue_Control *) \ - _Objects_Get( &_Message_queue_Information, (_id), (_location) ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/modes.inl b/c/src/exec/rtems/macros/rtems/rtems/modes.inl deleted file mode 100644 index f8ac061dce..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/modes.inl +++ /dev/null @@ -1,101 +0,0 @@ -/* modes.inl - * - * This include file contains the macro implementation of the - * inlined routines in the Mode Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MODES_inl -#define __MODES_inl - -/*PAGE - * - * RTEMS_INTERRUPT_LEVEL - */ - -#define RTEMS_INTERRUPT_LEVEL( _mode_set ) \ - ( (_mode_set) & RTEMS_INTERRUPT_MASK ) - -/*PAGE - * - * _Modes_Mask_changed - * - */ - -#define _Modes_Mask_changed( _mode_set, _masks ) \ - ( (_mode_set) & (_masks) ) - -/*PAGE - * - * _Modes_Is_asr_disabled - * - */ - -#define _Modes_Is_asr_disabled( _mode_set ) \ - ( (_mode_set) & RTEMS_ASR_MASK ) - -/*PAGE - * - * _Modes_Is_preempt - * - */ - -#define _Modes_Is_preempt( _mode_set ) \ - ( ( (_mode_set) & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT ) - -/*PAGE - * - * _Modes_Is_timeslice - * - */ - -#define _Modes_Is_timeslice( _mode_set ) \ - (((_mode_set) & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) == \ - (RTEMS_TIMESLICE|RTEMS_PREEMPT) ) - -/*PAGE - * - * _Modes_Get_interrupt_level - * - */ - -#define _Modes_Get_interrupt_level( _mode_set ) \ - ( (_mode_set) & RTEMS_INTERRUPT_MASK ) - -/*PAGE - * - * _Modes_Set_interrupt_level - * - */ - -#define _Modes_Set_interrupt_level( _mode_set ) \ - _ISR_Set_level( _Modes_Get_interrupt_level( (_mode_set) ) ) - -/*PAGE - * - * _Modes_Change - * - */ - -#define _Modes_Change( _old_mode_set, _new_mode_set, \ - _mask, _out_mode_set, _changed ) \ - { rtems_mode _out_mode; \ - \ - _out_mode = (_old_mode_set); \ - _out_mode &= ~(_mask); \ - _out_mode |= (_new_mode_set) & (_mask); \ - *(_changed) = _out_mode ^ (_old_mode_set); \ - *(_out_mode_set) = _out_mode; \ - } - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/options.inl b/c/src/exec/rtems/macros/rtems/rtems/options.inl deleted file mode 100644 index 7c14e4fe4f..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/options.inl +++ /dev/null @@ -1,39 +0,0 @@ -/* options.inl - * - * This file contains the macro implementation of the inlined - * routines from the Options Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OPTIONS_inl -#define __OPTIONS_inl - -/*PAGE - * - * _Options_Is_no_wait - * - */ - -#define _Options_Is_no_wait( _option_set ) \ - ( (_option_set) & RTEMS_NO_WAIT ) - -/*PAGE - * - * _Options_Is_any - * - */ - -#define _Options_Is_any( _option_set ) \ - ( (_option_set) & RTEMS_EVENT_ANY ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/part.inl b/c/src/exec/rtems/macros/rtems/rtems/part.inl deleted file mode 100644 index 55c188b210..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/part.inl +++ /dev/null @@ -1,117 +0,0 @@ -/* part.inl - * - * This file contains the macro implementation of all inlined routines - * in the Partition Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PARTITION_inl -#define __PARTITION_inl - -/*PAGE - * - * _Partition_Allocate_buffer - * - */ - -#define _Partition_Allocate_buffer( _the_partition ) \ - _Chain_Get( &(_the_partition)->Memory ) - -/*PAGE - * - * _Partition_Free_buffer - * - */ - -#define _Partition_Free_buffer( _the_partition, _the_buffer ) \ - _Chain_Append( &(_the_partition)->Memory, (_the_buffer) ) - -/*PAGE - * - * _Partition_Is_buffer_on_boundary - * - */ - -#define _Partition_Is_buffer_on_boundary( _the_buffer, _the_partition ) \ - ((((unsigned32) _Addresses_Subtract( \ - (_the_buffer), \ - (_the_partition)->starting_address ) \ - ) % \ - (_the_partition)->buffer_size) == 0) - -/*PAGE - * - * _Partition_Is_buffer_valid - * - */ - -#define _Partition_Is_buffer_valid( _the_buffer, _the_partition ) \ - ( \ - _Addresses_Is_in_range( \ - (_the_buffer), \ - (_the_partition)->starting_address, \ - _Addresses_Add_offset( \ - (_the_partition)->starting_address, \ - (_the_partition)->length \ - ) \ - ) && \ - _Partition_Is_buffer_on_boundary( (_the_buffer), (_the_partition) ) \ - ) - -/*PAGE - * - * _Partition_Is_buffer_size_aligned - * - */ - -#define _Partition_Is_buffer_size_aligned( _buffer_size ) \ - ((_buffer_size) % CPU_PARTITION_ALIGNMENT == 0) - -/*PAGE - * - * _Partition_Allocate - * - */ - -#define _Partition_Allocate() \ - (Partition_Control *) _Objects_Allocate( &_Partition_Information ) - -/*PAGE - * - * _Partition_Free - * - */ - -#define _Partition_Free( _the_partition ) \ - _Objects_Free( &_Partition_Information, &(_the_partition)->Object ) - -/*PAGE - * - * _Partition_Get - * - */ - -#define _Partition_Get( _id, _location ) \ - (Partition_Control *) \ - _Objects_Get( &_Partition_Information, (_id), (_location) ) - -/*PAGE - * - * _Partition_Is_null - * - */ - -#define _Partition_Is_null( _the_partition ) \ - ( (_the_partition) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/ratemon.inl b/c/src/exec/rtems/macros/rtems/rtems/ratemon.inl deleted file mode 100644 index ebb182e6f1..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/ratemon.inl +++ /dev/null @@ -1,85 +0,0 @@ -/* ratemon.inl - * - * This file contains the macro implementation of the inlined - * routines in the Rate Monotonic Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RATE_MONOTONIC_inl -#define __RATE_MONOTONIC_inl - -/*PAGE - * - * _Rate_monotonic_Allocate - * - */ - -#define _Rate_monotonic_Allocate() \ - (Rate_monotonic_Control *) \ - _Objects_Allocate( &_Rate_monotonic_Information ) - -/*PAGE - * - * _Rate_monotonic_Free - * - */ - -#define _Rate_monotonic_Free( _the_period ) \ - _Objects_Free( &_Rate_monotonic_Information, &(_the_period)->Object ) - -/*PAGE - * - * _Rate_monotonic_Get - * - */ - -#define _Rate_monotonic_Get( _id, _location ) \ - (Rate_monotonic_Control *) \ - _Objects_Get( &_Rate_monotonic_Information, (_id), (_location) ) - -/*PAGE - * - * _Rate_monotonic_Is_active - * - */ - -#define _Rate_monotonic_Is_active( _the_period ) \ - ((_the_period)->state == RATE_MONOTONIC_ACTIVE) - -/*PAGE - * - * _Rate_monotonic_Is_inactive - * - */ - -#define _Rate_monotonic_Is_inactive( _the_period ) \ - ((_the_period)->state == RATE_MONOTONIC_INACTIVE) - -/*PAGE - * - * _Rate_monotonic_Is_expired - * - */ - -#define _Rate_monotonic_Is_expired( _the_period ) \ - ((_the_period)->state == RATE_MONOTONIC_EXPIRED) - -/*PAGE - * - * _Rate_monotonic_Is_null - * - */ - -#define _Rate_monotonic_Is_null( _the_period ) ( (_the_period) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/region.inl b/c/src/exec/rtems/macros/rtems/rtems/region.inl deleted file mode 100644 index 667d77e307..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/region.inl +++ /dev/null @@ -1,75 +0,0 @@ -/* region.inl - * - * This file contains the macro implementation of the inlined - * routines from the Region Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __REGION_inl -#define __REGION_inl - -/*PAGE - * - * _Region_Allocate - * - */ - -#define _Region_Allocate() \ - (Region_Control *) _Objects_Allocate( &_Region_Information ) - -/*PAGE - * - * _Region_Free - * - */ - -#define _Region_Free( _the_region ) \ - _Objects_Free( &_Region_Information, &(_the_region)->Object ) - -/*PAGE - * - * _Region_Get - * - */ - -#define _Region_Get( _id, _location ) \ - (Region_Control *) \ - _Objects_Get( &_Region_Information, (_id), (_location) ) - -/*PAGE - * - * _Region_Allocate_segment - * - */ - -#define _Region_Allocate_segment( _the_region, _size ) \ - _Heap_Allocate( &(_the_region)->Memory, (_size) ) - -/*PAGE - * - * _Region_Free_segment - * - */ - -#define _Region_Free_segment( _the_region, _the_segment ) \ - _Heap_Free( &(_the_region)->Memory, (_the_segment) ) - -/*PAGE - * - * _Region_Is_null - * - */ - -#define _Region_Is_null( _the_region ) ( (_the_region) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/sem.inl b/c/src/exec/rtems/macros/rtems/rtems/sem.inl deleted file mode 100644 index 7e94069009..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/sem.inl +++ /dev/null @@ -1,58 +0,0 @@ -/* sem.inl - * - * This file contains the macro implementation of the inlined - * routines from the Semaphore Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SEMAPHORE_inl -#define __SEMAPHORE_inl - -/*PAGE - * - * _Semaphore_Allocate - * - */ - -#define _Semaphore_Allocate() \ - (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information ) - -/*PAGE - * - * _Semaphore_Free - * - */ - -#define _Semaphore_Free( _the_semaphore ) \ - _Objects_Free( &_Semaphore_Information, &(_the_semaphore)->Object ) - -/*PAGE - * - * _Semaphore_Get - * - */ - -#define _Semaphore_Get( _id, _location ) \ - (Semaphore_Control *) \ - _Objects_Get( &_Semaphore_Information, (_id), (_location) ) - -/*PAGE - * - * _Semaphore_Is_null - * - */ - -#define _Semaphore_Is_null( _the_semaphore ) \ - ( (_the_semaphore) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/status.inl b/c/src/exec/rtems/macros/rtems/rtems/status.inl deleted file mode 100644 index c4f8a523df..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/status.inl +++ /dev/null @@ -1,47 +0,0 @@ -/* macros/status.h - * - * This include file contains the implementations of the inlined - * routines for the status package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_STATUS_h -#define __MACROS_STATUS_h - -/*PAGE - * - * rtems_is_status_successful - * - */ - -#define rtems_is_status_successful( _code ) \ - ( (_code) == RTEMS_SUCCESSFUL ) - -/*PAGE - * - * rtems_are_statuses_equal - * - */ - -#define rtems_are_statuses_equal( _code1, _code2 ) \ - ((_code1) == (_code2)) - -/* - * _Status_Is_proxy_blocking - * - */ - -#define _Status_Is_proxy_blocking( _code ) \ - ( (_code) == RTEMS_PROXY_BLOCKING ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/tasks.inl b/c/src/exec/rtems/macros/rtems/rtems/tasks.inl deleted file mode 100644 index 7b40cbf7fd..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/tasks.inl +++ /dev/null @@ -1,82 +0,0 @@ -/* tasks.inl - * - * This file contains the macro implementation of all inlined - * routines in the with RTEMS Tasks Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TASKS_inl -#define __RTEMS_TASKS_inl - -/*PAGE - * - * _RTEMS_tasks_Allocate - * - */ - -#define _RTEMS_tasks_Allocate() \ - (Thread_Control *) _Objects_Allocate( &_Thread_Information ) - -/*PAGE - * - * _RTEMS_tasks_Free - * - */ - -#define _RTEMS_tasks_Free( _the_task ) \ - _Objects_Free( &_Thread_Information, &(_the_task)->Object ) - -/*PAGE - * - * _RTEMS_tasks_Cancel_wait - * - */ - -#define _RTEMS_tasks_Cancel_wait( _the_thread ) \ - { \ - States_Control _state; \ - States_Control _remote_state; \ - \ - _state = (_the_thread)->current_state; \ - \ - if ( _States_Is_waiting_on_thread_queue( _state ) ) { \ - if ( _States_Is_waiting_for_rpc_reply( _state ) && \ - _States_Is_locally_blocked( _state ) ) { \ - _remote_state = _States_Clear( \ - STATES_WAITING_FOR_RPC_REPLY + STATES_TRANSIENT, \ - _state \ - ); \ - \ - switch ( _remote_state ) { \ - \ - case STATES_WAITING_FOR_BUFFER: \ - _Partition_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - case STATES_WAITING_FOR_SEGMENT: \ - _Region_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - case STATES_WAITING_FOR_SEMAPHORE: \ - _Semaphore_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - case STATES_WAITING_FOR_MESSAGE: \ - _Message_queue_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - } \ - } \ - _Thread_queue_Extract( (_the_thread)->Wait.queue, (_the_thread) ); \ - } \ - else if ( _Watchdog_Is_active( &(_the_thread)->Timer ) ) \ - (void) _Watchdog_Remove( &(_the_thread)->Timer ); \ - } - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/rtems/rtems/timer.inl b/c/src/exec/rtems/macros/rtems/rtems/timer.inl deleted file mode 100644 index 9026bed570..0000000000 --- a/c/src/exec/rtems/macros/rtems/rtems/timer.inl +++ /dev/null @@ -1,85 +0,0 @@ -/* timer.inl - * - * This file contains the macro implementation of the inlined routines - * from the Timer Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIMER_inl -#define __TIMER_inl - -/*PAGE - * - * _Timer_Allocate - * - */ - -#define _Timer_Allocate() \ - (Timer_Control *) _Objects_Allocate( &_Timer_Information ) - -/*PAGE - * - * _Timer_Free - * - */ - -#define _Timer_Free( _the_timer ) \ - _Objects_Free( &_Timer_Information, &(_the_timer)->Object ) - -/*PAGE - * - * _Timer_Get - * - */ - -#define _Timer_Get( _id, _location ) \ - (Timer_Control *) \ - _Objects_Get( &_Timer_Information, (_id), (_location) ) - -/*PAGE - * - * _Timer_Is_interval_class - * - */ - -#define _Timer_Is_interval_class( _the_class ) \ - ( (_the_class) == TIMER_INTERVAL ) - -/*PAGE - * - * _Timer_Is_time_of_day_class - * - */ - -#define _Timer_Is_time_of_day_class( _the_class ) \ - ( (_the_class) == TIMER_TIME_OF_DAY ) - -/*PAGE - * - * _Timer_Is_dormant_class - * - */ - -#define _Timer_Is_dormant_class( _the_class ) \ - ( (_the_class) == TIMER_DORMANT ) - -/*PAGE - * - * _Timer_Is_null - * - */ - -#define _Timer_Is_null( _the_timer ) \ - ( (_the_timer) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/sem.inl b/c/src/exec/rtems/macros/sem.inl deleted file mode 100644 index 7e94069009..0000000000 --- a/c/src/exec/rtems/macros/sem.inl +++ /dev/null @@ -1,58 +0,0 @@ -/* sem.inl - * - * This file contains the macro implementation of the inlined - * routines from the Semaphore Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SEMAPHORE_inl -#define __SEMAPHORE_inl - -/*PAGE - * - * _Semaphore_Allocate - * - */ - -#define _Semaphore_Allocate() \ - (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information ) - -/*PAGE - * - * _Semaphore_Free - * - */ - -#define _Semaphore_Free( _the_semaphore ) \ - _Objects_Free( &_Semaphore_Information, &(_the_semaphore)->Object ) - -/*PAGE - * - * _Semaphore_Get - * - */ - -#define _Semaphore_Get( _id, _location ) \ - (Semaphore_Control *) \ - _Objects_Get( &_Semaphore_Information, (_id), (_location) ) - -/*PAGE - * - * _Semaphore_Is_null - * - */ - -#define _Semaphore_Is_null( _the_semaphore ) \ - ( (_the_semaphore) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/status.inl b/c/src/exec/rtems/macros/status.inl deleted file mode 100644 index c4f8a523df..0000000000 --- a/c/src/exec/rtems/macros/status.inl +++ /dev/null @@ -1,47 +0,0 @@ -/* macros/status.h - * - * This include file contains the implementations of the inlined - * routines for the status package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_STATUS_h -#define __MACROS_STATUS_h - -/*PAGE - * - * rtems_is_status_successful - * - */ - -#define rtems_is_status_successful( _code ) \ - ( (_code) == RTEMS_SUCCESSFUL ) - -/*PAGE - * - * rtems_are_statuses_equal - * - */ - -#define rtems_are_statuses_equal( _code1, _code2 ) \ - ((_code1) == (_code2)) - -/* - * _Status_Is_proxy_blocking - * - */ - -#define _Status_Is_proxy_blocking( _code ) \ - ( (_code) == RTEMS_PROXY_BLOCKING ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/tasks.inl b/c/src/exec/rtems/macros/tasks.inl deleted file mode 100644 index 7b40cbf7fd..0000000000 --- a/c/src/exec/rtems/macros/tasks.inl +++ /dev/null @@ -1,82 +0,0 @@ -/* tasks.inl - * - * This file contains the macro implementation of all inlined - * routines in the with RTEMS Tasks Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TASKS_inl -#define __RTEMS_TASKS_inl - -/*PAGE - * - * _RTEMS_tasks_Allocate - * - */ - -#define _RTEMS_tasks_Allocate() \ - (Thread_Control *) _Objects_Allocate( &_Thread_Information ) - -/*PAGE - * - * _RTEMS_tasks_Free - * - */ - -#define _RTEMS_tasks_Free( _the_task ) \ - _Objects_Free( &_Thread_Information, &(_the_task)->Object ) - -/*PAGE - * - * _RTEMS_tasks_Cancel_wait - * - */ - -#define _RTEMS_tasks_Cancel_wait( _the_thread ) \ - { \ - States_Control _state; \ - States_Control _remote_state; \ - \ - _state = (_the_thread)->current_state; \ - \ - if ( _States_Is_waiting_on_thread_queue( _state ) ) { \ - if ( _States_Is_waiting_for_rpc_reply( _state ) && \ - _States_Is_locally_blocked( _state ) ) { \ - _remote_state = _States_Clear( \ - STATES_WAITING_FOR_RPC_REPLY + STATES_TRANSIENT, \ - _state \ - ); \ - \ - switch ( _remote_state ) { \ - \ - case STATES_WAITING_FOR_BUFFER: \ - _Partition_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - case STATES_WAITING_FOR_SEGMENT: \ - _Region_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - case STATES_WAITING_FOR_SEMAPHORE: \ - _Semaphore_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - case STATES_WAITING_FOR_MESSAGE: \ - _Message_queue_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - } \ - } \ - _Thread_queue_Extract( (_the_thread)->Wait.queue, (_the_thread) ); \ - } \ - else if ( _Watchdog_Is_active( &(_the_thread)->Timer ) ) \ - (void) _Watchdog_Remove( &(_the_thread)->Timer ); \ - } - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/macros/timer.inl b/c/src/exec/rtems/macros/timer.inl deleted file mode 100644 index 9026bed570..0000000000 --- a/c/src/exec/rtems/macros/timer.inl +++ /dev/null @@ -1,85 +0,0 @@ -/* timer.inl - * - * This file contains the macro implementation of the inlined routines - * from the Timer Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIMER_inl -#define __TIMER_inl - -/*PAGE - * - * _Timer_Allocate - * - */ - -#define _Timer_Allocate() \ - (Timer_Control *) _Objects_Allocate( &_Timer_Information ) - -/*PAGE - * - * _Timer_Free - * - */ - -#define _Timer_Free( _the_timer ) \ - _Objects_Free( &_Timer_Information, &(_the_timer)->Object ) - -/*PAGE - * - * _Timer_Get - * - */ - -#define _Timer_Get( _id, _location ) \ - (Timer_Control *) \ - _Objects_Get( &_Timer_Information, (_id), (_location) ) - -/*PAGE - * - * _Timer_Is_interval_class - * - */ - -#define _Timer_Is_interval_class( _the_class ) \ - ( (_the_class) == TIMER_INTERVAL ) - -/*PAGE - * - * _Timer_Is_time_of_day_class - * - */ - -#define _Timer_Is_time_of_day_class( _the_class ) \ - ( (_the_class) == TIMER_TIME_OF_DAY ) - -/*PAGE - * - * _Timer_Is_dormant_class - * - */ - -#define _Timer_Is_dormant_class( _the_class ) \ - ( (_the_class) == TIMER_DORMANT ) - -/*PAGE - * - * _Timer_Is_null - * - */ - -#define _Timer_Is_null( _the_timer ) \ - ( (_the_timer) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/rtems/optman/no-dpmem.c b/c/src/exec/rtems/optman/no-dpmem.c deleted file mode 100644 index 4d4cc4cdbc..0000000000 --- a/c/src/exec/rtems/optman/no-dpmem.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Dual Port Memory Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -void _Dual_ported_memory_Manager_initialization( - unsigned32 maximum_ports -) -{ -} - -rtems_status_code rtems_port_create( - Objects_Name name, - void *internal_start, - void *external_start, - unsigned32 length, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_port_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_port_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_port_internal_to_external( - Objects_Id id, - void *internal, - void **external -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_port_external_to_internal( - Objects_Id id, - void *external, - void **internal -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/exec/rtems/optman/no-event.c b/c/src/exec/rtems/optman/no-event.c deleted file mode 100644 index 1840ebdb55..0000000000 --- a/c/src/exec/rtems/optman/no-event.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Event Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -rtems_status_code rtems_event_send( - Objects_Id id, - rtems_event_set event_in -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_event_receive( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks, - rtems_event_set *event_out -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -void _Event_Seize( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks -) -{ -} - -void _Event_Surrender( - Thread_Control *the_thread -) -{ -} - -void _Event_Timeout( - Objects_Id id, - void *ignored -) -{ -} diff --git a/c/src/exec/rtems/optman/no-mp.c b/c/src/exec/rtems/optman/no-mp.c deleted file mode 100644 index 9446cabb29..0000000000 --- a/c/src/exec/rtems/optman/no-mp.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Multiprocessing Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -void _Multiprocessing_Manager_initialization ( void ) -{ -} - -void rtems_multiprocessing_announce ( void ) -{ -} - -Thread _Multiprocessing_Receive_server ( - Thread_Argument ignored -) -{ -} - -void _MPCI_Handler_initialization ( void ) -{ -} - -void _MPCI_Initialization ( void ) -{ -} - -rtems_packet_prefix *_MPCI_Get_packet ( void ) -{ - return NULL; -} - -void _MPCI_Return_packet ( - rtems_packet_prefix *the_packet -) -{ -} - -void _MPCI_Send_process_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -) -{ -} - -rtems_status_code _MPCI_Send_request_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet, - States_Control extra_state -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -void _MPCI_Send_response_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -) -{ -} - -rtems_packet_prefix *_MPCI_Receive_packet ( void ) -{ - return NULL; -} - -Thread_Control *_MPCI_Process_response ( - rtems_packet_prefix *the_packet -) -{ - return NULL; -} diff --git a/c/src/exec/rtems/optman/no-msg.c b/c/src/exec/rtems/optman/no-msg.c deleted file mode 100644 index f2ab5492c0..0000000000 --- a/c/src/exec/rtems/optman/no-msg.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Message Queue Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -void _Message_queue_Manager_initialization( - unsigned32 maximum_message_queues, - unsigned32 maximum_messages -) -{ -} - -rtems_status_code rtems_message_queue_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_send( - Objects_Id id, - void *buffer -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_urgent( - Objects_Id id, - void *buffer -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_broadcast( - Objects_Id id, - void *buffer, - unsigned32 *count -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_receive( - Objects_Id id, - void *buffer, - unsigned32 option_set, - rtems_interval timeout -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_flush( - Objects_Id id, - unsigned32 *count -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -unsigned32 _Message_queue_Flush_support( - Message_queue_Control *the_message_queue -) -{ - return 0; -} - -boolean _Message_queue_Seize( - Message_queue_Control *the_message_queue, - rtems_option option_set, - Message_queue_Buffer *buffer -) -{ - _Thread_Executing->Wait.return_code = RTEMS_UNSATISFIED; - return TRUE; -} - -rtems_status_code _Message_queue_Submit( - Objects_Id id, - Message_queue_Buffer *buffer, - Message_queue_Submit_types submit_type -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/exec/rtems/optman/no-part.c b/c/src/exec/rtems/optman/no-part.c deleted file mode 100644 index d51b62cfb8..0000000000 --- a/c/src/exec/rtems/optman/no-part.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Partition Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -void _Partition_Manager_initialization( - unsigned32 maximum_partitions -) -{ -} - -rtems_status_code rtems_partition_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 buffer_size, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_partition_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_partition_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_partition_get_buffer( - Objects_Id id, - void **buffer -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_partition_return_buffer( - Objects_Id id, - void *buffer -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/exec/rtems/optman/no-region.c b/c/src/exec/rtems/optman/no-region.c deleted file mode 100644 index 4ebdda6aa1..0000000000 --- a/c/src/exec/rtems/optman/no-region.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Region Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -void _Region_Manager_initialization( - unsigned32 maximum_regions -) -{ -} - -rtems_status_code rtems_region_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 page_size, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_region_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_region_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_region_get_segment( - Objects_Id id, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout, - void **segment -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_region_get_segment_size( - Objects_Id id, - void *segment, - unsigned32 *size -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_region_return_segment( - Objects_Id id, - void *segment -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/exec/rtems/optman/no-rtmon.c b/c/src/exec/rtems/optman/no-rtmon.c deleted file mode 100644 index 1799cc7533..0000000000 --- a/c/src/exec/rtems/optman/no-rtmon.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Rate Monotonic Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -void _Rate_monotonic_Manager_initialization( - unsigned32 maximum_periods -) -{ -} - -rtems_status_code rtems_rate_monotonic_create( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_rate_monotonic_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_rate_monotonic_cancel( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_rate_monotonic_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_rate_monotonic_period( - Objects_Id id, - rtems_interval length -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -void _Rate_monotonic_Timeout( - Objects_Id id, - void *ignored -) -{ -} - -boolean _Rate_monotonic_Set_state( -Rate_monotonic_Control *the_period -) -{ - return( FALSE ); -} diff --git a/c/src/exec/rtems/optman/no-sem.c b/c/src/exec/rtems/optman/no-sem.c deleted file mode 100644 index e7d27a6311..0000000000 --- a/c/src/exec/rtems/optman/no-sem.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Semaphore Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -void _Semaphore_Manager_initialization( - unsigned32 maximum_semaphores -) -{ -} - -rtems_status_code rtems_semaphore_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_semaphore_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_semaphore_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_semaphore_obtain( - Objects_Id id, - unsigned32 option_set, - rtems_interval timeout -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_semaphore_release( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -boolean _Semaphore_Seize( - Semaphore_Control *the_semaphore, - rtems_option option_set -) -{ - _Thread_Executing->Wait.return_code = RTEMS_UNSATISFIED; - return( TRUE ); -} diff --git a/c/src/exec/rtems/optman/no-signal.c b/c/src/exec/rtems/optman/no-signal.c deleted file mode 100644 index 50f941887c..0000000000 --- a/c/src/exec/rtems/optman/no-signal.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Signal Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -rtems_status_code rtems_signal_catch( - rtems_asr_entry handler, - rtems_mode mode_set -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_signal_send( - Objects_Id id, - rtems_signal_set signal_set -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/exec/rtems/optman/no-timer.c b/c/src/exec/rtems/optman/no-timer.c deleted file mode 100644 index 9fc29e9b6d..0000000000 --- a/c/src/exec/rtems/optman/no-timer.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Timer Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -void _Timer_Manager_initialization( - unsigned32 maximum_timers -) -{ -} - -rtems_status_code rtems_timer_create( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_cancel( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_fire_after( - Objects_Id id, - rtems_interval ticks, - Timer_Service routine, - void *user_data -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_fire_when( - Objects_Id id, - rtems_time_of_day *wall_time, - Timer_Service routine, - void *user_data -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_reset( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/exec/rtems/src/clock.c b/c/src/exec/rtems/src/clock.c deleted file mode 100644 index f82baa6337..0000000000 --- a/c/src/exec/rtems/src/clock.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Clock Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * rtems_clock_get - * - * This directive returns the current date and time. If the time has - * not been set by a tm_set then an error is returned. - * - * Input parameters: - * option - which value to return - * time_buffer - pointer to output buffer (a time and date structure - * or an interval) - * - * Output parameters: - * time_buffer - output filled in - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_clock_get( - rtems_clock_get_options option, - void *time_buffer -) -{ - ISR_Level level; - rtems_interval tmp; - - switch ( option ) { - case RTEMS_CLOCK_GET_TOD: - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - *(rtems_time_of_day *)time_buffer = _TOD_Current; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH: - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - *(rtems_interval *)time_buffer = _TOD_Seconds_since_epoch; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_TICKS_SINCE_BOOT: - *(rtems_interval *)time_buffer = _TOD_Ticks_since_boot; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_TICKS_PER_SECOND: - *(rtems_interval *)time_buffer = _TOD_Ticks_per_second; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_TIME_VALUE: - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - _ISR_Disable( level ); - ((rtems_clock_time_value *)time_buffer)->seconds = - _TOD_Seconds_since_epoch; - tmp = _TOD_Current.ticks; - _ISR_Enable( level ); - - tmp *= _Configuration_Table->microseconds_per_tick; - ((rtems_clock_time_value *)time_buffer)->microseconds = tmp; - - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_SUCCESSFUL ); /* should never get here */ - -} - -/*PAGE - * - * rtems_clock_set - * - * This directive sets the date and time for this node. - * - * Input parameters: - * time_buffer - pointer to the time and date structure - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_clock_set( - rtems_time_of_day *time_buffer -) -{ - rtems_status_code local_result; - rtems_interval seconds; - - local_result = _TOD_Validate( time_buffer ); - if ( rtems_is_status_successful( local_result ) ) { - seconds = _TOD_To_seconds( time_buffer ); - _Thread_Disable_dispatch(); - _TOD_Set( time_buffer, seconds ); - _Thread_Enable_dispatch(); - - } - return( local_result ); -} - -/*PAGE - * - * rtems_clock_tick - * - * This directive notifies the executve that a tick has occurred. - * When the tick occurs the time manager updates and maintains - * the calendar time, timeslicing, and any timeout delays. - * - * Input parameters: NONE - * - * Output parameters: - * RTEMS_SUCCESSFUL - always succeeds - * - * NOTE: This routine only works for leap-years through 2099. - */ - -rtems_status_code rtems_clock_tick( void ) -{ - _TOD_Tickle_ticks(); - - _Watchdog_Tickle_ticks(); - - _Thread_Tickle_timeslice(); - - if ( _Thread_Is_context_switch_necessary() && - _Thread_Is_dispatching_enabled() ) - _Thread_Dispatch(); - - return( RTEMS_SUCCESSFUL ); -} diff --git a/c/src/exec/rtems/src/dpmem.c b/c/src/exec/rtems/src/dpmem.c deleted file mode 100644 index 0aacecec5b..0000000000 --- a/c/src/exec/rtems/src/dpmem.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - * Dual Port Memory Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/*PAGE - * - * _Dual_ported_memory_Manager_initialization - * - * This routine initializes all dual-ported memory manager related - * data structures. - * - * Input parameters: - * maximum_ports - number of ports to initialize - * - * Output parameters: NONE - */ - -void _Dual_ported_memory_Manager_initialization( - unsigned32 maximum_ports -) -{ - _Objects_Initialize_information( - &_Dual_ported_memory_Information, - FALSE, - maximum_ports, - sizeof( Dual_ported_memory_Control ) - ); -} - -/*PAGE - * - * rtems_port_create - * - * This directive creates a port into a dual-ported memory area. - * - * Input parameters: - * name - user defined port name - * internal_start - internal start address of port - * external_start - external start address of port - * length - physical length in bytes - * id - address of port id to set - * - * Output parameters: - * id - port id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_port_create( - Objects_Name name, - void *internal_start, - void *external_start, - unsigned32 length, - Objects_Id *id -) -{ - register Dual_ported_memory_Control *the_port; - - if ( !_Objects_Is_name_valid( name) ) - return ( RTEMS_INVALID_NAME ); - - if ( !_Addresses_Is_aligned( internal_start ) || - !_Addresses_Is_aligned( external_start ) ) - return( RTEMS_INVALID_ADDRESS ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_port = _Dual_ported_memory_Allocate(); - - if ( !the_port ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_port->internal_base = internal_start; - the_port->external_base = external_start; - the_port->length = length - 1; - - _Objects_Open( &_Dual_ported_memory_Information, - &the_port->Object, name ); - *id = the_port->Object.id; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_port_ident - * - * This directive returns the system ID associated with - * the port name. - * - * Input parameters: - * name - user defined port name - * id - pointer to port id - * - * Output parameters: - * *id - port id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_port_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( - _Objects_Name_to_id( - &_Dual_ported_memory_Information, - name, - RTEMS_SEARCH_ALL_NODES, - id - ) - ); -} - -/*PAGE - * - * rtems_port_delete - * - * This directive allows a thread to delete a dual-ported memory area - * specified by the dual-ported memory identifier. - * - * Input parameters: - * id - dual-ported memory area id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_port_delete( - Objects_Id id -) -{ - register Dual_ported_memory_Control *the_port; - Objects_Locations location; - - the_port = _Dual_ported_memory_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - _Objects_Close( &_Dual_ported_memory_Information, &the_port->Object ); - _Dual_ported_memory_Free( the_port ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_port_internal_to_external - * - * This directive converts an internal dual-ported memory address to an - * external dual-ported memory address. If the given internal address - * is an invalid dual-ported address, then the external address is set - * to the given internal address. - * - * Input parameters: - * id - id of dual-ported memory object - * internal - internal address to set - * external - pointer to external address - * - * Output parameters: - * external - external address - * RTEMS_SUCCESSFUL - always succeeds - */ - -rtems_status_code rtems_port_internal_to_external( - Objects_Id id, - void *internal, - void **external -) -{ - register Dual_ported_memory_Control *the_port; - Objects_Locations location; - unsigned32 ending; - - the_port = _Dual_ported_memory_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - ending = _Addresses_Subtract( internal, the_port->internal_base ); - if ( ending > the_port->length ) - *external = internal; - else - *external = _Addresses_Add_offset( the_port->external_base, - ending ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_port_external_to_internal - * - * This directive converts an external dual-ported memory address to an - * internal dual-ported memory address. If the given external address - * is an invalid dual-ported address, then the internal address is set - * to the given external address. - * - * Input parameters: - * id - id of dp memory object - * external - external address - * internal - pointer of internal address to set - * - * Output parameters: - * internal - internal address - * RTEMS_SUCCESSFUL - always succeeds - */ - -rtems_status_code rtems_port_external_to_internal( - Objects_Id id, - void *external, - void **internal -) -{ - register Dual_ported_memory_Control *the_port; - Objects_Locations location; - unsigned32 ending; - - the_port = _Dual_ported_memory_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - ending = _Addresses_Subtract( external, the_port->external_base ); - if ( ending > the_port->length ) - *internal = external; - else - *internal = _Addresses_Add_offset( the_port->internal_base, - ending ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/c/src/exec/rtems/src/event.c b/c/src/exec/rtems/src/event.c deleted file mode 100644 index 6a25ae81c3..0000000000 --- a/c/src/exec/rtems/src/event.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * Event Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * rtems_event_send - * - * This directive allows a thread send an event set to another thread. - * - * Input parameters: - * id - thread id - * event - event set - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_event_send( - Objects_Id id, - rtems_event_set event_in -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return( - _Event_MP_Send_request_packet( - EVENT_MP_SEND_REQUEST, - id, - event_in - ) - ); - case OBJECTS_LOCAL: - _Event_sets_Post( event_in, &the_thread->pending_events ); - _Event_Surrender( the_thread ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_event_receive - * - * This directive allows a thread to receive a set of events. - * - * Input parameters: - * event_in - input event condition - * option_set - options - * ticks - number of ticks to wait (0 means wait forever) - * event_out - pointer to output event set - * - * Output parameters: - * event out - event set - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_event_receive( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks, - rtems_event_set *event_out -) -{ - if ( _Event_sets_Is_empty( event_in ) ) { - *event_out = _Thread_Executing->pending_events; - return( RTEMS_SUCCESSFUL ); - } - - _Thread_Disable_dispatch(); - _Event_Seize( event_in, option_set, ticks ); - _Thread_Enable_dispatch(); - *event_out = _Thread_Executing->events_out; - return( _Thread_Executing->Wait.return_code ); -} - -/*PAGE - * - * _Event_Seize - * - * This routine attempts to satisfy the requested event condition - * for the running thread. - * - * Input parameters: - * event_in - the event condition to satisfy - * option_set - acquire event options - * ticks - interval to wait - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * available - * wait - * check sync - */ - -void _Event_Seize( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks -) -{ - Thread_Control *executing; - rtems_event_set seized_events; - rtems_event_set pending_events; - ISR_Level level; - - executing = _Thread_Executing; - executing->Wait.return_code = RTEMS_SUCCESSFUL; - - _ISR_Disable( level ); - pending_events = executing->pending_events; - seized_events = _Event_sets_Get( pending_events, event_in ); - - if ( !_Event_sets_Is_empty( seized_events ) && - (seized_events == event_in || _Options_Is_any( option_set )) ) { - executing->pending_events = - _Event_sets_Clear( pending_events, seized_events ); - _ISR_Enable( level ); - executing->events_out = seized_events; - return; - } - - if ( _Options_Is_no_wait( option_set ) ) { - _ISR_Enable( level ); - executing->Wait.return_code = RTEMS_UNSATISFIED; - executing->events_out = seized_events; - return; - } - - _Event_Sync = TRUE; - executing->Wait.option_set = option_set; - executing->Wait.Extra.event_condition = event_in; - - _ISR_Enable( level ); - _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT ); - - if ( ticks ) { - _Watchdog_Initialize( - &executing->Timer, - _Event_Timeout, - executing->Object.id, - NULL - ); - _Watchdog_Insert_ticks( - &executing->Timer, - ticks, - WATCHDOG_NO_ACTIVATE - ); - } - - _ISR_Disable( level ); - if ( _Event_Sync == TRUE ) { - _Event_Sync = FALSE; - if ( ticks ) - _Watchdog_Activate( &executing->Timer ); - _ISR_Enable( level ); - return; - } - _ISR_Enable( level ); - (void) _Watchdog_Remove( &executing->Timer ); - _Thread_Unblock( executing ); - return; -} - -/*PAGE - * - * _Event_Surrender - * - * This routines remove a thread from the specified threadq. - * - * Input parameters: - * the_thread - pointer to thread to be dequeued - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * before flash - * after flash - * check sync - */ - -void _Event_Surrender( - Thread_Control *the_thread -) -{ - ISR_Level level; - rtems_event_set pending_events; - rtems_event_set event_condition; - rtems_event_set seized_events; - - _ISR_Disable( level ); - pending_events = the_thread->pending_events; - event_condition = the_thread->Wait.Extra.event_condition; - - seized_events = _Event_sets_Get( pending_events, event_condition ); - - if ( !_Event_sets_Is_empty( seized_events ) ) { - if ( _States_Is_waiting_for_event( the_thread->current_state ) ) { - if ( seized_events == event_condition || - _Options_Is_any( the_thread->Wait.option_set ) ) { - the_thread->pending_events = - _Event_sets_Clear( pending_events, seized_events ); - (rtems_event_set *)the_thread->events_out = seized_events; - - _ISR_Flash( level ); - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } - else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - return; - } - } - else if ( _Thread_Is_executing( the_thread ) && _Event_Sync == TRUE ) { - if ( seized_events == event_condition || - _Options_Is_any( the_thread->Wait.option_set ) ) { - the_thread->pending_events = - _Event_sets_Clear( pending_events,seized_events ); - (rtems_event_set *)the_thread->events_out = seized_events; - _Event_Sync = FALSE; - } - } - } - _ISR_Enable( level ); -} - -/*PAGE - * - * _Event_Timeout - * - * This routine processes a thread which timeouts while waiting to - * receive an event_set. It is called by the watchdog handler. - * - * Input parameters: - * id - thread id - * - * Output parameters: NONE - */ - -void _Event_Timeout( - Objects_Id id, - void *ignored -) -{ - Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: /* impossible */ - break; - case OBJECTS_LOCAL: - the_thread->Wait.return_code = RTEMS_TIMEOUT; - _Thread_Unblock( the_thread ); - _Thread_Unnest_dispatch(); - break; - } -} diff --git a/c/src/exec/rtems/src/eventmp.c b/c/src/exec/rtems/src/eventmp.c deleted file mode 100644 index 4bc5925c2a..0000000000 --- a/c/src/exec/rtems/src/eventmp.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Multiprocessing Support for the Event Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Event_MP_Send_process_packet - * - * This subprogram is not needed since there are no process - * packets to be sent by this manager. - * - */ - -/*PAGE - * - * _Event_MP_Send_request_packet - * - */ - -rtems_status_code _Event_MP_Send_request_packet ( - Event_MP_Remote_operations operation, - Objects_Id event_id, - rtems_event_set event_in -) -{ - Event_MP_Packet *the_packet; - - switch ( operation ) { - - case EVENT_MP_SEND_REQUEST: - - the_packet = _Event_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_EVENT; - the_packet->Prefix.length = sizeof ( Event_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Event_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = event_id; - the_packet->event_in = event_in; - - return - _MPCI_Send_request_packet( - rtems_get_node( event_id ), - &the_packet->Prefix, - STATES_READY - ); - - break; - - case EVENT_MP_SEND_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _Event_MP_Send_response_packet - * - */ - -void _Event_MP_Send_response_packet ( - Event_MP_Remote_operations operation, - Thread_Control *the_thread -) -{ - Event_MP_Packet *the_packet; - - switch ( operation ) { - - case EVENT_MP_SEND_RESPONSE: - - the_packet = ( Event_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case EVENT_MP_SEND_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Event_MP_Process_packet - * - */ - -void _Event_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Event_MP_Packet *the_packet; - Thread_Control *the_thread; - - the_packet = (Event_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case EVENT_MP_SEND_REQUEST: - - the_packet->Prefix.return_code = rtems_event_send( - the_packet->Prefix.id, - the_packet->event_in - ); - - _Event_MP_Send_response_packet( - EVENT_MP_SEND_RESPONSE, - _Thread_Executing - ); - break; - - case EVENT_MP_SEND_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - - break; - - } -} - -/*PAGE - * - * _Event_MP_Send_object_was_deleted - * - * This subprogram is not needed since there are no objects - * deleted by this manager. - * - */ - -/*PAGE - * - * _Event_MP_Send_extract_proxy - * - * This subprogram is not needed since there are no objects - * deleted by this manager. - * - */ - -/*PAGE - * - * _Event_MP_Get_packet - * - */ - -Event_MP_Packet *_Event_MP_Get_packet ( void ) -{ - return ( (Event_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/c/src/exec/rtems/src/intr.c b/c/src/exec/rtems/src/intr.c deleted file mode 100644 index 25f5176967..0000000000 --- a/c/src/exec/rtems/src/intr.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Interrupt Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/* _Interrupt_Manager_initialization - * - * This routine initializes the interrupt manager. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void _Interrupt_Manager_initialization( void ) -{ -#if ( CPU_ALLOCATE_INTERRUPT_STACK == TRUE ) - - if ( _CPU_Table.interrupt_stack_size < RTEMS_MINIMUM_STACK_SIZE ) - rtems_fatal_error_occurred( RTEMS_INVALID_SIZE ); - - _CPU_Interrupt_stack_low = - _Workspace_Allocate_or_fatal_error( _CPU_Table.interrupt_stack_size ); - - _CPU_Interrupt_stack_high = _Addresses_Add_offset( - _CPU_Interrupt_stack_low, - _CPU_Table.interrupt_stack_size - ); - -#endif - -#if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE ) - _CPU_Install_interrupt_stack(); -#endif - -} - -/* rtems_interrupt_catch - * - * This directive allows a thread to specify what action to take when - * catching signals. - * - * Input parameters: - * new_isr_handler - address of interrupt service routine (isr) - * vector - interrupt vector number - * old_isr_handler - address at which to store previous ISR address - * - * Output parameters: - * RTEMS_SUCCESSFUL - always succeeds - * *old_isr_handler - previous ISR address - */ - -rtems_status_code rtems_interrupt_catch( - rtems_isr_entry new_isr_handler, - rtems_vector_number vector, - rtems_isr_entry *old_isr_handler -) -{ - if ( !_ISR_Is_vector_number_valid( vector ) ) - return( RTEMS_INVALID_NUMBER ); - - if ( !_ISR_Is_valid_user_handler( new_isr_handler ) ) - return( RTEMS_INVALID_ADDRESS ); - - _ISR_Install_vector( - vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler ); - - return( RTEMS_SUCCESSFUL ); -} diff --git a/c/src/exec/rtems/src/mp.c b/c/src/exec/rtems/src/mp.c deleted file mode 100644 index f9522b2296..0000000000 --- a/c/src/exec/rtems/src/mp.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Multiprocessing Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Multiprocessing_Manager_initialization - * - */ - -void _Multiprocessing_Manager_initialization ( void ) -{ - if ( _Configuration_MP_table->node < 1 || - _Configuration_MP_table->node > _Configuration_MP_table->maximum_nodes ) - rtems_fatal_error_occurred( RTEMS_INVALID_NODE ); - - _Internal_threads_Set_MP_receive_server( _Multiprocessing_Receive_server ); -} - -/*PAGE - * - * rtems_multiprocessing_announce - * - */ - -void rtems_multiprocessing_announce ( void ) -{ - _Thread_MP_Ready(); -} - -/*PAGE - * - * _Multiprocessing_Receive_server - * - */ - -Thread _Multiprocessing_Receive_server ( - Thread_Argument ignored -) -{ - - rtems_packet_prefix *the_packet; - - _Thread_Dispatch_disable_level = 1; - - for ( ; ; ) { - - _Internal_threads_System_initialization_thread->Notepads[ 0 ] = 1; - - the_packet = _MPCI_Receive_packet(); - - if ( ! the_packet ) { - _Thread_MP_Block(); - _Thread_Dispatch_disable_level = 1; - } - else { - - _Thread_Executing->receive_packet = the_packet; - - switch ( the_packet->the_class ) { - - case RTEMS_MP_PACKET_INTERNAL_THREADS: - _Internal_threads_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_TASKS: - _RTEMS_tasks_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_MESSAGE_QUEUE: - _Message_queue_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_SEMAPHORE: - _Semaphore_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_PARTITION: - _Partition_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_REGION: - /* Global regions are unsupported at this time */ - break; - - case RTEMS_MP_PACKET_EVENT: - _Event_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_SIGNAL: - _Signal_MP_Process_packet( the_packet ); - break; - } - } - } -} - -/* end of file */ diff --git a/c/src/exec/rtems/src/msg.c b/c/src/exec/rtems/src/msg.c deleted file mode 100644 index 7cfe683ce5..0000000000 --- a/c/src/exec/rtems/src/msg.c +++ /dev/null @@ -1,708 +0,0 @@ -/* - * Message Queue Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Message_queue_Manager_initialization - * - * This routine initializes all message queue manager related - * data structures. - * - * Input parameters: - * maximum_message_queues - number of message queues to initialize - * maximum_message - number of messages per queue - * - * Output parameters: NONE - */ - -void _Message_queue_Manager_initialization( - unsigned32 maximum_message_queues, - unsigned32 maximum_messages -) -{ - - _Objects_Initialize_information( - &_Message_queue_Information, - TRUE, - maximum_message_queues, - sizeof( Message_queue_Control ) - ); - - if ( maximum_messages == 0 ) { - - _Chain_Initialize_empty( &_Message_queue_Inactive_messages ); - - } else { - - - _Chain_Initialize( - &_Message_queue_Inactive_messages, - _Workspace_Allocate_or_fatal_error( - maximum_messages * sizeof( Message_queue_Buffer_control ) - ), - maximum_messages, - sizeof( Message_queue_Buffer_control ) - ); - - } -} - -/*PAGE - * - * rtems_message_queue_create - * - * This directive creates a message queue by allocating and initializing - * a message queue data structure. - * - * Input parameters: - * name - user defined queue name - * count - maximum message and reserved buffer count - * attribute_set - process method - * id - pointer to queue - * - * Output parameters: - * id - queue id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - register Message_queue_Control *the_message_queue; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - if ( _Attributes_Is_global( attribute_set ) && - !_Configuration_Is_multiprocessing() ) - return( RTEMS_MP_NOT_CONFIGURED ); - - _Thread_Disable_dispatch(); /* protects object pointer */ - - the_message_queue = _Message_queue_Allocate(); - - if ( !the_message_queue ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - if ( _Attributes_Is_global( attribute_set ) && - !( _Objects_MP_Open( &_Message_queue_Information, name, - the_message_queue->Object.id, FALSE ) ) ) { - _Message_queue_Free( the_message_queue ); - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - if ( _Attributes_Is_limit( attribute_set ) ) - the_message_queue->maximum_pending_messages = count; - else - the_message_queue->maximum_pending_messages = 0xffffffff; - - the_message_queue->attribute_set = attribute_set; - the_message_queue->number_of_pending_messages = 0; - - _Chain_Initialize_empty( &the_message_queue->Pending_messages ); - - _Thread_queue_Initialize( &the_message_queue->Wait_queue, attribute_set, - STATES_WAITING_FOR_MESSAGE ); - - _Objects_Open( &_Message_queue_Information, - &the_message_queue->Object, name ); - - *id = the_message_queue->Object.id; - - if ( _Attributes_Is_global( attribute_set ) ) - _Message_queue_MP_Send_process_packet( - MESSAGE_QUEUE_MP_ANNOUNCE_CREATE, - the_message_queue->Object.id, - name, - 0 - ); - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_message_queue_ident - * - * This directive returns the system ID associated with - * the message queue name. - * - * Input parameters: - * name - user defined message queue name - * node - node(s) to be searched - * id - pointer to message queue id - * - * Output parameters: - * *id - message queue id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( _Objects_Name_to_id( &_Message_queue_Information, name, - node, id ) ); -} - -/*PAGE - * - * rtems_message_queue_delete - * - * This directive allows a thread to delete the message queue specified - * by the given queue identifier. - * - * Input parameters: - * id - queue id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_delete( - Objects_Id id -) -{ - register Message_queue_Control *the_message_queue; - Objects_Locations location; - - the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - _Objects_Close( &_Message_queue_Information, - &the_message_queue->Object ); - - if ( the_message_queue->number_of_pending_messages != 0 ) - (void) _Message_queue_Flush_support( the_message_queue ); - else - _Thread_queue_Flush( - &the_message_queue->Wait_queue, - _Message_queue_MP_Send_object_was_deleted - ); - - _Message_queue_Free( the_message_queue ); - - if ( _Attributes_Is_global( the_message_queue->attribute_set ) ) { - _Objects_MP_Close( - &_Message_queue_Information, - the_message_queue->Object.id - ); - - _Message_queue_MP_Send_process_packet( - MESSAGE_QUEUE_MP_ANNOUNCE_DELETE, - the_message_queue->Object.id, - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ); - } - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_message_queue_send - * - * This routine implements the directives q_send. It sends a - * message to the specified message queue. - * - * Input parameters: - * id - pointer to message queue - * buffer - pointer to message buffer - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_send( - Objects_Id id, - void *buffer -) -{ - return( _Message_queue_Submit( - id, - (Message_queue_Buffer *) buffer, - MESSAGE_QUEUE_SEND_REQUEST - ) - ); -} - -/*PAGE - * - * rtems_message_queue_urgent - * - * This routine implements the directives q_urgent. It urgents a - * message to the specified message queue. - * - * Input parameters: - * id - pointer to message queue - * buffer - pointer to message buffer - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_urgent( - Objects_Id id, - void *buffer -) -{ - return( _Message_queue_Submit( - id, - (Message_queue_Buffer *) buffer, - MESSAGE_QUEUE_URGENT_REQUEST - ) - ); -} - -/*PAGE - * - * rtems_message_queue_broadcast - * - * This directive sends a message for every thread waiting on the queue - * designated by id. - * - * Input parameters: - * id - pointer to message queue - * buffer - pointer to message buffer - * count - pointer to area to store number of threads made ready - * - * Output parameters: - * count - number of threads made ready - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_broadcast( - Objects_Id id, - void *buffer, - unsigned32 *count -) -{ - register Message_queue_Control *the_message_queue; - Objects_Locations location; - Thread_Control *the_thread; - unsigned32 number_broadcasted; - - the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = count; - - return - _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_BROADCAST_REQUEST, - id, - (Message_queue_Buffer *) buffer, - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ); - - case OBJECTS_LOCAL: - number_broadcasted = 0; - while ( (the_thread = - _Thread_queue_Dequeue(&the_message_queue->Wait_queue)) ) { - number_broadcasted += 1; - _Message_queue_Copy_buffer( - (Message_queue_Buffer *) buffer, - the_thread->Wait.return_argument - ); - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) { - the_thread->receive_packet->return_code = RTEMS_SUCCESSFUL; - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_RECEIVE_RESPONSE, - id, - the_thread - ); - } - } - _Thread_Enable_dispatch(); - *count = number_broadcasted; - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_message_queue_receive - * - * This directive dequeues a message from the designated message queue - * and copies it into the requesting thread's buffer. - * - * Input parameters: - * id - queue id - * buffer - pointer to message buffer - * option_set - options on receive - * timeout - number of ticks to wait - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_receive( - Objects_Id id, - void *buffer, - unsigned32 option_set, - rtems_interval timeout -) -{ - register Message_queue_Control *the_message_queue; - Objects_Locations location; - - the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = buffer; - return - _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_RECEIVE_REQUEST, - id, - buffer, - option_set, - timeout - ); - - case OBJECTS_LOCAL: - if ( !_Message_queue_Seize( the_message_queue, option_set, buffer ) ) - _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); - _Thread_Enable_dispatch(); - return( _Thread_Executing->Wait.return_code ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_message_queue_flush - * - * This directive removes all pending messages from a queue and returns - * the number of messages removed. If no messages were present then - * a count of zero is returned. - * - * Input parameters: - * id - queue id - * count - return area for count - * - * Output parameters: - * count - number of messages removed ( 0 = empty queue ) - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_flush( - Objects_Id id, - unsigned32 *count -) -{ - register Message_queue_Control *the_message_queue; - Objects_Locations location; - - the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = count; - - return - _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_FLUSH_REQUEST, - id, - 0, /* Not used */ - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ); - - case OBJECTS_LOCAL: - if ( the_message_queue->number_of_pending_messages != 0 ) - *count = _Message_queue_Flush_support( the_message_queue ); - else - *count = 0; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * _Message_queue_Seize - * - * This kernel routine dequeues a message, copies the message buffer to - * a given destination buffer, and frees the message buffer to the - * inactive message pool. - * - * Input parameters: - * the_message_queue - pointer to message queue - * option_set - options on receive - * the_buffer - pointer to message buffer to be filled - * - * Output parameters: - * TRUE - if message received or RTEMS_NO_WAIT and no message - * FALSE - if thread is to block - * - * NOTE: Dependent on BUFFER_LENGTH - * - * INTERRUPT LATENCY: - * available - * wait - */ - -boolean _Message_queue_Seize( - Message_queue_Control *the_message_queue, - rtems_option option_set, - Message_queue_Buffer *buffer -) -{ - ISR_Level level; - Message_queue_Buffer_control *the_message; - Thread_Control *executing; - - executing = _Thread_Executing; - executing->Wait.return_code = RTEMS_SUCCESSFUL; - _ISR_Disable( level ); - if ( the_message_queue->number_of_pending_messages != 0 ) { - the_message_queue->number_of_pending_messages -= 1; - - the_message = _Message_queue_Get_pending_message( the_message_queue ); - _ISR_Enable( level ); - _Message_queue_Copy_buffer( &the_message->Contents, buffer ); - _Message_queue_Free_message_buffer( the_message ); - return( TRUE ); - } - - if ( _Options_Is_no_wait( option_set ) ) { - _ISR_Enable( level ); - executing->Wait.return_code = RTEMS_UNSATISFIED; - return( TRUE ); - } - - the_message_queue->Wait_queue.sync = TRUE; - executing->Wait.queue = &the_message_queue->Wait_queue; - executing->Wait.id = the_message_queue->Object.id; - executing->Wait.option_set = option_set; - executing->Wait.return_argument = (unsigned32 *)buffer; - _ISR_Enable( level ); - return( FALSE ); -} - -/*PAGE - * - * _Message_queue_Flush_support - * - * This message manager routine removes all messages from a message queue - * and returns them to the inactive message pool. - * - * Input parameters: - * the_message_queue - pointer to message queue - * - * Output parameters: - * returns - number of messages placed on inactive chain - * - * INTERRUPT LATENCY: - * only case - */ - -unsigned32 _Message_queue_Flush_support( - Message_queue_Control *the_message_queue -) -{ - ISR_Level level; - Chain_Node *inactive_first; - Chain_Node *message_queue_first; - Chain_Node *message_queue_last; - unsigned32 count; - - _ISR_Disable( level ); - inactive_first = _Message_queue_Inactive_messages.first; - message_queue_first = the_message_queue->Pending_messages.first; - message_queue_last = the_message_queue->Pending_messages.last; - - _Message_queue_Inactive_messages.first = message_queue_first; - message_queue_last->next = inactive_first; - inactive_first->previous = message_queue_last; - message_queue_first->previous = - _Chain_Head( &_Message_queue_Inactive_messages ); - - _Chain_Initialize_empty( &the_message_queue->Pending_messages ); - - count = the_message_queue->number_of_pending_messages; - the_message_queue->number_of_pending_messages = 0; - _ISR_Enable( level ); - return( count ); -} - -/*PAGE - * - * _Message_queue_Submit - * - * This routine implements the directives q_send and q_urgent. It - * processes a message that is to be submitted to the designated - * message queue. The message will either be processed as a send - * send message which it will be inserted at the rear of the queue - * or it will be processed as an urgent message which will be inserted - * at the front of the queue. - * - * Input parameters: - * id - pointer to message queue - * the_buffer - pointer to message buffer - * submit_type - send or urgent message - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code _Message_queue_Submit( - Objects_Id id, - Message_queue_Buffer *buffer, - Message_queue_Submit_types submit_type -) -{ - register Message_queue_Control *the_message_queue; - Objects_Locations location; - Thread_Control *the_thread; - Message_queue_Buffer_control *the_message; - - the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - switch ( submit_type ) { - case MESSAGE_QUEUE_SEND_REQUEST: - return - _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_SEND_REQUEST, - id, - buffer, - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ); - - case MESSAGE_QUEUE_URGENT_REQUEST: - return - _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_URGENT_REQUEST, - id, - buffer, - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ); - } - case OBJECTS_LOCAL: - the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue ); - - if ( the_thread ) { - - _Message_queue_Copy_buffer( - buffer, - the_thread->Wait.return_argument - ); - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) { - the_thread->receive_packet->return_code = RTEMS_SUCCESSFUL; - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_RECEIVE_RESPONSE, - id, - the_thread - ); - - } - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - if ( the_message_queue->number_of_pending_messages == - the_message_queue->maximum_pending_messages ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_message = _Message_queue_Allocate_message_buffer(); - - if ( !the_message ) { - _Thread_Enable_dispatch(); - return( RTEMS_UNSATISFIED ); - } - - _Message_queue_Copy_buffer( buffer, &the_message->Contents ); - - the_message_queue->number_of_pending_messages += 1; - - switch ( submit_type ) { - case MESSAGE_QUEUE_SEND_REQUEST: - _Message_queue_Append( the_message_queue, the_message ); - break; - case MESSAGE_QUEUE_URGENT_REQUEST: - _Message_queue_Prepend( the_message_queue, the_message ); - break; - } - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/c/src/exec/rtems/src/msgmp.c b/c/src/exec/rtems/src/msgmp.c deleted file mode 100644 index d3a1a02f33..0000000000 --- a/c/src/exec/rtems/src/msgmp.c +++ /dev/null @@ -1,397 +0,0 @@ -/* - * Multiprocessing Support for the Message Queue Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Message_queue_MP_Send_process_packet - * - */ - -void _Message_queue_MP_Send_process_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Objects_Name name, - Objects_Id proxy_id -) -{ - Message_queue_MP_Packet *the_packet; - unsigned32 node; - - switch ( operation ) { - - case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE: - case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE: - case MESSAGE_QUEUE_MP_EXTRACT_PROXY: - - the_packet = _Message_queue_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_MESSAGE_QUEUE; - the_packet->Prefix.length = sizeof ( Message_queue_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Message_queue_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = message_queue_id; - the_packet->name = name; - the_packet->proxy_id = proxy_id; - - if ( operation == MESSAGE_QUEUE_MP_EXTRACT_PROXY ) - node = rtems_get_node( message_queue_id ); - else - node = MPCI_ALL_NODES; - - _MPCI_Send_process_packet( node, &the_packet->Prefix ); - break; - - case MESSAGE_QUEUE_MP_RECEIVE_REQUEST: - case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE: - case MESSAGE_QUEUE_MP_SEND_REQUEST: - case MESSAGE_QUEUE_MP_SEND_RESPONSE: - case MESSAGE_QUEUE_MP_URGENT_REQUEST: - case MESSAGE_QUEUE_MP_URGENT_RESPONSE: - case MESSAGE_QUEUE_MP_BROADCAST_REQUEST: - case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: - case MESSAGE_QUEUE_MP_FLUSH_REQUEST: - case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: - break; - - } -} - -/*PAGE - * - * _Message_queue_MP_Send_request_packet - * - */ - -rtems_status_code _Message_queue_MP_Send_request_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Message_queue_Buffer *buffer, - rtems_option option_set, - rtems_interval timeout -) -{ - Message_queue_MP_Packet *the_packet; - - switch ( operation ) { - - case MESSAGE_QUEUE_MP_RECEIVE_REQUEST: - case MESSAGE_QUEUE_MP_SEND_REQUEST: - case MESSAGE_QUEUE_MP_URGENT_REQUEST: - case MESSAGE_QUEUE_MP_BROADCAST_REQUEST: - case MESSAGE_QUEUE_MP_FLUSH_REQUEST: - - the_packet = _Message_queue_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_MESSAGE_QUEUE; - the_packet->Prefix.length = sizeof ( Message_queue_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Message_queue_MP_Packet ) - - sizeof ( Message_queue_Buffer ); - if ( ! _Options_Is_no_wait(option_set)) - the_packet->Prefix.timeout = timeout; - - the_packet->operation = operation; - the_packet->Prefix.id = message_queue_id; - the_packet->option_set = option_set; - - if ( buffer ) - _Message_queue_Copy_buffer( buffer, &the_packet->Buffer ); - - return - _MPCI_Send_request_packet( - rtems_get_node( message_queue_id ), - &the_packet->Prefix, - STATES_WAITING_FOR_MESSAGE - ); - break; - - case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE: - case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE: - case MESSAGE_QUEUE_MP_EXTRACT_PROXY: - case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE: - case MESSAGE_QUEUE_MP_SEND_RESPONSE: - case MESSAGE_QUEUE_MP_URGENT_RESPONSE: - case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: - case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _Message_queue_MP_Send_response_packet - * - */ - -void _Message_queue_MP_Send_response_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Thread_Control *the_thread -) -{ - Message_queue_MP_Packet *the_packet; - - switch ( operation ) { - - case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE: - case MESSAGE_QUEUE_MP_SEND_RESPONSE: - case MESSAGE_QUEUE_MP_URGENT_RESPONSE: - case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: - case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: - - the_packet = ( Message_queue_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE: - case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE: - case MESSAGE_QUEUE_MP_EXTRACT_PROXY: - case MESSAGE_QUEUE_MP_RECEIVE_REQUEST: - case MESSAGE_QUEUE_MP_SEND_REQUEST: - case MESSAGE_QUEUE_MP_URGENT_REQUEST: - case MESSAGE_QUEUE_MP_BROADCAST_REQUEST: - case MESSAGE_QUEUE_MP_FLUSH_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Message_queue_MP_Process_packet - * - */ - -void _Message_queue_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Message_queue_MP_Packet *the_packet; - Thread_Control *the_thread; - boolean ignored; - - the_packet = (Message_queue_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE: - - ignored = _Objects_MP_Open( - &_Message_queue_Information, - the_packet->name, - the_packet->Prefix.id, - TRUE - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE: - - _Objects_MP_Close( &_Message_queue_Information, the_packet->Prefix.id ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_EXTRACT_PROXY: - - the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id ); - - if ( ! _Thread_Is_null( the_thread ) ) - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_RECEIVE_REQUEST: - - the_packet->Prefix.return_code = rtems_message_queue_receive( - the_packet->Prefix.id, - &the_packet->Buffer, - the_packet->option_set, - the_packet->Prefix.timeout - ); - - if ( ! _Status_Is_proxy_blocking( the_packet->Prefix.return_code ) ) - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_RECEIVE_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _Message_queue_Copy_buffer( - &the_packet->Buffer, - (Message_queue_Buffer *) the_thread->Wait.return_argument - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_SEND_REQUEST: - - the_packet->Prefix.return_code = rtems_message_queue_send( - the_packet->Prefix.id, - &the_packet->Buffer - ); - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_SEND_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case MESSAGE_QUEUE_MP_SEND_RESPONSE: - case MESSAGE_QUEUE_MP_URGENT_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_URGENT_REQUEST: - - the_packet->Prefix.return_code = rtems_message_queue_urgent( - the_packet->Prefix.id, - &the_packet->Buffer - ); - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_URGENT_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case MESSAGE_QUEUE_MP_BROADCAST_REQUEST: - - the_packet->Prefix.return_code = rtems_message_queue_broadcast( - the_packet->Prefix.id, - &the_packet->Buffer, - &the_packet->count - ); - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_BROADCAST_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: - case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - *(unsigned32 *)the_thread->Wait.return_argument = the_packet->count; - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_FLUSH_REQUEST: - - the_packet->Prefix.return_code = rtems_message_queue_flush( - the_packet->Prefix.id, - &the_packet->count - ); - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_FLUSH_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - } -} - -/*PAGE - * - * _Message_queue_MP_Send_object_was_deleted - * - */ - -void _Message_queue_MP_Send_object_was_deleted ( - Thread_Control *the_proxy -) -{ - the_proxy->receive_packet->return_code = RTEMS_OBJECT_WAS_DELETED; - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_RECEIVE_RESPONSE, - the_proxy->Wait.id, - the_proxy - ); -} - -/*PAGE - * - * _Message_queue_MP_Send_extract_proxy - * - */ - -void _Message_queue_MP_Send_extract_proxy ( - Thread_Control *the_thread -) -{ - _Message_queue_MP_Send_process_packet( - MESSAGE_QUEUE_MP_EXTRACT_PROXY, - the_thread->Wait.id, - (Objects_Name) 0, - the_thread->Object.id - ); -} - -/*PAGE - * - * _Message_queue_MP_Get_packet - * - */ - -Message_queue_MP_Packet *_Message_queue_MP_Get_packet ( void ) -{ - return ( (Message_queue_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/c/src/exec/rtems/src/part.c b/c/src/exec/rtems/src/part.c deleted file mode 100644 index 1fa2e0e716..0000000000 --- a/c/src/exec/rtems/src/part.c +++ /dev/null @@ -1,322 +0,0 @@ -/* - * Partition Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Partition_Manager_initialization - * - * This routine initializes all partition manager related - * data structures. - * - * Input parameters: - * maximum_partitions - number of partitions to initialize - * - * Output parameters: NONE - */ - -void _Partition_Manager_initialization( - unsigned32 maximum_partitions -) -{ - _Objects_Initialize_information( - &_Partition_Information, - TRUE, - maximum_partitions, - sizeof( Partition_Control ) - ); - -} - -/*PAGE - * - * rtems_partition_create - * - * This directive creates a partiton of fixed sized buffers from the - * given contiguous memory area. - * - * Input parameters: - * name - user defined partition name - * starting_address - physical start address of partition - * length - physical length in bytes - * buffer_size - size of buffers in bytes - * attribute_set - partition attributes - * id - pointer to partition id - * - * Output parameters: - * id - partition id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_partition_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 buffer_size, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - register Partition_Control *the_partition; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - if ( length == 0 || buffer_size == 0 || length < buffer_size || - !_Partition_Is_buffer_size_aligned( buffer_size ) ) - return ( RTEMS_INVALID_SIZE ); - - if ( !_Addresses_Is_aligned( starting_address ) ) - return( RTEMS_INVALID_ADDRESS ); - - if ( _Attributes_Is_global( attribute_set ) && - !_Configuration_Is_multiprocessing() ) - return( RTEMS_MP_NOT_CONFIGURED ); - - _Thread_Disable_dispatch(); /* prevents deletion */ - - the_partition = _Partition_Allocate(); - - if ( !the_partition ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - if ( _Attributes_Is_global( attribute_set ) && - !( _Objects_MP_Open( &_Partition_Information, name, - the_partition->Object.id, FALSE ) ) ) { - _Partition_Free( the_partition ); - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - the_partition->starting_address = starting_address; - the_partition->length = length; - the_partition->buffer_size = buffer_size; - the_partition->attribute_set = attribute_set; - the_partition->number_of_used_blocks = 0; - - _Chain_Initialize( &the_partition->Memory, starting_address, - length / buffer_size, buffer_size ); - - _Objects_Open( &_Partition_Information, &the_partition->Object, name ); - - *id = the_partition->Object.id; - if ( _Attributes_Is_global( attribute_set ) ) - _Partition_MP_Send_process_packet( - PARTITION_MP_ANNOUNCE_CREATE, - the_partition->Object.id, - name, - 0 /* Not used */ - ); - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_partition_ident - * - * This directive returns the system ID associated with - * the partition name. - * - * Input parameters: - * name - user defined partition name - * node - node(s) to be searched - * id - pointer to partition id - * - * Output parameters: - * *id - partition id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_partition_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( _Objects_Name_to_id( &_Partition_Information, name, node, id ) ); -} - -/*PAGE - * - * rtems_partition_delete - * - * This directive allows a thread to delete a partition specified by - * the partition identifier, provided that none of its buffers are - * still allocated. - * - * Input parameters: - * id - partition id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_partition_delete( - Objects_Id id -) -{ - register Partition_Control *the_partition; - Objects_Locations location; - - the_partition = _Partition_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - if ( the_partition->number_of_used_blocks == 0 ) { - _Objects_Close( &_Partition_Information, &the_partition->Object ); - _Partition_Free( the_partition ); - if ( _Attributes_Is_global( the_partition->attribute_set ) ) { - - _Objects_MP_Close( - &_Partition_Information, - the_partition->Object.id - ); - - _Partition_MP_Send_process_packet( - PARTITION_MP_ANNOUNCE_DELETE, - the_partition->Object.id, - 0, /* Not used */ - 0 /* Not used */ - ); - } - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_RESOURCE_IN_USE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_partition_get_buffer - * - * This directive will obtain a buffer from a buffer partition. - * - * Input parameters: - * id - partition id - * buffer - pointer to buffer address - * - * Output parameters: - * buffer - pointer to buffer address filled in - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_partition_get_buffer( - Objects_Id id, - void **buffer -) -{ - register Partition_Control *the_partition; - Objects_Locations location; - void *the_buffer; - - the_partition = _Partition_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = buffer; - return( - _Partition_MP_Send_request_packet( - PARTITION_MP_GET_BUFFER_REQUEST, - id, - 0 /* Not used */ - ) - ); - case OBJECTS_LOCAL: - the_buffer = _Partition_Allocate_buffer( the_partition ); - if ( the_buffer ) { - the_partition->number_of_used_blocks += 1; - _Thread_Enable_dispatch(); - *buffer = the_buffer; - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_UNSATISFIED ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_partition_return_buffer - * - * This directive will return the given buffer to the specified - * buffer partition. - * - * Input parameters: - * id - partition id - * buffer - pointer to buffer address - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_partition_return_buffer( - Objects_Id id, - void *buffer -) -{ - register Partition_Control *the_partition; - Objects_Locations location; - - the_partition = _Partition_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return( - _Partition_MP_Send_request_packet( - PARTITION_MP_RETURN_BUFFER_REQUEST, - id, - buffer - ) - ); - case OBJECTS_LOCAL: - if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) { - _Partition_Free_buffer( the_partition, buffer ); - the_partition->number_of_used_blocks -= 1; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INVALID_ADDRESS ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/c/src/exec/rtems/src/partmp.c b/c/src/exec/rtems/src/partmp.c deleted file mode 100644 index 9cc1723106..0000000000 --- a/c/src/exec/rtems/src/partmp.c +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Multiprocessing Support for the Partition Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Partition_MP_Send_process_packet - * - */ - -void _Partition_MP_Send_process_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - Objects_Name name, - Objects_Id proxy_id -) -{ - Partition_MP_Packet *the_packet; - unsigned32 node; - - switch ( operation ) { - - case PARTITION_MP_ANNOUNCE_CREATE: - case PARTITION_MP_ANNOUNCE_DELETE: - case PARTITION_MP_EXTRACT_PROXY: - - the_packet = _Partition_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_PARTITION; - the_packet->Prefix.length = sizeof ( Partition_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Partition_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = partition_id; - the_packet->name = name; - the_packet->proxy_id = proxy_id; - - if ( operation == PARTITION_MP_EXTRACT_PROXY ) - node = rtems_get_node( partition_id ); - else - node = MPCI_ALL_NODES; - - _MPCI_Send_process_packet( node, &the_packet->Prefix ); - break; - - case PARTITION_MP_GET_BUFFER_REQUEST: - case PARTITION_MP_GET_BUFFER_RESPONSE: - case PARTITION_MP_RETURN_BUFFER_REQUEST: - case PARTITION_MP_RETURN_BUFFER_RESPONSE: - break; - } -} - -/*PAGE - * - * _Partition_MP_Send_request_packet - * - */ - -rtems_status_code _Partition_MP_Send_request_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - void *buffer -) -{ - Partition_MP_Packet *the_packet; - - switch ( operation ) { - - case PARTITION_MP_GET_BUFFER_REQUEST: - case PARTITION_MP_RETURN_BUFFER_REQUEST: - - the_packet = _Partition_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_PARTITION; - the_packet->Prefix.length = sizeof ( Partition_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Partition_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = partition_id; - the_packet->buffer = buffer; - - return - _MPCI_Send_request_packet( - rtems_get_node( partition_id ), - &the_packet->Prefix, - STATES_READY /* Not used */ - ); - - break; - - case PARTITION_MP_ANNOUNCE_CREATE: - case PARTITION_MP_ANNOUNCE_DELETE: - case PARTITION_MP_EXTRACT_PROXY: - case PARTITION_MP_GET_BUFFER_RESPONSE: - case PARTITION_MP_RETURN_BUFFER_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _Partition_MP_Send_response_packet - * - */ - -void _Partition_MP_Send_response_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - Thread_Control *the_thread -) -{ - Partition_MP_Packet *the_packet; - - switch ( operation ) { - - case PARTITION_MP_GET_BUFFER_RESPONSE: - case PARTITION_MP_RETURN_BUFFER_RESPONSE: - - the_packet = ( Partition_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case PARTITION_MP_ANNOUNCE_CREATE: - case PARTITION_MP_ANNOUNCE_DELETE: - case PARTITION_MP_EXTRACT_PROXY: - case PARTITION_MP_GET_BUFFER_REQUEST: - case PARTITION_MP_RETURN_BUFFER_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Partition_MP_Process_packet - * - */ - -void _Partition_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Partition_MP_Packet *the_packet; - Thread_Control *the_thread; - boolean ignored; - - the_packet = (Partition_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case PARTITION_MP_ANNOUNCE_CREATE: - - ignored = _Objects_MP_Open( - &_Partition_Information, - the_packet->name, - the_packet->Prefix.id, - TRUE - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case PARTITION_MP_ANNOUNCE_DELETE: - - _Objects_MP_Close( &_Partition_Information, the_packet->Prefix.id ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case PARTITION_MP_EXTRACT_PROXY: - - the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id ); - - if ( ! _Thread_Is_null( the_thread ) ) - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case PARTITION_MP_GET_BUFFER_REQUEST: - - the_packet->Prefix.return_code = rtems_partition_get_buffer( - the_packet->Prefix.id, - &the_packet->buffer - ); - - _Partition_MP_Send_response_packet( - PARTITION_MP_GET_BUFFER_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case PARTITION_MP_GET_BUFFER_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - *(void **)the_thread->Wait.return_argument = the_packet->buffer; - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case PARTITION_MP_RETURN_BUFFER_REQUEST: - - the_packet->Prefix.return_code = rtems_partition_return_buffer( - the_packet->Prefix.id, - the_packet->buffer - ); - - _Partition_MP_Send_response_packet( - PARTITION_MP_RETURN_BUFFER_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case PARTITION_MP_RETURN_BUFFER_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - } -} - -/*PAGE - * - * _Partition_MP_Send_object_was_deleted - * - * This routine is not needed by the Partition since a partition - * cannot be deleted when buffers are in use. - * - */ - -/*PAGE - * - * _Partition_MP_Send_extract_proxy - * - */ - -void _Partition_MP_Send_extract_proxy ( - Thread_Control *the_thread -) -{ - _Partition_MP_Send_process_packet( - PARTITION_MP_EXTRACT_PROXY, - the_thread->Wait.id, - (Objects_Name) 0, - the_thread->Object.id - ); - -} - -/*PAGE - * - * _Partition_MP_Get_packet - * - */ - -Partition_MP_Packet *_Partition_MP_Get_packet ( void ) -{ - return ( (Partition_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/c/src/exec/rtems/src/ratemon.c b/c/src/exec/rtems/src/ratemon.c deleted file mode 100644 index 3c0733a3ab..0000000000 --- a/c/src/exec/rtems/src/ratemon.c +++ /dev/null @@ -1,401 +0,0 @@ -/* - * Rate Monotonic Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/*PAGE - * - * _Rate_monotonic_Manager_initialization - * - * This routine initializes all Rate Monotonic Manager related - * data structures. - * - * Input parameters: - * maximum_periods - number of periods timers to initialize - * - * Output parameters: NONE - * - * NOTE: The Rate Monotonic Manager is built on top of the Watchdog - * Handler. - */ - -void _Rate_monotonic_Manager_initialization( - unsigned32 maximum_periods -) -{ - _Objects_Initialize_information( - &_Rate_monotonic_Information, - FALSE, - maximum_periods, - sizeof( Rate_monotonic_Control ) - ); -} - -/*PAGE - * - * rtems_rate_monotonic_create - * - * This directive creates a rate monotonic timer and performs - * some initialization. - * - * Input parameters: - * name - name of period - * id - pointer to rate monotonic id - * - * Output parameters: - * id - rate monotonic id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_rate_monotonic_create( - Objects_Name name, - Objects_Id *id -) -{ - Rate_monotonic_Control *the_period; - - if ( !_Objects_Is_name_valid( name ) ) - return( RTEMS_INVALID_NAME ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_period = _Rate_monotonic_Allocate(); - - if ( !the_period ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_period->owner = _Thread_Executing; - the_period->state = RATE_MONOTONIC_INACTIVE; - - _Objects_Open( &_Rate_monotonic_Information, &the_period->Object, name ); - - *id = the_period->Object.id; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_rate_monotonic_ident - * - * This directive returns the system ID associated with - * the rate monotonic period name. - * - * Input parameters: - * name - user defined period name - * id - pointer to period id - * - * Output parameters: - * *id - region id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_rate_monotonic_ident( - Objects_Name name, - Objects_Id *id -) -{ - return _Objects_Name_to_id( - &_Rate_monotonic_Information, - name, - RTEMS_SEARCH_LOCAL_NODE, - id - ); -} - -/*PAGE - * - * rtems_rate_monotonic_cancel - * - * This directive allows a thread to cancel a rate monotonic timer. - * - * Input parameters: - * id - rate monotonic id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful and caller is not the owning thread - * error code - if unsuccessful - */ - -rtems_status_code rtems_rate_monotonic_cancel( - Objects_Id id -) -{ - Rate_monotonic_Control *the_period; - Objects_Locations location; - - the_period = _Rate_monotonic_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( !_Thread_Is_executing( the_period->owner ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_NOT_OWNER_OF_RESOURCE ); - } - (void) _Watchdog_Remove( &the_period->Timer ); - the_period->state = RATE_MONOTONIC_INACTIVE; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_rate_monotonic_delete - * - * This directive allows a thread to delete a rate monotonic timer. - * - * Input parameters: - * id - rate monotonic id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_rate_monotonic_delete( - Objects_Id id -) -{ - Rate_monotonic_Control *the_period; - Objects_Locations location; - - the_period = _Rate_monotonic_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - _Objects_Close( &_Rate_monotonic_Information, &the_period->Object ); - (void) _Watchdog_Remove( &the_period->Timer ); - the_period->state = RATE_MONOTONIC_INACTIVE; - _Rate_monotonic_Free( the_period ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_rate_monotonic_period - * - * This directive allows a thread to manipulate a rate monotonic timer. - * - * Input parameters: - * id - rate monotonic id - * length - length of period (in ticks) - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_rate_monotonic_period( - Objects_Id id, - rtems_interval length -) -{ - Rate_monotonic_Control *the_period; - Objects_Locations location; - rtems_status_code return_value; - - the_period = _Rate_monotonic_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( !_Thread_Is_executing( the_period->owner ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_NOT_OWNER_OF_RESOURCE ); - } - - if ( length == RTEMS_PERIOD_STATUS ) { - switch ( the_period->state ) { - case RATE_MONOTONIC_INACTIVE: - return_value = RTEMS_NOT_DEFINED; - break; - case RATE_MONOTONIC_ACTIVE: - return_value = RTEMS_SUCCESSFUL; - break; - case RATE_MONOTONIC_EXPIRED: - return_value = RTEMS_TIMEOUT; - break; - default: /* unreached -- only to remove warnings */ - return_value = RTEMS_INTERNAL_ERROR; - break; - } - _Thread_Enable_dispatch(); - return( return_value ); - } - - switch ( the_period->state ) { - case RATE_MONOTONIC_INACTIVE: - the_period->state = RATE_MONOTONIC_ACTIVE; - _Watchdog_Initialize( - &the_period->Timer, - _Rate_monotonic_Timeout, - id, - NULL - ); - _Watchdog_Insert_ticks( - &the_period->Timer, length, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - - case RATE_MONOTONIC_ACTIVE: -/* following is and could be a critical section problem */ - _Thread_Executing->Wait.id = the_period->Object.id; - if ( _Rate_monotonic_Set_state( the_period ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - /* has expired -- fall into next case */ - case RATE_MONOTONIC_EXPIRED: - the_period->state = RATE_MONOTONIC_ACTIVE; - _Watchdog_Insert_ticks( - &the_period->Timer, length, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_TIMEOUT ); - } - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * _Rate_monotonic_Set_state - * - * This kernel routine sets the STATES_WAITING_FOR_PERIOD state in - * the running thread's tcb if the specified period has not expired. - * The ready chain is adjusted if necessary. - * - * Input parameters: - * the_period - pointer to period control block - * - * Output parameters: - * TRUE - if blocked successfully for period - * FALSE - if period has expired - * - * INTERRUPT LATENCY: - * delete node - * priority map - * select heir - */ - -boolean _Rate_monotonic_Set_state( -Rate_monotonic_Control *the_period -) -{ - Thread_Control *executing; - Chain_Control *ready; - ISR_Level level; - States_Control old_state; - - executing = _Thread_Executing; - ready = executing->ready; - _ISR_Disable( level ); - - old_state = executing->current_state; - - if ( _Rate_monotonic_Is_expired( the_period ) ) { - _ISR_Enable( level ); - return( FALSE ); - } - - executing->current_state = - _States_Set( STATES_WAITING_FOR_PERIOD, old_state ); - - if ( _States_Is_ready( old_state ) ) { - if ( _Chain_Has_only_one_node( ready ) ) { - _Chain_Initialize_empty( ready ); - _Priority_Remove_from_bit_map( &executing->Priority_map ); - _ISR_Flash( level ); - } else { - _Chain_Extract_unprotected( &executing->Object.Node ); - _ISR_Flash( level ); - } - - if ( _Thread_Is_heir( executing ) ) - _Thread_Calculate_heir(); - - _Context_Switch_necessary = TRUE; - } - - _ISR_Enable( level ); - return( TRUE ); -} - -/*PAGE - * - * _Rate_monotonic_Timeout - * - * This routine processes a period ending. If the owning thread - * is waiting for the period, that thread is unblocked and the - * period reinitiated. Otherwise, the period is expired. - * This routine is called by the watchdog handler. - * - * Input parameters: - * id - period id - * - * Output parameters: NONE - */ - -void _Rate_monotonic_Timeout( - Objects_Id id, - void *ignored -) -{ - Rate_monotonic_Control *the_period; - Objects_Locations location; - Thread_Control *the_thread; - - the_period = _Rate_monotonic_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: /* impossible */ - break; - case OBJECTS_LOCAL: - the_thread = the_period->owner; - if ( _States_Is_waiting_for_period( the_thread->current_state ) && - the_thread->Wait.id == the_period->Object.id ) { - _Thread_Unblock( the_thread ); - _Watchdog_Reset( &the_period->Timer ); - } - else - the_period->state = RATE_MONOTONIC_EXPIRED; - _Thread_Unnest_dispatch(); - break; - } -} - diff --git a/c/src/exec/rtems/src/region.c b/c/src/exec/rtems/src/region.c deleted file mode 100644 index c62214eaf6..0000000000 --- a/c/src/exec/rtems/src/region.c +++ /dev/null @@ -1,456 +0,0 @@ -/* - * Region Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Region_Manager_initialization - * - * This routine initializes all region manager related data structures. - * - * Input parameters: - * maximum_regions - number of regions to initialize - * - * Output parameters: NONE - */ - -void _Region_Manager_initialization( - unsigned32 maximum_regions -) -{ - _Objects_Initialize_information( - &_Region_Information, - FALSE, - maximum_regions, - sizeof( Region_Control ) - ); -} - -/*PAGE - * - * rtems_region_create - * - * This directive creates a region of physical contiguous memory area - * from which variable sized segments can be allocated. - * - * Input parameters: - * name - user defined region name - * starting_address - physical start address of region - * length - physical length in bytes - * page_size - page size in bytes - * attribute_set - region attributes - * id - address of region id to set - * - * Output parameters: - * id - region id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 page_size, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - Region_Control *the_region; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - if ( !_Addresses_Is_aligned( starting_address ) ) - return( RTEMS_INVALID_ADDRESS ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_region = _Region_Allocate(); - - if ( !the_region ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_region->maximum_segment_size = - _Heap_Initialize(&the_region->Memory, starting_address, length, page_size); - - if ( !the_region->maximum_segment_size ) { - _Region_Free( the_region ); - _Thread_Enable_dispatch(); - return( RTEMS_INVALID_SIZE ); - } - - the_region->starting_address = starting_address; - the_region->length = length; - the_region->page_size = page_size; - the_region->attribute_set = attribute_set; - the_region->number_of_used_blocks = 0; - - _Thread_queue_Initialize( - &the_region->Wait_queue, attribute_set, STATES_WAITING_FOR_SEGMENT ); - - _Objects_Open( &_Region_Information, &the_region->Object, name ); - - *id = the_region->Object.id; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_region_ident - * - * This directive returns the system ID associated with - * the region name. - * - * Input parameters: - * name - user defined region name - * id - pointer to region id - * - * Output parameters: - * *id - region id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_ident( - Objects_Name name, - Objects_Id *id -) -{ - return _Objects_Name_to_id( - &_Region_Information, - name, - RTEMS_SEARCH_LOCAL_NODE, - id - ); -} - -/*PAGE - * - * rtems_region_delete - * - * This directive allows a thread to delete a region specified by - * the region identifier, provided that none of its segments are - * still allocated. - * - * Input parameters: - * id - region id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_delete( - Objects_Id id -) -{ - register Region_Control *the_region; - Objects_Locations location; - - the_region = _Region_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - _Region_Debug_Walk( the_region, 5 ); - if ( the_region->number_of_used_blocks == 0 ) { - _Objects_Close( &_Region_Information, &the_region->Object ); - _Region_Free( the_region ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_RESOURCE_IN_USE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_region_extend - * - * This directive attempts to grow a region of physical contiguous memory area - * from which variable sized segments can be allocated. - * - * Input parameters: - * id - id of region to grow - * start - starting address of memory area for extension - * length - physical length in bytes to grow the region - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_extend( - Objects_Id id, - void *starting_address, - unsigned32 length -) -{ - Region_Control *the_region; - Objects_Locations location; - unsigned32 amount_extended; - Heap_Extend_status heap_status; - rtems_status_code status; - - status = RTEMS_SUCCESSFUL; - - the_region = _Region_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - - heap_status = _Heap_Extend( - &the_region->Memory, - starting_address, - length, - &amount_extended - ); - - switch ( heap_status ) { - case HEAP_EXTEND_SUCCESSFUL: - the_region->length += amount_extended; - the_region->maximum_segment_size += amount_extended; - break; - case HEAP_EXTEND_ERROR: - status = RTEMS_INVALID_ADDRESS; - break; - case HEAP_EXTEND_NOT_IMPLEMENTED: - status = RTEMS_NOT_IMPLEMENTED; - break; - } - _Thread_Enable_dispatch(); - return( status ); - } - - return( RTEMS_INTERNAL_ERROR ); -} - -/*PAGE - * - * rtems_region_get_segment - * - * This directive will obtain a segment from the given region. - * - * Input parameters: - * id - region id - * size - segment size in bytes - * option_set - wait option - * timeout - number of ticks to wait (0 means wait forever) - * segment - pointer to segment address - * - * Output parameters: - * segment - pointer to segment address filled in - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_get_segment( - Objects_Id id, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout, - void **segment -) -{ - register Region_Control *the_region; - Objects_Locations location; - Thread_Control *executing; - void *the_segment; - - if ( size == 0 ) - return( RTEMS_INVALID_SIZE ); - - executing = _Thread_Executing; - the_region = _Region_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( size > the_region->maximum_segment_size ) { - _Thread_Enable_dispatch(); - return( RTEMS_INVALID_SIZE ); - } - - _Region_Debug_Walk( the_region, 1 ); - - the_segment = _Region_Allocate_segment( the_region, size ); - - _Region_Debug_Walk( the_region, 2 ); - - if ( the_segment ) { - the_region->number_of_used_blocks += 1; - _Thread_Enable_dispatch(); - *segment = the_segment; - return( RTEMS_SUCCESSFUL ); - } - - if ( _Options_Is_no_wait( option_set ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_UNSATISFIED ); - } - - executing->Wait.queue = &the_region->Wait_queue; - executing->Wait.id = id; - executing->Wait.Extra.segment_size = size; - executing->Wait.return_argument = (unsigned32 *) segment; - - the_region->Wait_queue.sync = TRUE; - - _Thread_queue_Enqueue( &the_region->Wait_queue, timeout ); - - _Thread_Enable_dispatch(); - return( executing->Wait.return_code ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} -/*PAGE - * - * rtems_region_get_segment_size - * - * This directive will return the size of the segment indicated - * - * Input parameters: - * id - region id - * segment - segment address - * size - pointer to segment size in bytes - * - * Output parameters: - * size - segment size in bytes filled in - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_get_segment_size( - Objects_Id id, - void *segment, - unsigned32 *size -) -{ - register Region_Control *the_region; - Objects_Locations location; - Thread_Control *executing; - - executing = _Thread_Executing; - the_region = _Region_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - - if ( _Heap_Size_of_user_area( &the_region->Memory, segment, size ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INVALID_ADDRESS ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_region_return_segment - * - * This directive will return a segment to its region. - * - * Input parameters: - * id - region id - * segment - pointer to segment address - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_return_segment( - Objects_Id id, - void *segment -) -{ - register Region_Control *the_region; - Thread_Control *the_thread; - Objects_Locations location; - void **the_segment; - int status; - - the_region = _Region_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - - _Region_Debug_Walk( the_region, 3 ); - - status = _Region_Free_segment( the_region, segment ); - - _Region_Debug_Walk( the_region, 4 ); - - if ( !status ) { - _Thread_Enable_dispatch(); - return( RTEMS_INVALID_ADDRESS ); - } - - the_region->number_of_used_blocks -= 1; - for ( ; ; ) { - the_thread = _Thread_queue_First( &the_region->Wait_queue ); - - if ( the_thread == NULL ) - break; - - the_segment = _Region_Allocate_segment( - the_region, the_thread->Wait.Extra.segment_size ); - - if ( the_segment == NULL ) - break; - - *(void **)the_thread->Wait.return_argument = the_segment; - the_region->number_of_used_blocks += 1; - _Thread_queue_Extract( &the_region->Wait_queue, the_thread ); - the_thread->Wait.return_code = RTEMS_SUCCESSFUL; - } - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/c/src/exec/rtems/src/regionmp.c b/c/src/exec/rtems/src/regionmp.c deleted file mode 100644 index 558ae1639a..0000000000 --- a/c/src/exec/rtems/src/regionmp.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - * Multiprocessing Support for the Region Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Region_MP_Send_process_packet - * - */ - -void _Region_MP_Send_process_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - Objects_Name name, - Objects_Id proxy_id -) -{ - Region_MP_Packet *the_packet; - unsigned32 node; - - switch ( operation ) { - - case REGION_MP_ANNOUNCE_CREATE: - case REGION_MP_ANNOUNCE_DELETE: - case REGION_MP_EXTRACT_PROXY: - - the_packet = _Region_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_REGION; - the_packet->Prefix.length = sizeof ( Region_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Region_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = region_id; - the_packet->name = name; - the_packet->proxy_id = proxy_id; - - if ( operation == REGION_MP_EXTRACT_PROXY ) - node = rtems_get_node( region_id ); - else - node = MPCI_ALL_NODES; - - _MPCI_Send_process_packet( node, &the_packet->Prefix ); - break; - - case REGION_MP_GET_SEGMENT_REQUEST: - case REGION_MP_GET_SEGMENT_RESPONSE: - case REGION_MP_RETURN_SEGMENT_REQUEST: - case REGION_MP_RETURN_SEGMENT_RESPONSE: - break; - } -} - -/*PAGE - * - * _Region_MP_Send_request_packet - * - */ - -rtems_status_code _Region_MP_Send_request_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - void *segment, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout -) -{ - Region_MP_Packet *the_packet; - - switch ( operation ) { - - case REGION_MP_GET_SEGMENT_REQUEST: - case REGION_MP_RETURN_SEGMENT_REQUEST: - - the_packet = _Region_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_REGION; - the_packet->Prefix.length = sizeof ( Region_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Region_MP_Packet ); - if ( ! _Options_Is_no_wait(option_set)) - the_packet->Prefix.timeout = timeout; - - the_packet->operation = operation; - the_packet->Prefix.id = region_id; - the_packet->segment = segment; - the_packet->size = size; - the_packet->option_set = option_set; - - return _MPCI_Send_request_packet( - rtems_get_node( region_id ), - &the_packet->Prefix, - STATES_READY /* Not used */ - ); - break; - - case REGION_MP_ANNOUNCE_CREATE: - case REGION_MP_ANNOUNCE_DELETE: - case REGION_MP_EXTRACT_PROXY: - case REGION_MP_GET_SEGMENT_RESPONSE: - case REGION_MP_RETURN_SEGMENT_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_INTERNAL_ERROR; -} - -/*PAGE - * - * _Region_MP_Send_response_packet - * - */ - -void _Region_MP_Send_response_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - Thread_Control *the_thread -) -{ - Region_MP_Packet *the_packet; - - switch ( operation ) { - - case REGION_MP_GET_SEGMENT_RESPONSE: - case REGION_MP_RETURN_SEGMENT_RESPONSE: - - the_packet = ( Region_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case REGION_MP_ANNOUNCE_CREATE: - case REGION_MP_ANNOUNCE_DELETE: - case REGION_MP_EXTRACT_PROXY: - case REGION_MP_GET_SEGMENT_REQUEST: - case REGION_MP_RETURN_SEGMENT_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Region_MP_Process_packet - * - */ - -void _Region_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Region_MP_Packet *the_packet; - Thread_Control *the_thread; - boolean ignored; - - the_packet = (Region_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case REGION_MP_ANNOUNCE_CREATE: - - ignored = _Objects_MP_Open( - &_Region_Information, - the_packet->name, - the_packet->Prefix.id, - TRUE - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case REGION_MP_ANNOUNCE_DELETE: - - _Objects_MP_Close( &_Region_Information, the_packet->Prefix.id ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case REGION_MP_EXTRACT_PROXY: - - the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id ); - - if ( ! _Thread_Is_null( the_thread ) ) - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case REGION_MP_GET_SEGMENT_REQUEST: - - the_packet->Prefix.return_code = rtems_region_get_segment( - the_packet->Prefix.id, - the_packet->size, - the_packet->option_set, - the_packet->Prefix.timeout, - &the_packet->segment - ); - - _Region_MP_Send_response_packet( - REGION_MP_GET_SEGMENT_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case REGION_MP_GET_SEGMENT_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - *(void **)the_thread->Wait.return_argument = the_packet->segment; - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case REGION_MP_RETURN_SEGMENT_REQUEST: - - the_packet->Prefix.return_code = rtems_region_return_segment( - the_packet->Prefix.id, - the_packet->segment - ); - - _Region_MP_Send_response_packet( - REGION_MP_RETURN_SEGMENT_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case REGION_MP_RETURN_SEGMENT_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - } -} - -/*PAGE - * - * _Region_MP_Send_object_was_deleted - * - * This routine is not needed by the Region since a region - * cannot be deleted when segments are in use. - * - */ - -/*PAGE - * - * _Region_MP_Send_extract_proxy - * - */ - -void _Region_MP_Send_extract_proxy ( - Thread_Control *the_thread -) -{ - _Region_MP_Send_process_packet( - REGION_MP_EXTRACT_PROXY, - the_thread->Wait.id, - (Objects_Name) 0, - the_thread->Object.id - ); -} - -/*PAGE - * - * _Region_MP_Get_packet - * - */ - -Region_MP_Packet *_Region_MP_Get_packet ( void ) -{ - return ( (Region_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/c/src/exec/rtems/src/rtclock.c b/c/src/exec/rtems/src/rtclock.c deleted file mode 100644 index f82baa6337..0000000000 --- a/c/src/exec/rtems/src/rtclock.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Clock Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * rtems_clock_get - * - * This directive returns the current date and time. If the time has - * not been set by a tm_set then an error is returned. - * - * Input parameters: - * option - which value to return - * time_buffer - pointer to output buffer (a time and date structure - * or an interval) - * - * Output parameters: - * time_buffer - output filled in - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_clock_get( - rtems_clock_get_options option, - void *time_buffer -) -{ - ISR_Level level; - rtems_interval tmp; - - switch ( option ) { - case RTEMS_CLOCK_GET_TOD: - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - *(rtems_time_of_day *)time_buffer = _TOD_Current; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH: - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - *(rtems_interval *)time_buffer = _TOD_Seconds_since_epoch; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_TICKS_SINCE_BOOT: - *(rtems_interval *)time_buffer = _TOD_Ticks_since_boot; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_TICKS_PER_SECOND: - *(rtems_interval *)time_buffer = _TOD_Ticks_per_second; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_TIME_VALUE: - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - _ISR_Disable( level ); - ((rtems_clock_time_value *)time_buffer)->seconds = - _TOD_Seconds_since_epoch; - tmp = _TOD_Current.ticks; - _ISR_Enable( level ); - - tmp *= _Configuration_Table->microseconds_per_tick; - ((rtems_clock_time_value *)time_buffer)->microseconds = tmp; - - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_SUCCESSFUL ); /* should never get here */ - -} - -/*PAGE - * - * rtems_clock_set - * - * This directive sets the date and time for this node. - * - * Input parameters: - * time_buffer - pointer to the time and date structure - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_clock_set( - rtems_time_of_day *time_buffer -) -{ - rtems_status_code local_result; - rtems_interval seconds; - - local_result = _TOD_Validate( time_buffer ); - if ( rtems_is_status_successful( local_result ) ) { - seconds = _TOD_To_seconds( time_buffer ); - _Thread_Disable_dispatch(); - _TOD_Set( time_buffer, seconds ); - _Thread_Enable_dispatch(); - - } - return( local_result ); -} - -/*PAGE - * - * rtems_clock_tick - * - * This directive notifies the executve that a tick has occurred. - * When the tick occurs the time manager updates and maintains - * the calendar time, timeslicing, and any timeout delays. - * - * Input parameters: NONE - * - * Output parameters: - * RTEMS_SUCCESSFUL - always succeeds - * - * NOTE: This routine only works for leap-years through 2099. - */ - -rtems_status_code rtems_clock_tick( void ) -{ - _TOD_Tickle_ticks(); - - _Watchdog_Tickle_ticks(); - - _Thread_Tickle_timeslice(); - - if ( _Thread_Is_context_switch_necessary() && - _Thread_Is_dispatching_enabled() ) - _Thread_Dispatch(); - - return( RTEMS_SUCCESSFUL ); -} diff --git a/c/src/exec/rtems/src/rtemstimer.c b/c/src/exec/rtems/src/rtemstimer.c deleted file mode 100644 index 076091bee4..0000000000 --- a/c/src/exec/rtems/src/rtemstimer.c +++ /dev/null @@ -1,343 +0,0 @@ -/* - * Timer Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Timer_Manager_initialization - * - * This routine initializes all timer manager related data structures. - * - * Input parameters: - * maximum_timers - number of timers to initialize - * - * Output parameters: NONE - */ - -void _Timer_Manager_initialization( - unsigned32 maximum_timers -) -{ - _Objects_Initialize_information( - &_Timer_Information, - FALSE, - maximum_timers, - sizeof( Timer_Control ) - ); -} - -/*PAGE - * - * rtems_timer_create - * - * This directive creates a timer and performs some initialization. - * - * Input parameters: - * name - timer name - * id - pointer to timer id - * - * Output parameters: - * id - timer id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_create( - Objects_Name name, - Objects_Id *id -) -{ - Timer_Control *the_timer; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_timer = _Timer_Allocate(); - - if ( !the_timer ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_timer->the_class = TIMER_DORMANT; - - _Objects_Open( &_Timer_Information, &the_timer->Object, name ); - - *id = the_timer->Object.id; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_timer_ident - * - * This directive returns the system ID associated with - * the timer name. - * - * Input parameters: - * name - user defined message queue name - * id - pointer to timer id - * - * Output parameters: - * *id - message queue id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_ident( - Objects_Name name, - Objects_Id *id -) -{ - return _Objects_Name_to_id( - &_Timer_Information, - name, - RTEMS_SEARCH_LOCAL_NODE, - id - ); -} - -/*PAGE - * - * rtems_timer_cancel - * - * This directive allows a thread to cancel a timer. - * - * Input parameters: - * id - timer id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_cancel( - Objects_Id id -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( !_Timer_Is_dormant_class( the_timer->the_class ) ) { - (void) _Watchdog_Remove( &the_timer->Ticker ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INCORRECT_STATE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_delete - * - * This directive allows a thread to delete a timer. - * - * Input parameters: - * id - timer id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_delete( - Objects_Id id -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - _Objects_Close( &_Timer_Information, &the_timer->Object ); - (void) _Watchdog_Remove( &the_timer->Ticker ); - _Timer_Free( the_timer ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_fire_after - * - * This directive allows a thread to start a timer. - * - * Input parameters: - * id - timer id - * ticks - interval until routine is fired - * routine - routine to schedule - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_fire_after( - Objects_Id id, - rtems_interval ticks, - Timer_Service routine, - void *user_data -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - if ( ticks == 0 ) - return( RTEMS_INVALID_NUMBER ); - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - (void) _Watchdog_Remove( &the_timer->Ticker ); - the_timer->the_class = TIMER_INTERVAL; - _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); - _Watchdog_Insert_ticks( &the_timer->Ticker, - ticks, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_fire_when - * - * This directive allows a thread to start a timer. - * - * Input parameters: - * id - timer id - * wall_time - time of day to fire timer - * routine - routine to schedule - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_fire_when( - Objects_Id id, - rtems_time_of_day *wall_time, - Timer_Service routine, - void *user_data -) -{ - Timer_Control *the_timer; - Objects_Locations location; - rtems_status_code validate_status; - rtems_interval seconds; - - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - validate_status = _TOD_Validate( wall_time ); - if ( !rtems_is_status_successful( validate_status ) ) - return( validate_status ); - - seconds = _TOD_To_seconds( wall_time ); - if ( seconds <= _TOD_Seconds_since_epoch ) - return( RTEMS_INVALID_CLOCK ); - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - (void) _Watchdog_Remove( &the_timer->Ticker ); - the_timer->the_class = TIMER_TIME_OF_DAY; - _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); - _Watchdog_Insert_seconds( &the_timer->Ticker, - seconds - _TOD_Seconds_since_epoch, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_reset - * - * This directive allows a thread to reset a timer. - * - * Input parameters: - * id - timer id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_reset( - Objects_Id id -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( _Timer_Is_interval_class( the_timer->the_class ) ) { - _Watchdog_Reset( &the_timer->Ticker ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_NOT_DEFINED ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/c/src/exec/rtems/src/sem.c b/c/src/exec/rtems/src/sem.c deleted file mode 100644 index 19410c62f1..0000000000 --- a/c/src/exec/rtems/src/sem.c +++ /dev/null @@ -1,483 +0,0 @@ -/* - * Semaphore Manager - * - * DESCRIPTION: - * - * This package is the implementation of the Semaphore Manager. - * This manager utilizes standard Dijkstra counting semaphores to provide - * synchronization and mutual exclusion capabilities. - * - * Directives provided are: - * - * + create a semaphore - * + get an ID of a semaphore - * + delete a semaphore - * + acquire a semaphore - * + release a semaphore - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Semaphore_Manager_initialization - * - * This routine initializes all semaphore manager related data structures. - * - * Input parameters: - * maximum_semaphores - maximum configured semaphores - * - * Output parameters: NONE - */ - -void _Semaphore_Manager_initialization( - unsigned32 maximum_semaphores -) -{ - _Objects_Initialize_information( - &_Semaphore_Information, - TRUE, - maximum_semaphores, - sizeof( Semaphore_Control ) - ); -} - -/*PAGE - * - * rtems_semaphore_create - * - * This directive creates a semaphore and sets the initial value based - * on the given count. A semaphore id is returned. - * - * Input parameters: - * name - user defined semaphore name - * count - initial count of semaphore - * attribute_set - semaphore attributes - * id - pointer to semaphore id - * - * Output parameters: - * id - semaphore id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_semaphore_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - register Semaphore_Control *the_semaphore; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - if ( _Attributes_Is_global( attribute_set ) ) { - - if ( !_Configuration_Is_multiprocessing() ) - return( RTEMS_MP_NOT_CONFIGURED ); - - if ( _Attributes_Is_inherit_priority( attribute_set ) ) - return( RTEMS_NOT_DEFINED ); - - } else if ( _Attributes_Is_inherit_priority( attribute_set ) ) { - - if ( ! ( _Attributes_Is_binary_semaphore( attribute_set ) && - _Attributes_Is_priority( attribute_set ) ) ) - return( RTEMS_NOT_DEFINED ); - - } - - if ( _Attributes_Is_binary_semaphore( attribute_set ) && ( count > 1 ) ) - return( RTEMS_INVALID_NUMBER ); - - _Thread_Disable_dispatch(); /* prevents deletion */ - - the_semaphore = _Semaphore_Allocate(); - - if ( !the_semaphore ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - if ( _Attributes_Is_global( attribute_set ) && - !( _Objects_MP_Open( &_Semaphore_Information, name, - the_semaphore->Object.id, FALSE ) ) ) { - _Semaphore_Free( the_semaphore ); - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_semaphore->attribute_set = attribute_set; - the_semaphore->count = count; - - if ( _Attributes_Is_binary_semaphore( attribute_set ) && count == 0 ) { - the_semaphore->nest_count = 1; - the_semaphore->holder = _Thread_Executing; - the_semaphore->holder_id = _Thread_Executing->Object.id; - _Thread_Executing->resource_count++; - } else { - the_semaphore->nest_count = 0; - the_semaphore->holder = NULL; - the_semaphore->holder_id = 0; - } - - _Thread_queue_Initialize( &the_semaphore->Wait_queue, - attribute_set, STATES_WAITING_FOR_SEMAPHORE ); - - _Objects_Open( &_Semaphore_Information, &the_semaphore->Object, name ); - - *id = the_semaphore->Object.id; - - if ( _Attributes_Is_global( attribute_set ) ) - _Semaphore_MP_Send_process_packet( - SEMAPHORE_MP_ANNOUNCE_CREATE, - the_semaphore->Object.id, - name, - 0 /* Not used */ - ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_semaphore_ident - * - * This directive returns the system ID associated with - * the semaphore name. - * - * Input parameters: - * name - user defined semaphore name - * node - node(s) to be searched - * id - pointer to semaphore id - * - * Output parameters: - * *id - semaphore id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_semaphore_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( _Objects_Name_to_id( &_Semaphore_Information, name, node, id ) ); -} - -/*PAGE - * - * rtems_semaphore_delete - * - * This directive allows a thread to delete a semaphore specified by - * the semaphore id. The semaphore is freed back to the inactive - * semaphore chain. - * - * Input parameters: - * id - semaphore id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_semaphore_delete( - Objects_Id id -) -{ - register Semaphore_Control *the_semaphore; - Objects_Locations location; - - the_semaphore = _Semaphore_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set) && - ( the_semaphore->count == 0 ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_RESOURCE_IN_USE ); - } - - _Objects_Close( &_Semaphore_Information, &the_semaphore->Object ); - - _Thread_queue_Flush( - &the_semaphore->Wait_queue, - _Semaphore_MP_Send_object_was_deleted - ); - - _Semaphore_Free( the_semaphore ); - - if ( _Attributes_Is_global( the_semaphore->attribute_set ) ) { - - _Objects_MP_Close( &_Semaphore_Information, the_semaphore->Object.id ); - - _Semaphore_MP_Send_process_packet( - SEMAPHORE_MP_ANNOUNCE_DELETE, - the_semaphore->Object.id, - 0, /* Not used */ - 0 /* Not used */ - ); - } - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_semaphore_obtain - * - * This directive allows a thread to acquire a semaphore. - * - * Input parameters: - * id - semaphore id - * option_set - wait option - * timeout - number of ticks to wait (0 means wait forever) - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_semaphore_obtain( - Objects_Id id, - unsigned32 option_set, - rtems_interval timeout -) -{ - register Semaphore_Control *the_semaphore; - Objects_Locations location; - - the_semaphore = _Semaphore_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return _Semaphore_MP_Send_request_packet( - SEMAPHORE_MP_OBTAIN_REQUEST, - id, - option_set, - timeout - ); - case OBJECTS_LOCAL: - if ( !_Semaphore_Seize( the_semaphore, option_set ) ) { - if ( _Attributes_Is_inherit_priority( the_semaphore->attribute_set ) && - the_semaphore->holder->current_priority > - _Thread_Executing->current_priority ) { - _Thread_Change_priority( - the_semaphore->holder, _Thread_Executing->current_priority ); - } - _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout ); - } - _Thread_Enable_dispatch(); - return( _Thread_Executing->Wait.return_code ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_semaphore_release - * - * This directive allows a thread to release a semaphore. - * - * Input parameters: - * id - semaphore id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_semaphore_release( - Objects_Id id -) -{ - register Semaphore_Control *the_semaphore; - Objects_Locations location; - Thread_Control *the_thread; - - the_semaphore = _Semaphore_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return( - _Semaphore_MP_Send_request_packet( - SEMAPHORE_MP_RELEASE_REQUEST, - id, - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ) - ); - case OBJECTS_LOCAL: - if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set)) { - - if ( !_Objects_Are_ids_equal( - _Thread_Executing->Object.id, the_semaphore->holder_id ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_NOT_OWNER_OF_RESOURCE ); - } - - the_semaphore->nest_count--; - - if ( the_semaphore->nest_count != 0 ) { - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - _Thread_Executing->resource_count--; - the_semaphore->holder = NULL; - the_semaphore->holder_id = 0; - - /* - * Whether or not someone is waiting for the semaphore, an - * inherited priority must be lowered if this is the last - * semaphore (i.e. resource) this task has. - */ - - if ( _Attributes_Is_inherit_priority(the_semaphore->attribute_set) && - _Thread_Executing->resource_count == 0 && - _Thread_Executing->real_priority != - _Thread_Executing->current_priority ) { - _Thread_Change_priority( - _Thread_Executing, _Thread_Executing->real_priority ); - } - - } - - if ( (the_thread = _Thread_queue_Dequeue(&the_semaphore->Wait_queue)) ) { - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) { - the_thread->receive_packet->return_code = RTEMS_SUCCESSFUL; - - if ( _Attributes_Is_binary_semaphore(the_semaphore->attribute_set) ) { - the_semaphore->holder = NULL; - the_semaphore->holder_id = the_thread->Object.id; - the_semaphore->nest_count = 1; - } - - _Semaphore_MP_Send_response_packet( - SEMAPHORE_MP_OBTAIN_RESPONSE, - id, - the_thread - ); - } else { - - if ( _Attributes_Is_binary_semaphore(the_semaphore->attribute_set) ) { - the_semaphore->holder = the_thread; - the_semaphore->holder_id = the_thread->Object.id; - the_thread->resource_count++; - the_semaphore->nest_count = 1; - } - - /* - * No special action for priority inheritance because the_thread - * is guaranteed to be the highest priority thread waiting for - * the semaphore. - */ - } - } else - the_semaphore->count += 1; - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * _Semaphore_Seize - * - * This routine attempts to allocate a semaphore to the calling thread. - * - * Input parameters: - * the_semaphore - pointer to semaphore control block - * option_set - acquire semaphore options - * - * Output parameters: - * TRUE - if semaphore allocated - * FALSE - if semaphore NOT allocated - * - * INTERRUPT LATENCY: - * available - * wait - */ - -boolean _Semaphore_Seize( - Semaphore_Control *the_semaphore, - rtems_option option_set -) -{ - Thread_Control *executing; - ISR_Level level; - - executing = _Thread_Executing; - executing->Wait.return_code = RTEMS_SUCCESSFUL; - _ISR_Disable( level ); - if ( the_semaphore->count != 0 ) { - the_semaphore->count -= 1; - if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set ) ) { - the_semaphore->holder = executing; - the_semaphore->holder_id = executing->Object.id; - the_semaphore->nest_count = 1; - executing->resource_count++; - } - _ISR_Enable( level ); - return( TRUE ); - } - - if ( _Options_Is_no_wait( option_set ) ) { - _ISR_Enable( level ); - executing->Wait.return_code = RTEMS_UNSATISFIED; - return( TRUE ); - } - - if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set ) ) { - if ( _Objects_Are_ids_equal( - _Thread_Executing->Object.id, the_semaphore->holder_id ) ) { - the_semaphore->nest_count++; - _ISR_Enable( level ); - return( TRUE ); - } - } - - the_semaphore->Wait_queue.sync = TRUE; - executing->Wait.queue = &the_semaphore->Wait_queue; - executing->Wait.id = the_semaphore->Object.id; - executing->Wait.option_set = option_set; - _ISR_Enable( level ); - return( FALSE ); -} diff --git a/c/src/exec/rtems/src/semmp.c b/c/src/exec/rtems/src/semmp.c deleted file mode 100644 index d131d48150..0000000000 --- a/c/src/exec/rtems/src/semmp.c +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Multiprocessing Support for the Semaphore Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Semaphore_MP_Send_process_packet - * - */ - -void _Semaphore_MP_Send_process_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - Objects_Name name, - Objects_Id proxy_id -) -{ - Semaphore_MP_Packet *the_packet; - unsigned32 node; - - switch ( operation ) { - - case SEMAPHORE_MP_ANNOUNCE_CREATE: - case SEMAPHORE_MP_ANNOUNCE_DELETE: - case SEMAPHORE_MP_EXTRACT_PROXY: - - the_packet = _Semaphore_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_SEMAPHORE; - the_packet->Prefix.length = sizeof ( Semaphore_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Semaphore_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = semaphore_id; - the_packet->name = name; - the_packet->proxy_id = proxy_id; - - if ( operation == SEMAPHORE_MP_EXTRACT_PROXY ) - node = rtems_get_node( semaphore_id ); - else - node = MPCI_ALL_NODES; - - _MPCI_Send_process_packet( node, &the_packet->Prefix ); - break; - - case SEMAPHORE_MP_OBTAIN_REQUEST: - case SEMAPHORE_MP_OBTAIN_RESPONSE: - case SEMAPHORE_MP_RELEASE_REQUEST: - case SEMAPHORE_MP_RELEASE_RESPONSE: - break; - } -} - -/*PAGE - * - * _Semaphore_MP_Send_request_packet - * - */ - -rtems_status_code _Semaphore_MP_Send_request_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - rtems_option option_set, - rtems_interval timeout -) -{ - Semaphore_MP_Packet *the_packet; - - switch ( operation ) { - - case SEMAPHORE_MP_OBTAIN_REQUEST: - case SEMAPHORE_MP_RELEASE_REQUEST: - - the_packet = _Semaphore_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_SEMAPHORE; - the_packet->Prefix.length = sizeof ( Semaphore_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Semaphore_MP_Packet ); - if ( ! _Options_Is_no_wait(option_set)) - the_packet->Prefix.timeout = timeout; - - the_packet->operation = operation; - the_packet->Prefix.id = semaphore_id; - the_packet->option_set = option_set; - - return _MPCI_Send_request_packet( - rtems_get_node( semaphore_id ), - &the_packet->Prefix, - STATES_WAITING_FOR_SEMAPHORE - ); - break; - - case SEMAPHORE_MP_ANNOUNCE_CREATE: - case SEMAPHORE_MP_ANNOUNCE_DELETE: - case SEMAPHORE_MP_EXTRACT_PROXY: - case SEMAPHORE_MP_OBTAIN_RESPONSE: - case SEMAPHORE_MP_RELEASE_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _Semaphore_MP_Send_response_packet - * - */ - -void _Semaphore_MP_Send_response_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - Thread_Control *the_thread -) -{ - Semaphore_MP_Packet *the_packet; - - switch ( operation ) { - - case SEMAPHORE_MP_OBTAIN_RESPONSE: - case SEMAPHORE_MP_RELEASE_RESPONSE: - - the_packet = ( Semaphore_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case SEMAPHORE_MP_ANNOUNCE_CREATE: - case SEMAPHORE_MP_ANNOUNCE_DELETE: - case SEMAPHORE_MP_EXTRACT_PROXY: - case SEMAPHORE_MP_OBTAIN_REQUEST: - case SEMAPHORE_MP_RELEASE_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Semaphore_MP_Process_packet - * - */ - -void _Semaphore_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Semaphore_MP_Packet *the_packet; - Thread_Control *the_thread; - boolean ignored; - - the_packet = (Semaphore_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case SEMAPHORE_MP_ANNOUNCE_CREATE: - - ignored = _Objects_MP_Open( - &_Semaphore_Information, - the_packet->name, - the_packet->Prefix.id, - TRUE - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case SEMAPHORE_MP_ANNOUNCE_DELETE: - - _Objects_MP_Close( &_Semaphore_Information, the_packet->Prefix.id ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case SEMAPHORE_MP_EXTRACT_PROXY: - - the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id ); - - if ( ! _Thread_Is_null( the_thread ) ) - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case SEMAPHORE_MP_OBTAIN_REQUEST: - - the_packet->Prefix.return_code = rtems_semaphore_obtain( - the_packet->Prefix.id, - the_packet->option_set, - the_packet->Prefix.timeout - ); - - if ( ! _Status_Is_proxy_blocking( the_packet->Prefix.return_code ) ) - _Semaphore_MP_Send_response_packet( - SEMAPHORE_MP_OBTAIN_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case SEMAPHORE_MP_OBTAIN_RESPONSE: - case SEMAPHORE_MP_RELEASE_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case SEMAPHORE_MP_RELEASE_REQUEST: - - the_packet->Prefix.return_code = rtems_semaphore_release( - the_packet->Prefix.id - ); - - _Semaphore_MP_Send_response_packet( - SEMAPHORE_MP_RELEASE_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - } -} - -/*PAGE - * - * _Semaphore_MP_Send_object_was_deleted - * - */ - -void _Semaphore_MP_Send_object_was_deleted ( - Thread_Control *the_proxy -) -{ - the_proxy->receive_packet->return_code = RTEMS_OBJECT_WAS_DELETED; - - _Semaphore_MP_Send_response_packet( - SEMAPHORE_MP_OBTAIN_RESPONSE, - the_proxy->Wait.id, - the_proxy - ); - -} - -/*PAGE - * - * _Semaphore_MP_Send_extract_proxy - * - */ - -void _Semaphore_MP_Send_extract_proxy ( - Thread_Control *the_thread -) -{ - _Semaphore_MP_Send_process_packet( - SEMAPHORE_MP_EXTRACT_PROXY, - the_thread->Wait.id, - (Objects_Name) 0, - the_thread->Object.id - ); - -} - -/*PAGE - * - * _Semaphore_MP_Get_packet - * - */ - -Semaphore_MP_Packet *_Semaphore_MP_Get_packet ( void ) -{ - return ( (Semaphore_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/c/src/exec/rtems/src/signal.c b/c/src/exec/rtems/src/signal.c deleted file mode 100644 index 411df5d86c..0000000000 --- a/c/src/exec/rtems/src/signal.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Signal Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * rtems_signal_catch - * - * This directive allows a thread to specify what action to take when - * catching signals. - * - * Input parameters: - * handler - address of asynchronous signal routine (asr) - * ( NULL indicates asr is invalid ) - * mode_set - mode value for asr - * - * Output parameters: - * RTEMS_SUCCESSFUL - always succeeds - */ - -rtems_status_code rtems_signal_catch( - rtems_asr_entry handler, - rtems_mode mode_set -) -{ - Thread_Control *executing; - - executing = _Thread_Executing; - _Thread_Disable_dispatch(); /* cannot reschedule while */ - /* the thread is inconsistent */ - - if ( ! _ASR_Is_null_handler( handler ) ) { - executing->Signal.mode_set = mode_set; - executing->Signal.handler = handler; - } - else - _ASR_Initialize( &executing->Signal ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_signal_send - * - * This directive allows a thread to send signals to a thread. - * - * Input parameters: - * id - thread id - * signal_set - signal set - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_signal_send( - Objects_Id id, - rtems_signal_set signal_set -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return _Signal_MP_Send_request_packet( - SIGNAL_MP_SEND_REQUEST, - id, - signal_set - ); - case OBJECTS_LOCAL: - if ( ! _ASR_Is_null_handler( the_thread->Signal.handler ) ) { - if ( _Modes_Is_asr_disabled( the_thread->current_modes ) ) - _ASR_Post_signals( signal_set, &the_thread->Signal.signals_pending ); - else { - _ASR_Post_signals( signal_set, &the_thread->Signal.signals_posted ); - if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) - _ISR_Signals_to_thread_executing = TRUE; - } - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_NOT_DEFINED ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/c/src/exec/rtems/src/signalmp.c b/c/src/exec/rtems/src/signalmp.c deleted file mode 100644 index 4ac8123766..0000000000 --- a/c/src/exec/rtems/src/signalmp.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Multiprocessing Support for the Signal Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Signal_MP_Send_process_packet - * - * This subprogram is not needed since there are no process - * packets to be sent by this manager. - * - */ - -/*PAGE - * - * _Signal_MP_Send_request_packet - * - */ - -rtems_status_code _Signal_MP_Send_request_packet ( - Signal_MP_Remote_operations operation, - Objects_Id task_id, - rtems_signal_set signal_in -) -{ - Signal_MP_Packet *the_packet; - - switch ( operation ) { - - case SIGNAL_MP_SEND_REQUEST: - - the_packet = _Signal_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_SIGNAL; - the_packet->Prefix.length = sizeof ( Signal_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Signal_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = task_id; - the_packet->signal_in = signal_in; - - return _MPCI_Send_request_packet( - rtems_get_node( task_id ), - &the_packet->Prefix, - STATES_READY /* Not used */ - ); - break; - - case SIGNAL_MP_SEND_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_INTERNAL_ERROR; -} - -/*PAGE - * - * _Signal_MP_Send_response_packet - * - */ - -void _Signal_MP_Send_response_packet ( - Signal_MP_Remote_operations operation, - Thread_Control *the_thread -) -{ - Signal_MP_Packet *the_packet; - - switch ( operation ) { - - case SIGNAL_MP_SEND_RESPONSE: - - the_packet = ( Signal_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case SIGNAL_MP_SEND_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Signal_MP_Process_packet - * - */ - -void _Signal_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Signal_MP_Packet *the_packet; - Thread_Control *the_thread; - - the_packet = (Signal_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case SIGNAL_MP_SEND_REQUEST: - - the_packet->Prefix.return_code = rtems_signal_send( - the_packet->Prefix.id, - the_packet->signal_in - ); - - _Signal_MP_Send_response_packet( - SIGNAL_MP_SEND_RESPONSE, - _Thread_Executing - ); - break; - - case SIGNAL_MP_SEND_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - } -} - -/*PAGE - * - * _Signal_MP_Send_object_was_deleted - * - * This subprogram is not needed since there are no objects - * deleted by this manager. - * - */ - -/*PAGE - * - * _Signal_MP_Send_extract_proxy - * - * This subprogram is not needed since there are no objects - * deleted by this manager. - * - */ - -/*PAGE - * - * _Signal_MP_Get_packet - * - */ - -Signal_MP_Packet *_Signal_MP_Get_packet ( void ) -{ - return ( (Signal_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/c/src/exec/rtems/src/taskmp.c b/c/src/exec/rtems/src/taskmp.c deleted file mode 100644 index b938c60c53..0000000000 --- a/c/src/exec/rtems/src/taskmp.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Multiprocessing Support for the RTEMS Task Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _RTEMS_tasks_MP_Send_process_packet - * - */ - -void _RTEMS_tasks_MP_Send_process_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Objects_Id task_id, - Objects_Name name -) -{ - RTEMS_tasks_MP_Packet *the_packet; - - switch ( operation ) { - - case RTEMS_TASKS_MP_ANNOUNCE_CREATE: - case RTEMS_TASKS_MP_ANNOUNCE_DELETE: - - the_packet = _RTEMS_tasks_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_TASKS; - the_packet->Prefix.length = sizeof ( RTEMS_tasks_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( RTEMS_tasks_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = task_id; - the_packet->name = name; - - _MPCI_Send_process_packet( MPCI_ALL_NODES, &the_packet->Prefix ); - break; - - case RTEMS_TASKS_MP_SUSPEND_REQUEST: - case RTEMS_TASKS_MP_SUSPEND_RESPONSE: - case RTEMS_TASKS_MP_RESUME_REQUEST: - case RTEMS_TASKS_MP_RESUME_RESPONSE: - case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST: - case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE: - case RTEMS_TASKS_MP_GET_NOTE_REQUEST: - case RTEMS_TASKS_MP_GET_NOTE_RESPONSE: - case RTEMS_TASKS_MP_SET_NOTE_REQUEST: - case RTEMS_TASKS_MP_SET_NOTE_RESPONSE: - break; - } -} - -/*PAGE - * - * _RTEMS_tasks_MP_Send_request_packet - * - */ - -rtems_status_code _RTEMS_tasks_MP_Send_request_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Objects_Id task_id, - rtems_task_priority new_priority, - unsigned32 notepad, - unsigned32 note -) -{ - RTEMS_tasks_MP_Packet *the_packet; - - switch ( operation ) { - - case RTEMS_TASKS_MP_SUSPEND_REQUEST: - case RTEMS_TASKS_MP_RESUME_REQUEST: - case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST: - case RTEMS_TASKS_MP_GET_NOTE_REQUEST: - case RTEMS_TASKS_MP_SET_NOTE_REQUEST: - - the_packet = _RTEMS_tasks_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_TASKS; - the_packet->Prefix.length = sizeof ( RTEMS_tasks_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( RTEMS_tasks_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = task_id; - the_packet->the_priority = new_priority; - the_packet->notepad = notepad; - the_packet->note = note; - - return _MPCI_Send_request_packet( - rtems_get_node( task_id ), - &the_packet->Prefix, - STATES_READY /* Not used */ - ); - break; - - case RTEMS_TASKS_MP_ANNOUNCE_CREATE: - case RTEMS_TASKS_MP_ANNOUNCE_DELETE: - case RTEMS_TASKS_MP_SUSPEND_RESPONSE: - case RTEMS_TASKS_MP_RESUME_RESPONSE: - case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE: - case RTEMS_TASKS_MP_GET_NOTE_RESPONSE: - case RTEMS_TASKS_MP_SET_NOTE_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _RTEMS_tasks_MP_Send_response_packet - * - */ - -void _RTEMS_tasks_MP_Send_response_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Thread_Control *the_thread -) -{ - RTEMS_tasks_MP_Packet *the_packet; - - switch ( operation ) { - - case RTEMS_TASKS_MP_SUSPEND_RESPONSE: - case RTEMS_TASKS_MP_RESUME_RESPONSE: - case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE: - case RTEMS_TASKS_MP_GET_NOTE_RESPONSE: - case RTEMS_TASKS_MP_SET_NOTE_RESPONSE: - - the_packet = (RTEMS_tasks_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case RTEMS_TASKS_MP_ANNOUNCE_CREATE: - case RTEMS_TASKS_MP_ANNOUNCE_DELETE: - case RTEMS_TASKS_MP_SUSPEND_REQUEST: - case RTEMS_TASKS_MP_RESUME_REQUEST: - case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST: - case RTEMS_TASKS_MP_GET_NOTE_REQUEST: - case RTEMS_TASKS_MP_SET_NOTE_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _RTEMS_tasks_MP_Process_packet - * - */ - -void _RTEMS_tasks_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - RTEMS_tasks_MP_Packet *the_packet; - Thread_Control *the_thread; - boolean ignored; - - the_packet = (RTEMS_tasks_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case RTEMS_TASKS_MP_ANNOUNCE_CREATE: - - ignored = _Objects_MP_Open( - &_Thread_Information, - the_packet->name, - the_packet->Prefix.id, - TRUE - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case RTEMS_TASKS_MP_ANNOUNCE_DELETE: - - _Objects_MP_Close( &_Thread_Information, the_packet->Prefix.id ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case RTEMS_TASKS_MP_SUSPEND_REQUEST: - - the_packet->Prefix.return_code = rtems_task_suspend( - the_packet->Prefix.id - ); - - _RTEMS_tasks_MP_Send_response_packet( - RTEMS_TASKS_MP_SUSPEND_RESPONSE, - _Thread_Executing - ); - break; - - case RTEMS_TASKS_MP_SUSPEND_RESPONSE: - case RTEMS_TASKS_MP_RESUME_RESPONSE: - case RTEMS_TASKS_MP_SET_NOTE_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case RTEMS_TASKS_MP_RESUME_REQUEST: - - the_packet->Prefix.return_code = rtems_task_resume( - the_packet->Prefix.id - ); - - _RTEMS_tasks_MP_Send_response_packet( - RTEMS_TASKS_MP_RESUME_RESPONSE, - _Thread_Executing - ); - break; - - case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST: - - the_packet->Prefix.return_code = rtems_task_set_priority( - the_packet->Prefix.id, - the_packet->the_priority, - &the_packet->the_priority - ); - - _RTEMS_tasks_MP_Send_response_packet( - RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE, - _Thread_Executing - ); - break; - - case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - *(rtems_task_priority *)the_thread->Wait.return_argument = - the_packet->the_priority; - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case RTEMS_TASKS_MP_GET_NOTE_REQUEST: - - the_packet->Prefix.return_code = rtems_task_get_note( - the_packet->Prefix.id, - the_packet->notepad, - &the_packet->note - ); - - _RTEMS_tasks_MP_Send_response_packet( - RTEMS_TASKS_MP_GET_NOTE_RESPONSE, - _Thread_Executing - ); - break; - - case RTEMS_TASKS_MP_GET_NOTE_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - *(unsigned32 *)the_thread->Wait.return_argument = the_packet->note; - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case RTEMS_TASKS_MP_SET_NOTE_REQUEST: - - the_packet->Prefix.return_code = rtems_task_set_note( - the_packet->Prefix.id, - the_packet->notepad, - the_packet->note - ); - - _RTEMS_tasks_MP_Send_response_packet( - RTEMS_TASKS_MP_SET_NOTE_RESPONSE, - _Thread_Executing - ); - break; - } -} - -/*PAGE - * - * _RTEMS_tasks_MP_Send_object_was_deleted - * - * This routine is not neededby the Tasks since a task - * cannot be globally deleted. - * - */ - -/*PAGE - * - * _RTEMS_tasks_MP_Send_extract_proxy - * - * This routine is not neededby the Tasks since a task - * cannot be globally deleted. - * - */ - -/*PAGE - * - * _RTEMS_tasks_MP_Get_packet - * - */ - -RTEMS_tasks_MP_Packet *_RTEMS_tasks_MP_Get_packet ( void ) -{ - return ( (RTEMS_tasks_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/c/src/exec/rtems/src/tasks.c b/c/src/exec/rtems/src/tasks.c deleted file mode 100644 index edba524d94..0000000000 --- a/c/src/exec/rtems/src/tasks.c +++ /dev/null @@ -1,816 +0,0 @@ -/* - * RTEMS Task Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * rtems_task_create - * - * This directive creates a thread by allocating and initializing a - * thread control block and a stack. The newly created thread is - * placed in the dormant state. - * - * Input parameters: - * name - user defined thread name - * initial_priority - thread priority - * stack_size - stack size in bytes - * initial_modes - initial thread mode - * attribute_set - thread attributes - * id - pointer to thread id - * - * Output parameters: - * id - thread id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_create( - Objects_Name name, - rtems_task_priority initial_priority, - unsigned32 stack_size, - rtems_mode initial_modes, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - register Thread_Control *the_thread; - unsigned32 actual_stack_size; - unsigned32 memory_needed; - void *memory; - rtems_attribute the_attribute_set; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - -#if 0 - if ( !_Stack_Is_enough( stack_size ) ) - return( RTEMS_INVALID_SIZE ); -#endif - - if ( !_Stack_Is_enough( stack_size ) ) - actual_stack_size = RTEMS_MINIMUM_STACK_SIZE; - else - actual_stack_size = stack_size; - - if ( !_Priority_Is_valid( initial_priority ) ) - return( RTEMS_INVALID_PRIORITY ); - - /* - * Fix the attribute set to match the attributes which - * this processor (1) requires and (2) is able to support. - * First add in the required flags for attribute_set - * Typically this might include FP if the platform - * or application required all tasks to be fp aware. - * Then turn off the requested bits which are not supported. - */ - - the_attribute_set = _Attributes_Set( attribute_set, ATTRIBUTES_REQUIRED ); - the_attribute_set = - _Attributes_Clear( the_attribute_set, ATTRIBUTES_NOT_SUPPORTED ); - - if ( _Attributes_Is_global( the_attribute_set ) && - !_Configuration_Is_multiprocessing() ) - return( RTEMS_MP_NOT_CONFIGURED ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_thread = _RTEMS_tasks_Allocate(); - - if ( !the_thread ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - actual_stack_size = _Stack_Adjust_size( actual_stack_size ); - memory_needed = actual_stack_size; - - if ( _Attributes_Is_floating_point( the_attribute_set ) ) - memory_needed += CONTEXT_FP_SIZE; - - memory = _Workspace_Allocate( memory_needed ); - - if ( !memory ) { - _RTEMS_tasks_Free( the_thread ); - _Thread_Enable_dispatch(); - return( RTEMS_UNSATISFIED ); - } - - /* - * Stack is put in the lower address regions of the allocated memory. - * The optional floating point context area goes into the higher part - * of the allocated memory. - */ - - _Stack_Initialize( - &the_thread->Start.Initial_stack, memory, actual_stack_size ); - - if ( _Attributes_Is_floating_point( the_attribute_set ) ) - the_thread->fp_context = _Context_Fp_start( memory, actual_stack_size ); - else - the_thread->fp_context = NULL; - - the_thread->Start.fp_context = the_thread->fp_context; - - if ( _Attributes_Is_global( the_attribute_set ) && - !( _Objects_MP_Open( &_Thread_Information, name, - the_thread->Object.id, FALSE ) ) ) { - _RTEMS_tasks_Free( the_thread ); - (void) _Workspace_Free( memory ); - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_thread->name = name; - the_thread->attribute_set = the_attribute_set; - the_thread->current_state = STATES_DORMANT; - the_thread->current_modes = initial_modes; - the_thread->pending_events = EVENT_SETS_NONE_PENDING; - the_thread->resource_count = 0; - the_thread->real_priority = initial_priority; - the_thread->Start.initial_priority = initial_priority; - the_thread->Start.initial_modes = initial_modes; - - _Thread_Set_priority( the_thread, initial_priority ); - - _ASR_Initialize( &the_thread->Signal ); - - _Objects_Open( &_Thread_Information, &the_thread->Object, name ); - - *id = the_thread->Object.id; - - _User_extensions_Task_create( the_thread ); - - if ( _Attributes_Is_global( the_attribute_set ) ) - _RTEMS_tasks_MP_Send_process_packet( - RTEMS_TASKS_MP_ANNOUNCE_CREATE, - the_thread->Object.id, - name - ); - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_task_ident - * - * This directive returns the system ID associated with - * the thread name. - * - * Input parameters: - * name - user defined thread name - * node - node(s) to be searched - * id - pointer to thread id - * - * Output parameters: - * *id - thread id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - if ( name != OBJECTS_ID_OF_SELF ) - return( _Objects_Name_to_id( &_Thread_Information, name, node, id ) ); - - *id = _Thread_Executing->Object.id; - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_task_start - * - * This directive readies the thread identified by the "id" - * based on its current priorty, to await execution. A thread - * can be started only from the dormant state. - * - * Input parameters: - * id - thread id - * entry_point - start execution address of thread - * argument - thread argument - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_start( - Objects_Id id, - rtems_task_entry entry_point, - unsigned32 argument -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - if ( entry_point == NULL ) - return( RTEMS_INVALID_ADDRESS ); - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - if ( _States_Is_dormant( the_thread->current_state ) ) { - - the_thread->Start.entry_point = entry_point; - the_thread->Start.initial_argument = argument; - - _Thread_Load_environment( the_thread ); - - _Thread_Ready( the_thread ); - - _User_extensions_Task_start( the_thread ); - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INCORRECT_STATE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_restart - * - * This directive readies the specified thread. It restores - * the thread environment to the original values established - * at thread creation and start time. A thread can be restarted - * from any state except the dormant state. - * - * Input parameters: - * id - thread id - * argument - thread argument - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_restart( - Objects_Id id, - unsigned32 argument -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - if ( !_States_Is_dormant( the_thread->current_state ) ) { - - _Thread_Set_transient( the_thread ); - _ASR_Initialize( &the_thread->Signal ); - the_thread->pending_events = EVENT_SETS_NONE_PENDING; - the_thread->resource_count = 0; - the_thread->current_modes = the_thread->Start.initial_modes; - the_thread->Start.initial_argument = argument; - - _RTEMS_tasks_Cancel_wait( the_thread ); - - if ( the_thread->current_priority != - the_thread->Start.initial_priority ) { - the_thread->real_priority = the_thread->Start.initial_priority; - _Thread_Set_priority( the_thread, - the_thread->Start.initial_priority ); - } - - _Thread_Load_environment( the_thread ); - - _Thread_Ready( the_thread ); - - _User_extensions_Task_restart( the_thread ); - - if ( _Thread_Is_executing ( the_thread ) ) - _Thread_Restart_self(); - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INCORRECT_STATE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_delete - * - * This directive allows a thread to delete itself or the thread - * identified in the id field. The executive halts execution - * of the thread and frees the thread control block. - * - * Input parameters: - * id - thread id - * - * Output parameters: - * nothing - if id is the requesting thread (always succeeds) - * RTEMS_SUCCESSFUL - if successful and id is - * not the requesting thread - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_delete( - Objects_Id id -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - _Objects_Close( &_Thread_Information, &the_thread->Object ); - - _Thread_Set_state( the_thread, STATES_TRANSIENT ); - - _User_extensions_Task_delete( the_thread ); - -#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE ) - if ( _Thread_Is_allocated_fp( the_thread ) ) - _Thread_Deallocate_fp(); -#endif - the_thread->fp_context = NULL; - - _RTEMS_tasks_Cancel_wait( the_thread ); - - (void) _Workspace_Free( the_thread->Start.Initial_stack.area ); - - _RTEMS_tasks_Free( the_thread ); - - if ( _Attributes_Is_global( the_thread->attribute_set ) ) { - - _Objects_MP_Close( &_Thread_Information, the_thread->Object.id ); - - _RTEMS_tasks_MP_Send_process_packet( - RTEMS_TASKS_MP_ANNOUNCE_DELETE, - the_thread->Object.id, - 0 /* Not used */ - ); - } - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_suspend - * - * This directive will place the specified thread in the "suspended" - * state. Note that the suspended state can be in addition to - * other waiting states. - * - * Input parameters: - * id - thread id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_suspend( - Objects_Id id -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return( - _RTEMS_tasks_MP_Send_request_packet( - RTEMS_TASKS_MP_SUSPEND_REQUEST, - id, - 0, /* Not used */ - 0, /* Not used */ - 0 /* Not used */ - ) - ); - case OBJECTS_LOCAL: - if ( !_States_Is_suspended( the_thread->current_state ) ) { - _Thread_Set_state( the_thread, STATES_SUSPENDED ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_ALREADY_SUSPENDED ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_resume - * - * This directive will remove the specified thread - * from the suspended state. - * - * Input parameters: - * id - thread id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_resume( - Objects_Id id -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return( - _RTEMS_tasks_MP_Send_request_packet( - RTEMS_TASKS_MP_RESUME_REQUEST, - id, - 0, /* Not used */ - 0, /* Not used */ - 0 /* Not used */ - ) - ); - case OBJECTS_LOCAL: - if ( _States_Is_suspended( the_thread->current_state ) ) { - _Thread_Resume( the_thread ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INCORRECT_STATE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_set_priority - * - * This directive changes the priority of the specified thread. - * The specified thread can be any thread in the system including - * the requesting thread. - * - * Input parameters: - * id - thread id (0 indicates requesting thread) - * new_priority - thread priority (0 indicates current priority) - * old_priority - pointer to previous priority - * - * Output parameters: - * old_priority - previous priority - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_set_priority( - Objects_Id id, - rtems_task_priority new_priority, - rtems_task_priority *old_priority -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - if ( new_priority != RTEMS_CURRENT_PRIORITY && - !_Priority_Is_valid( new_priority ) ) - return( RTEMS_INVALID_PRIORITY ); - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = old_priority; - return( - _RTEMS_tasks_MP_Send_request_packet( - RTEMS_TASKS_MP_SET_PRIORITY_REQUEST, - id, - new_priority, - 0, /* Not used */ - 0 /* Not used */ - ) - ); - case OBJECTS_LOCAL: - *old_priority = the_thread->current_priority; - if ( new_priority != RTEMS_CURRENT_PRIORITY ) { - the_thread->real_priority = new_priority; - if ( the_thread->resource_count == 0 || - the_thread->current_priority > new_priority ) - _Thread_Change_priority( the_thread, new_priority ); - } - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_mode - * - * This directive enables and disables several modes of - * execution for the requesting thread. - * - * Input parameters: - * mode_set - new mode - * mask - mask - * previous_mode_set - address of previous mode set - * - * Output: - * *previous_mode_set - previous mode set - * always returns RTEMS_SUCCESSFUL - */ - -rtems_status_code rtems_task_mode( - rtems_mode mode_set, - rtems_mode mask, - rtems_mode *previous_mode_set -) -{ - if ( _Thread_Change_mode( mode_set, mask, previous_mode_set ) ) - _Thread_Dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_task_get_note - * - * This directive obtains the note from the specified notepad - * of the specified thread. - * - * Input parameters: - * id - thread id - * notepad - notepad number - * note - pointer to note - * - * Output parameters: - * note - filled in if successful - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_get_note( - Objects_Id id, - unsigned32 notepad, - unsigned32 *note -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - /* - * NOTE: There is no check for < RTEMS_NOTEPAD_FIRST because that would - * be checking an unsigned number for being negative. - */ - - if ( notepad > RTEMS_NOTEPAD_LAST ) - return( RTEMS_INVALID_NUMBER ); - - /* - * Optimize the most likely case to avoid the Thread_Dispatch. - */ - - if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || - _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { - *note = _Thread_Executing->Notepads[ notepad ]; - return( RTEMS_SUCCESSFUL ); - } - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = note; - - return _RTEMS_tasks_MP_Send_request_packet( - RTEMS_TASKS_MP_GET_NOTE_REQUEST, - id, - 0, /* Not used */ - notepad, - 0 /* Not used */ - ); - case OBJECTS_LOCAL: - *note= the_thread->Notepads[ notepad ]; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_set_note - * - * This directive sets the specified notepad contents to the given - * note. - * - * Input parameters: - * id - thread id - * notepad - notepad number - * note - note value - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_set_note( - Objects_Id id, - unsigned32 notepad, - unsigned32 note -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - /* - * NOTE: There is no check for < RTEMS_NOTEPAD_FIRST because that would - * be checking an unsigned number for being negative. - */ - - if ( notepad > RTEMS_NOTEPAD_LAST ) - return( RTEMS_INVALID_NUMBER ); - - /* - * Optimize the most likely case to avoid the Thread_Dispatch. - */ - - if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || - _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { - _Thread_Executing->Notepads[ notepad ] = note; - return( RTEMS_SUCCESSFUL ); - } - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return _RTEMS_tasks_MP_Send_request_packet( - RTEMS_TASKS_MP_SET_NOTE_REQUEST, - id, - 0, /* Not used */ - notepad, - note - ); - - case OBJECTS_LOCAL: - the_thread->Notepads[ notepad ] = note; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_wake_after - * - * This directive suspends the requesting thread for the given amount - * of ticks. - * - * Input parameters: - * ticks - number of ticks to wait - * - * Output parameters: - * RTEMS_SUCCESSFUL - always successful - */ - -rtems_status_code rtems_task_wake_after( - rtems_interval ticks -) -{ - if ( ticks == 0 ) { - _Thread_Yield_processor(); - _Thread_Dispatch(); - } else { - _Thread_Disable_dispatch(); - _Thread_Set_state( _Thread_Executing, STATES_DELAYING ); - _Watchdog_Initialize( - &_Thread_Executing->Timer, - _Thread_Delay_ended, - _Thread_Executing->Object.id, - NULL - ); - _Watchdog_Insert_ticks( &_Thread_Executing->Timer, - ticks, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - } - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_task_wake_when - * - * This directive blocks the requesting thread until the given date and - * time is reached. - * - * Input parameters: - * time_buffer - pointer to the time and date structure - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_wake_when( -rtems_time_of_day *time_buffer -) -{ - rtems_interval seconds; - rtems_status_code local_result; - - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - time_buffer->ticks = 0; - - local_result = _TOD_Validate( time_buffer ); - - if ( !rtems_is_status_successful( local_result ) ) - return( local_result ); - - seconds = _TOD_To_seconds( time_buffer ); - - if ( seconds <= _TOD_Seconds_since_epoch ) - return( RTEMS_INVALID_CLOCK ); - - _Thread_Disable_dispatch(); - _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME ); - _Watchdog_Initialize( - &_Thread_Executing->Timer, - _Thread_Delay_ended, - _Thread_Executing->Object.id, - NULL - ); - _Watchdog_Insert_seconds( &_Thread_Executing->Timer, - seconds - _TOD_Seconds_since_epoch, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} diff --git a/c/src/exec/rtems/src/timer.c b/c/src/exec/rtems/src/timer.c deleted file mode 100644 index 076091bee4..0000000000 --- a/c/src/exec/rtems/src/timer.c +++ /dev/null @@ -1,343 +0,0 @@ -/* - * Timer Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Timer_Manager_initialization - * - * This routine initializes all timer manager related data structures. - * - * Input parameters: - * maximum_timers - number of timers to initialize - * - * Output parameters: NONE - */ - -void _Timer_Manager_initialization( - unsigned32 maximum_timers -) -{ - _Objects_Initialize_information( - &_Timer_Information, - FALSE, - maximum_timers, - sizeof( Timer_Control ) - ); -} - -/*PAGE - * - * rtems_timer_create - * - * This directive creates a timer and performs some initialization. - * - * Input parameters: - * name - timer name - * id - pointer to timer id - * - * Output parameters: - * id - timer id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_create( - Objects_Name name, - Objects_Id *id -) -{ - Timer_Control *the_timer; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_timer = _Timer_Allocate(); - - if ( !the_timer ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_timer->the_class = TIMER_DORMANT; - - _Objects_Open( &_Timer_Information, &the_timer->Object, name ); - - *id = the_timer->Object.id; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_timer_ident - * - * This directive returns the system ID associated with - * the timer name. - * - * Input parameters: - * name - user defined message queue name - * id - pointer to timer id - * - * Output parameters: - * *id - message queue id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_ident( - Objects_Name name, - Objects_Id *id -) -{ - return _Objects_Name_to_id( - &_Timer_Information, - name, - RTEMS_SEARCH_LOCAL_NODE, - id - ); -} - -/*PAGE - * - * rtems_timer_cancel - * - * This directive allows a thread to cancel a timer. - * - * Input parameters: - * id - timer id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_cancel( - Objects_Id id -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( !_Timer_Is_dormant_class( the_timer->the_class ) ) { - (void) _Watchdog_Remove( &the_timer->Ticker ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INCORRECT_STATE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_delete - * - * This directive allows a thread to delete a timer. - * - * Input parameters: - * id - timer id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_delete( - Objects_Id id -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - _Objects_Close( &_Timer_Information, &the_timer->Object ); - (void) _Watchdog_Remove( &the_timer->Ticker ); - _Timer_Free( the_timer ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_fire_after - * - * This directive allows a thread to start a timer. - * - * Input parameters: - * id - timer id - * ticks - interval until routine is fired - * routine - routine to schedule - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_fire_after( - Objects_Id id, - rtems_interval ticks, - Timer_Service routine, - void *user_data -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - if ( ticks == 0 ) - return( RTEMS_INVALID_NUMBER ); - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - (void) _Watchdog_Remove( &the_timer->Ticker ); - the_timer->the_class = TIMER_INTERVAL; - _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); - _Watchdog_Insert_ticks( &the_timer->Ticker, - ticks, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_fire_when - * - * This directive allows a thread to start a timer. - * - * Input parameters: - * id - timer id - * wall_time - time of day to fire timer - * routine - routine to schedule - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_fire_when( - Objects_Id id, - rtems_time_of_day *wall_time, - Timer_Service routine, - void *user_data -) -{ - Timer_Control *the_timer; - Objects_Locations location; - rtems_status_code validate_status; - rtems_interval seconds; - - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - validate_status = _TOD_Validate( wall_time ); - if ( !rtems_is_status_successful( validate_status ) ) - return( validate_status ); - - seconds = _TOD_To_seconds( wall_time ); - if ( seconds <= _TOD_Seconds_since_epoch ) - return( RTEMS_INVALID_CLOCK ); - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - (void) _Watchdog_Remove( &the_timer->Ticker ); - the_timer->the_class = TIMER_TIME_OF_DAY; - _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); - _Watchdog_Insert_seconds( &the_timer->Ticker, - seconds - _TOD_Seconds_since_epoch, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_reset - * - * This directive allows a thread to reset a timer. - * - * Input parameters: - * id - timer id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_reset( - Objects_Id id -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( _Timer_Is_interval_class( the_timer->the_class ) ) { - _Watchdog_Reset( &the_timer->Ticker ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_NOT_DEFINED ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/c/src/exec/sapi/headers/config.h b/c/src/exec/sapi/headers/config.h deleted file mode 100644 index b5080b6133..0000000000 --- a/c/src/exec/sapi/headers/config.h +++ /dev/null @@ -1,321 +0,0 @@ -/* config.h - * - * This include file contains the table of user defined configuration - * parameters. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CONFIGURATION_h -#define __RTEMS_CONFIGURATION_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following records define the Initialization Tasks Table. - * Each entry contains the information required by RTEMS to - * create and start a user task automatically at executive - * initialization time. - */ - -typedef struct { - Objects_Name name; /* task name */ - unsigned32 stack_size; /* task stack size */ - rtems_task_priority initial_priority; /* task priority */ - rtems_attribute attribute_set; /* task attributes */ - rtems_task_entry entry_point; /* task entry point */ - rtems_mode mode_set; /* task initial mode */ - unsigned32 argument; /* task argument */ -} rtems_initialization_tasks_table; - -/* - * - * The following defines the types for: - * - * + major and minor numbers - * + the return type of a device driver entry - * + a pointer to a device driver entry - * + an entry in the the Device Driver Address Table. Each entry in this - * table corresponds to an application provided device driver and - * defines the entry points for that device driver. - */ - -typedef unsigned32 rtems_device_major_number; -typedef unsigned32 rtems_device_minor_number; - -typedef void rtems_device_driver; - -typedef rtems_device_driver ( *rtems_device_driver_entry )( - rtems_device_major_number, - rtems_device_minor_number, - void *, - Objects_Id, - unsigned32 * - ); - -typedef struct { - rtems_device_driver_entry initialization; /* initialization procedure */ - rtems_device_driver_entry open; /* open request procedure */ - rtems_device_driver_entry close; /* close request procedure */ - rtems_device_driver_entry read; /* read request procedure */ - rtems_device_driver_entry write; /* write request procedure */ - rtems_device_driver_entry control; /* special functions procedure */ -} rtems_driver_address_table; - -/* - * The following records defines the User Extension Table. - * This table defines the application dependent routines which - * are invoked at critical points in the life of each task and - * the system as a whole. - */ - -typedef void rtems_extension; - -typedef rtems_extension ( *rtems_task_create_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_delete_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_start_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_restart_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_switch_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_begin_extension )( - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_exitted_extension )( - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_fatal_extension )( - unsigned32 - ); - -typedef struct { - rtems_task_create_extension rtems_task_create; - rtems_task_start_extension rtems_task_start; - rtems_task_restart_extension rtems_task_restart; - rtems_task_delete_extension rtems_task_delete; - rtems_task_switch_extension task_switch; - rtems_task_begin_extension task_begin; - rtems_task_exitted_extension task_exitted; - rtems_fatal_extension fatal; -} rtems_extensions_table; - -/* - * The following records define the Multiprocessor Communications - * Interface (MPCI) Table. This table defines the user-provided - * MPCI which is a required part of a multiprocessor RTEMS system. - * - * For non-blocking local operations that become remote operations, - * we need a timeout. This is a per-driver timeout: default_timeout - */ - -/* XXX FORWARD REFERENCES */ - -typedef struct Configuration_Table rtems_configuration_table; -typedef struct Configuration_Table_MP rtems_multiprocessing_table; - -typedef void rtems_mpci_entry; - -typedef rtems_mpci_entry ( *rtems_mpci_initialization_entry )( - rtems_configuration_table *, - rtems_cpu_table *, - rtems_multiprocessing_table * - ); - -typedef rtems_mpci_entry ( *rtems_mpci_get_packet_entry )( - rtems_packet_prefix ** - ); - -typedef rtems_mpci_entry ( *rtems_mpci_return_packet_entry )( - rtems_packet_prefix * - ); - -typedef rtems_mpci_entry ( *rtems_mpci_send_entry )( - unsigned32, - rtems_packet_prefix * - ); - -typedef rtems_mpci_entry ( *rtems_mpci_receive_entry )( - rtems_packet_prefix ** - ); - -typedef struct { - unsigned32 default_timeout; /* in ticks */ - rtems_mpci_initialization_entry initialization; - rtems_mpci_get_packet_entry get_packet; - rtems_mpci_return_packet_entry return_packet; - rtems_mpci_send_entry send_packet; - rtems_mpci_receive_entry receive_packet; -} rtems_mpci_table; - -/* - * The following records define the Multiprocessor Configuration - * Table. This table defines the multiprocessor system - * characteristics which must be known by RTEMS in a multiprocessor - * system. - */ - -struct Configuration_Table_MP { - unsigned32 node; /* local node number */ - unsigned32 maximum_nodes; /* maximum # nodes in system */ - unsigned32 maximum_global_objects; /* maximum # global objects */ - unsigned32 maximum_proxies; /* maximum # proxies */ - rtems_mpci_table *User_mpci_table; - /* pointer to MPCI table */ -}; - -/* - * The following records define the Configuration Table. The - * information contained in this table is required in all - * RTEMS systems, whether single or multiprocessor. This - * table primarily defines the following: - * - * + location and size of the RTEMS Workspace - * + required number of each object type - * + microseconds per clock tick - * + clock ticks per task timeslice - */ - -struct Configuration_Table { - void *work_space_start; - unsigned32 work_space_size; - unsigned32 maximum_tasks; - unsigned32 maximum_timers; - unsigned32 maximum_semaphores; - unsigned32 maximum_message_queues; - unsigned32 maximum_messages; - unsigned32 maximum_partitions; - unsigned32 maximum_regions; - unsigned32 maximum_ports; - unsigned32 maximum_periods; - unsigned32 maximum_extensions; - unsigned32 microseconds_per_tick; - unsigned32 ticks_per_timeslice; - unsigned32 number_of_initialization_tasks; - rtems_initialization_tasks_table *User_initialization_tasks_table; - unsigned32 number_of_device_drivers; - rtems_driver_address_table *Device_driver_table; - rtems_extensions_table *User_extension_table; - rtems_multiprocessing_table *User_multiprocessing_table; -}; - -/* - * The following defines the default Multiprocessing Configuration - * Table. This table is used in a single processor system. - */ - -extern const rtems_multiprocessing_table - _Configuration_Default_multiprocessing_table; - -/* - * The following define the internal pointers to the user's - * configuration information. - */ - -EXTERN rtems_configuration_table *_Configuration_Table; -EXTERN rtems_multiprocessing_table *_Configuration_MP_table; -EXTERN rtems_mpci_table *_Configuration_MPCI_table; - -/* - * - * _Configuration_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _Configuration_Handler_initialization( - rtems_configuration_table *configuration_table, - rtems_multiprocessing_table *multiprocessing_table, - rtems_mpci_table *users_mpci_table -); - -/* - * _Configuration_Is_multiprocessing - * - * DESCRIPTION: - * - * This function determines if a multiprocessing application has been - * configured, if so, TRUE is returned, otherwise FALSE is returned. - */ - -STATIC INLINE boolean _Configuration_Is_multiprocessing( void ); - -/* - * _Configuration_Is_null_driver_address_table_pointer - * - * DESCRIPTION: - * - * This function returns TRUE if the_table is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Configuration_Is_null_driver_address_table_pointer( - rtems_driver_address_table *the_table -); - -/* - * _Configuration_Is_null_extension_table_pointer - * - * DESCRIPTION: - * - * This function returns TRUE if the_table is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Configuration_Is_null_extension_table_pointer( - rtems_extensions_table *the_table -); - -/* - * _Configuration_Is_null_initialization_tasks_table_pointer - * - * DESCRIPTION: - * - * This function returns TRUE if the_table is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean - _Configuration_Is_null_initialization_tasks_table_pointer( - rtems_initialization_tasks_table *the_table -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/headers/directives.h b/c/src/exec/sapi/headers/directives.h deleted file mode 100644 index 263811cdca..0000000000 --- a/c/src/exec/sapi/headers/directives.h +++ /dev/null @@ -1,108 +0,0 @@ -/* directives.h - * - * The following definitions are the directive numbers used - * in the assembly interface. - * - * COPYRIGHT (c) 19891990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - */ - -#ifndef __RTEMS_DIRECTIVES_h -#define RTEMS___DIRECTIVES_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define RTEMS_INITIALIZE_EXECUTIVE 0 -#define RTEMS_INITIALIZE_EXECUTIVE_EARLY 1 -#define RTEMS_INITIALIZE_EXECUTIVE_LATE 2 -#define RTEMS_SHUTDOWN_EXECUTIVE 3 -#define RTEMS_TASKS_CREATE 4 -#define RTEMS_TASKS_NAME_TO_ID 5 -#define RTEMS_TASKS_START 6 -#define RTEMS_TASKS_RESTART 7 -#define RTEMS_TASKS_DELETE 8 -#define RTEMS_TASKS_SUSPEND 9 -#define RTEMS_TASKS_RESUME 10 -#define RTEMS_TASKS_SET_PRIORITY 11 -#define RTEMS_TASKS_MODE 12 -#define RTEMS_TASKS_GET_NOTE 13 -#define RTEMS_TASKS_SET_NOTE 14 -#define RTEMS_TASKS_WAKE_AFTER 15 -#define RTEMS_TASKS_WAKE_WHEN 16 -#define RTEMS_INTERRUPT_CATCH 17 -#define RTEMS_CLOCK_SET 18 -#define RTEMS_CLOCK_GET 19 -#define RTEMS_CLOCK_TICK 20 -#define RTEMS_EXTENSION_CREATE 21 -#define RTEMS_EXTENSION_NAME_TO_ID 22 -#define RTEMS_EXTENSION_DELETE 23 -#define RTEMS_TIMER_CREATE 24 -#define RTEMS_TIMER_NAME_TO_ID 25 -#define RTEMS_TIMER_CANCEL 26 -#define RTEMS_TIMER_DELETE 27 -#define RTEMS_TIMER_FIRE_AFTER 28 -#define RTEMS_TIMER_FIRE_WHEN 29 -#define RTEMS_TIMER_RESET 30 -#define RTEMS_SEMAPHORE_CREATE 31 -#define RTEMS_SEMAPHORE_NAME_TO_ID 32 -#define RTEMS_SEMAPHORE_DELETE 33 -#define RTEMS_SEMAPHORE_OBTAIN 34 -#define RTEMS_SEMAPHORE_RELEASE 35 -#define RTEMS_MESSAGE_QUEUE_CREATE 36 -#define RTEMS_MESSAGE_QUEUE_NAME_TO_ID 37 -#define RTEMS_MESSAGE_QUEUE_DELETE 38 -#define RTEMS_MESSAGE_QUEUE_SEND 39 -#define RTEMS_MESSAGE_QUEUE_URGENT 40 -#define RTEMS_MESSAGE_QUEUE_BROADCAst 41 -#define RTEMS_MESSAGE_QUEUE_RECEIVE 42 -#define RTEMS_MESSAGE_QUEUE_FLUSH 43 -#define RTEMS_EVENT_SEND 44 -#define RTEMS_EVENT_RECEIVE 45 -#define RTEMS_SIGNAL_CATCH 46 -#define RTEMS_SIGNAL_SEND 47 -#define RTEMS_PARTITION_CREATE 48 -#define RTEMS_PARTITION_NAME_TO_ID 49 -#define RTEMS_PARTITION_DELETE 50 -#define RTEMS_PARTITION_GET_BUFFER 51 -#define RTEMS_PARTITION_RETURN_BUFFER 52 -#define RTEMS_REGION_CREATE 53 -#define RTEMS_REGION_EXTEND 54 -#define RTEMS_REGION_NAME_TO_ID 55 -#define RTEMS_REGION_DELETE 56 -#define RTEMS_REGION_GET_SEGMENT_SIZE 57 -#define RTEMS_REGION_GET_SEGMENT 58 -#define RTEMS_REGION_RETURN_SEGMENT 59 -#define RTEMS_DUAL_PORTED_MEMORY_CREATE 60 -#define RTEMS_DUAL_PORTED_MEMORY_NAME_TO_ID 61 -#define RTEMS_DUAL_PORTED_MEMORY_DELETE 62 -#define RTEMS_DUAL_PORTED_MEMORY_EXTERNAL_TO_INTERNAL 63 -#define RTEMS_DUAL_PORTED_MEMORY_INTERNAL_TO_EXTERNAL 64 -#define RTEMS_IO_INITIALIZE 65 -#define RTEMS_IO_OPEN 66 -#define RTEMS_IO_CLOSE 67 -#define RTEMS_IO_READ 68 -#define RTEMS_IO_WRITE 69 -#define RTEMS_IO_CONTROL 70 -#define RTEMS_FATAL_ERROR_OCCURRED 71 -#define RTEMS_RATE_MONOTONIC_CREATE 72 -#define RTEMS_RATE_MONOTONIC_NAME_TO_ID 73 -#define RTEMS_RATE_MONOTONIC_DELETE 74 -#define RTEMS_RATE_MONOTONIC_CANCEL 75 -#define RTEMS_RATE_MONOTONIC_PERIOD 76 -#define RTEMS_MULTIPROCESSING_ANNOUNCE 77 -#define RTEMS_DEBUG_ENABLE 78 -#define RTEMS_DEBUG_DISABLE 79 - -#ifdef __cplusplus -} -#endif - -#endif -/* end of directives.h */ diff --git a/c/src/exec/sapi/headers/extension.h b/c/src/exec/sapi/headers/extension.h deleted file mode 100644 index 1e20fe6470..0000000000 --- a/c/src/exec/sapi/headers/extension.h +++ /dev/null @@ -1,169 +0,0 @@ -/* extension.h - * - * This include file contains all the constants, structures, and - * prototypes associated with the User Extension Manager. This manager - * provides a mechanism for manipulating sets of user-defined extensions. - * - * Directives provided are: - * - * + create user extension set - * + get ID of user extension set - * + delete user extension set - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EXTENSION_MANAGER_h -#define __RTEMS_EXTENSION_MANAGER_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following defines the information control block used to manage - * this class of objects. - */ - -EXTERN Objects_Information _Extension_Information; - -/* - * The following records define the control block used to manage - * each extension. - */ - -typedef struct { - Objects_Control Object; - User_extensions_Control Extension; -} Extension_Control; - -/* - * _Extension_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Extension_Manager_initialization( - unsigned32 maximum_extensions -); - -/* - * rtems_extension_create - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_create directive. The - * extension will have the name name. The entry points of the - * routines which constitute this extension set are in EXTENSION_TABLE. - * It returns the id of the created extension in ID. - */ - -rtems_status_code rtems_extension_create( - Objects_Name name, - rtems_extensions_table *extension_table, - Objects_Id *id -); - -/* - * rtems_extension_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_ident directive. - * This directive returns the extension ID associated with name. - * If more than one extension is named name, then the extension - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_extension_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_extension_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_delete directive. The - * extension indicated by ID is deleted. - */ - -rtems_status_code rtems_extension_delete( - Objects_Id id -); - -/* - * _Extension_Allocate - * - * DESCRIPTION: - * - * This function allocates a extension control block from - * the inactive chain of free extension control blocks. - */ - -STATIC INLINE Extension_Control *_Extension_Allocate( void ); - -/* - * _Extension_Free - * - * DESCRIPTION: - * - * This routine frees a extension control block to the - * inactive chain of free extension control blocks. - */ - -STATIC INLINE void _Extension_Free ( - Extension_Control *the_extension -); - -/* - * _Extension_Get - * - * DESCRIPTION: - * - * This function maps extension IDs to extension control blocks. - * If ID corresponds to a local extension, then it returns - * the extension control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the returned value is undefined. - */ - -STATIC INLINE Extension_Control *_Extension_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Extension_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_extension is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Extension_Is_null( - Extension_Control *the_extension -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/headers/fatal.h b/c/src/exec/sapi/headers/fatal.h deleted file mode 100644 index f61b4183f3..0000000000 --- a/c/src/exec/sapi/headers/fatal.h +++ /dev/null @@ -1,49 +0,0 @@ -/* fatal.h - * - * This include file contains constants and prototypes related - * to the Fatal Error Manager. This manager processes all fatal or - * irrecoverable errors. - * - * This manager provides directives to: - * - * + announce a fatal error has occurred - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_FATAL_h -#define __RTEMS_FATAL_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * rtems_fatal_error_occurred - * - * DESCRIPTION: - * - * This is the routine which implements the rtems_fatal_error_occurred - * directive. It is invoked when the application or RTEMS - * determines that a fatal error has occurred. - */ - -void volatile rtems_fatal_error_occurred( - unsigned32 the_error -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/headers/init.h b/c/src/exec/sapi/headers/init.h deleted file mode 100644 index a5ed1688b7..0000000000 --- a/c/src/exec/sapi/headers/init.h +++ /dev/null @@ -1,101 +0,0 @@ -/* init.h - * - * This include file contains all the constants and structures associated - * with the Initialization Manager. This manager is responsible for - * initializing RTEMS, creating and starting all configured initialization - * tasks, invoking the initialization routine for each user-supplied device - * driver, and initializing the optional multiprocessor layer. - * - * This manager provides directives to: - * - * + initialize the RTEMS executive - * + shutdown the RTEMS executive - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_INIT_h -#define __RTEMS_INIT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * rtems_initialize_executive - * - * DESCRIPTION: - * - * This routine implements the rtems_initialize_executive directive. This - * directive is invoked at system startup to initialize the RTEMS - * multitasking environment. - */ - -void rtems_initialize_executive( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -); - -/* - * rtems_initialize_executive_early - * - * DESCRIPTION: - * - * This routine implements the early portion of rtems_initialize_executive - * directive up to the pretasking hook. This directive is invoked at system - * startup to initialize the RTEMS multitasking environment. - */ - -rtems_interrupt_level rtems_initialize_executive_early( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -); - -/* - * rtems_initialize_executive_late - * - * DESCRIPTION: - * - * This routine implements the early portion of rtems_initialize_executive - * directive up to the pretasking hook. This directive is invoked at system - * startup to initialize the RTEMS multitasking environment. - */ - -void rtems_initialize_executive_late( - rtems_interrupt_level bsp_level -); - -/* - * rtems_shutdown_executive - * - * DESCRIPTION: - * - * This routine implements the rtems_shutdown_executive directive. The - * invocation of this directive results in the RTEMS environment being - * shutdown and multitasking halted. From the application's perspective, - * invocation of this directive results in the rtems_initialize_executive - * directive exitting to the startup code which invoked it. - */ - -void rtems_shutdown_executive( - unsigned32 result -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/headers/io.h b/c/src/exec/sapi/headers/io.h deleted file mode 100644 index 6824377170..0000000000 --- a/c/src/exec/sapi/headers/io.h +++ /dev/null @@ -1,204 +0,0 @@ -/* io.h - * - * This include file contains all the constants and structures associated - * with the Input/Output Manager. This manager provides a well defined - * mechanism for accessing device drivers and a structured methodology for - * organizing device drivers. - * - * Directives provided are: - * - * + initialize a device driver - * + open a device driver - * + close a device driver - * + read from a device driver - * + write to a device driver - * + special device services - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_IO_h -#define __RTEMS_IO_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the set of IO operations which are - * recognized by _IO_Handler and can be supported by a RTEMS - * device driver. - */ - -typedef enum { - IO_INITIALIZE_OPERATION = 0, - IO_OPEN_OPERATION = 1, - IO_CLOSE_OPERATION = 2, - IO_READ_OPERATION = 3, - IO_WRITE_OPERATION = 4, - IO_CONTROL_OPERATION = 5 -} IO_operations; - -/* - * The following declare the data required to manage the Device Driver - * Address Table. - */ - -EXTERN unsigned32 _IO_Number_of_drivers; -EXTERN rtems_driver_address_table *_IO_Driver_address_table; - -/* - * _IO_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -STATIC INLINE void _IO_Manager_initialization( - rtems_driver_address_table *driver_table, - unsigned32 number_of_drivers -); - -/* - * rtems_io_initialize - * - * DESCRIPTION: - * - * This routine implements the rtems_io_initialize directive. It is invoked - * to initialize a device driver or an individual device. - */ - -rtems_status_code rtems_io_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_open - * - * DESCRIPTION: - * - * This routine implements the rtems_io_open directive. It is invoked - * to open a device. - */ - -rtems_status_code rtems_io_open( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_close - * - * DESCRIPTION: - * - * This routine implements the rtems_io_close directive. It is invoked - * to close a device. - */ - -rtems_status_code rtems_io_close( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_read - * - * DESCRIPTION: - * - * This routine implements the rtems_io_read directive. It is invoked - * to read from a device. - */ - -rtems_status_code rtems_io_read( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_write - * - * DESCRIPTION: - * - * This routine implements the rtems_io_write directive. It is invoked - * to write to a device. - */ - -rtems_status_code rtems_io_write( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_control - * - * DESCRIPTION: - * - * This routine implements the rtems_io_control directive. It is invoked - * to perform a device specific operation on a device. - */ - -rtems_status_code rtems_io_control( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * _IO_Initialize_all_drivers - * - * DESCRIPTION: - * - * This routine initializes all of the device drivers configured - * in the Device Driver Address Table. - */ - -void _IO_Initialize_all_drivers( void ); - -/* - * _IO_Handler_routine - * - * DESCRIPTION: - * - * This routine provides the common foundation for all of the IO - * Manager's directives. - */ - -rtems_status_code _IO_Handler_routine( - IO_operations operation, - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/headers/mptables.h b/c/src/exec/sapi/headers/mptables.h deleted file mode 100644 index b8e4c6de43..0000000000 --- a/c/src/exec/sapi/headers/mptables.h +++ /dev/null @@ -1,29 +0,0 @@ -/* mptables.h - * - * This include file contains the executive's pre-initialized tables - * used in a multiprocessor configuration. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MPTABLES_h -#define __RTEMS_MPTABLES_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/headers/sptables.h b/c/src/exec/sapi/headers/sptables.h deleted file mode 100644 index 53dc50df5f..0000000000 --- a/c/src/exec/sapi/headers/sptables.h +++ /dev/null @@ -1,140 +0,0 @@ -/* sptables.h - * - * This include file contains the executive's pre-initialized tables - * used when in a single processor configuration. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SPTABLES_h -#define __RTEMS_SPTABLES_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * This is the default Multiprocessing Configuration Table. - * It is used in single processor configurations. - */ - -const rtems_multiprocessing_table - _Configuration_Default_multiprocessing_table = { - 1, /* local node number */ - 1, /* maximum number nodes in system */ - 0, /* maximum number global objects */ - 0, /* maximum number proxies */ - NULL, /* pointer to MPCI address table */ -}; - -/* - * This is the version string. - */ - -const char _RTEMS_version[] = - "RTEMS RELEASE V3.1.15 (" CPU_NAME "/" RTEMS_MODEL_NAME ")"; - - -/* - * This table is used by the single entry point code. - */ - -const void * _Entry_points[ NUMBER_OF_ENTRY_POINTS + 1 ] = { - (void *) rtems_initialize_executive, /* 0 */ - (void *) rtems_initialize_executive_early, /* 1 */ - (void *) rtems_initialize_executive_late, /* 2 */ - (void *) rtems_shutdown_executive, /* 3 */ - (void *) rtems_task_create, /* 4 */ - (void *) rtems_task_ident, /* 5 */ - (void *) rtems_task_start, /* 6 */ - (void *) rtems_task_restart, /* 7 */ - (void *) rtems_task_delete, /* 8 */ - (void *) rtems_task_suspend, /* 9 */ - (void *) rtems_task_resume, /* 10 */ - (void *) rtems_task_set_priority, /* 11 */ - (void *) rtems_task_mode, /* 12 */ - (void *) rtems_task_get_note, /* 13 */ - (void *) rtems_task_set_note, /* 14 */ - (void *) rtems_task_wake_after, /* 15 */ - (void *) rtems_task_wake_when, /* 16 */ - (void *) rtems_interrupt_catch, /* 17 */ - (void *) rtems_clock_set, /* 18 */ - (void *) rtems_clock_get, /* 19 */ - (void *) rtems_clock_tick, /* 20 */ - (void *) rtems_extension_create, /* 21 */ - (void *) rtems_extension_ident, /* 22 */ - (void *) rtems_extension_delete, /* 23 */ - (void *) rtems_timer_create, /* 24 */ - (void *) rtems_timer_ident, /* 25 */ - (void *) rtems_timer_cancel, /* 26 */ - (void *) rtems_timer_delete, /* 27 */ - (void *) rtems_timer_fire_after, /* 28 */ - (void *) rtems_timer_fire_when, /* 29 */ - (void *) rtems_timer_reset, /* 30 */ - (void *) rtems_semaphore_create, /* 31 */ - (void *) rtems_semaphore_ident, /* 32 */ - (void *) rtems_semaphore_delete, /* 33 */ - (void *) rtems_semaphore_obtain, /* 34 */ - (void *) rtems_semaphore_release, /* 35 */ - (void *) rtems_message_queue_create, /* 36 */ - (void *) rtems_message_queue_ident, /* 37 */ - (void *) rtems_message_queue_delete, /* 38 */ - (void *) rtems_message_queue_send, /* 39 */ - (void *) rtems_message_queue_urgent, /* 40 */ - (void *) rtems_message_queue_broadcast, /* 41 */ - (void *) rtems_message_queue_receive, /* 42 */ - (void *) rtems_message_queue_flush, /* 43 */ - (void *) rtems_event_send, /* 44 */ - (void *) rtems_event_receive, /* 45 */ - (void *) rtems_signal_catch, /* 46 */ - (void *) rtems_signal_send, /* 47 */ - (void *) rtems_partition_create, /* 48 */ - (void *) rtems_partition_ident, /* 49 */ - (void *) rtems_partition_delete, /* 50 */ - (void *) rtems_partition_get_buffer, /* 51 */ - (void *) rtems_partition_return_buffer, /* 52 */ - (void *) rtems_region_create, /* 53 */ - (void *) rtems_region_extend, /* 54 */ - (void *) rtems_region_ident, /* 55 */ - (void *) rtems_region_delete, /* 56 */ - (void *) rtems_region_get_segment, /* 57 */ - (void *) rtems_region_get_segment_size, /* 58 */ - (void *) rtems_region_return_segment, /* 59 */ - (void *) rtems_port_create, /* 60 */ - (void *) rtems_port_ident, /* 61 */ - (void *) rtems_port_delete, /* 62 */ - (void *) rtems_port_external_to_internal, /* 63 */ - (void *) rtems_port_internal_to_external, /* 64 */ - (void *) rtems_io_initialize, /* 65 */ - (void *) rtems_io_open, /* 66 */ - (void *) rtems_io_close, /* 67 */ - (void *) rtems_io_read, /* 68 */ - (void *) rtems_io_write, /* 69 */ - (void *) rtems_io_control, /* 70 */ - (void *) rtems_fatal_error_occurred, /* 71 */ - (void *) rtems_rate_monotonic_create, /* 72 */ - (void *) rtems_rate_monotonic_ident, /* 73 */ - (void *) rtems_rate_monotonic_delete, /* 74 */ - (void *) rtems_rate_monotonic_cancel, /* 75 */ - (void *) rtems_rate_monotonic_period, /* 76 */ - (void *) rtems_multiprocessing_announce, /* 77 */ - (void *) rtems_debug_enable, /* 78 */ - (void *) rtems_debug_disable /* 79 */ -}; - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/include/rtems/config.h b/c/src/exec/sapi/include/rtems/config.h deleted file mode 100644 index b5080b6133..0000000000 --- a/c/src/exec/sapi/include/rtems/config.h +++ /dev/null @@ -1,321 +0,0 @@ -/* config.h - * - * This include file contains the table of user defined configuration - * parameters. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CONFIGURATION_h -#define __RTEMS_CONFIGURATION_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following records define the Initialization Tasks Table. - * Each entry contains the information required by RTEMS to - * create and start a user task automatically at executive - * initialization time. - */ - -typedef struct { - Objects_Name name; /* task name */ - unsigned32 stack_size; /* task stack size */ - rtems_task_priority initial_priority; /* task priority */ - rtems_attribute attribute_set; /* task attributes */ - rtems_task_entry entry_point; /* task entry point */ - rtems_mode mode_set; /* task initial mode */ - unsigned32 argument; /* task argument */ -} rtems_initialization_tasks_table; - -/* - * - * The following defines the types for: - * - * + major and minor numbers - * + the return type of a device driver entry - * + a pointer to a device driver entry - * + an entry in the the Device Driver Address Table. Each entry in this - * table corresponds to an application provided device driver and - * defines the entry points for that device driver. - */ - -typedef unsigned32 rtems_device_major_number; -typedef unsigned32 rtems_device_minor_number; - -typedef void rtems_device_driver; - -typedef rtems_device_driver ( *rtems_device_driver_entry )( - rtems_device_major_number, - rtems_device_minor_number, - void *, - Objects_Id, - unsigned32 * - ); - -typedef struct { - rtems_device_driver_entry initialization; /* initialization procedure */ - rtems_device_driver_entry open; /* open request procedure */ - rtems_device_driver_entry close; /* close request procedure */ - rtems_device_driver_entry read; /* read request procedure */ - rtems_device_driver_entry write; /* write request procedure */ - rtems_device_driver_entry control; /* special functions procedure */ -} rtems_driver_address_table; - -/* - * The following records defines the User Extension Table. - * This table defines the application dependent routines which - * are invoked at critical points in the life of each task and - * the system as a whole. - */ - -typedef void rtems_extension; - -typedef rtems_extension ( *rtems_task_create_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_delete_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_start_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_restart_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_switch_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_begin_extension )( - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_exitted_extension )( - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_fatal_extension )( - unsigned32 - ); - -typedef struct { - rtems_task_create_extension rtems_task_create; - rtems_task_start_extension rtems_task_start; - rtems_task_restart_extension rtems_task_restart; - rtems_task_delete_extension rtems_task_delete; - rtems_task_switch_extension task_switch; - rtems_task_begin_extension task_begin; - rtems_task_exitted_extension task_exitted; - rtems_fatal_extension fatal; -} rtems_extensions_table; - -/* - * The following records define the Multiprocessor Communications - * Interface (MPCI) Table. This table defines the user-provided - * MPCI which is a required part of a multiprocessor RTEMS system. - * - * For non-blocking local operations that become remote operations, - * we need a timeout. This is a per-driver timeout: default_timeout - */ - -/* XXX FORWARD REFERENCES */ - -typedef struct Configuration_Table rtems_configuration_table; -typedef struct Configuration_Table_MP rtems_multiprocessing_table; - -typedef void rtems_mpci_entry; - -typedef rtems_mpci_entry ( *rtems_mpci_initialization_entry )( - rtems_configuration_table *, - rtems_cpu_table *, - rtems_multiprocessing_table * - ); - -typedef rtems_mpci_entry ( *rtems_mpci_get_packet_entry )( - rtems_packet_prefix ** - ); - -typedef rtems_mpci_entry ( *rtems_mpci_return_packet_entry )( - rtems_packet_prefix * - ); - -typedef rtems_mpci_entry ( *rtems_mpci_send_entry )( - unsigned32, - rtems_packet_prefix * - ); - -typedef rtems_mpci_entry ( *rtems_mpci_receive_entry )( - rtems_packet_prefix ** - ); - -typedef struct { - unsigned32 default_timeout; /* in ticks */ - rtems_mpci_initialization_entry initialization; - rtems_mpci_get_packet_entry get_packet; - rtems_mpci_return_packet_entry return_packet; - rtems_mpci_send_entry send_packet; - rtems_mpci_receive_entry receive_packet; -} rtems_mpci_table; - -/* - * The following records define the Multiprocessor Configuration - * Table. This table defines the multiprocessor system - * characteristics which must be known by RTEMS in a multiprocessor - * system. - */ - -struct Configuration_Table_MP { - unsigned32 node; /* local node number */ - unsigned32 maximum_nodes; /* maximum # nodes in system */ - unsigned32 maximum_global_objects; /* maximum # global objects */ - unsigned32 maximum_proxies; /* maximum # proxies */ - rtems_mpci_table *User_mpci_table; - /* pointer to MPCI table */ -}; - -/* - * The following records define the Configuration Table. The - * information contained in this table is required in all - * RTEMS systems, whether single or multiprocessor. This - * table primarily defines the following: - * - * + location and size of the RTEMS Workspace - * + required number of each object type - * + microseconds per clock tick - * + clock ticks per task timeslice - */ - -struct Configuration_Table { - void *work_space_start; - unsigned32 work_space_size; - unsigned32 maximum_tasks; - unsigned32 maximum_timers; - unsigned32 maximum_semaphores; - unsigned32 maximum_message_queues; - unsigned32 maximum_messages; - unsigned32 maximum_partitions; - unsigned32 maximum_regions; - unsigned32 maximum_ports; - unsigned32 maximum_periods; - unsigned32 maximum_extensions; - unsigned32 microseconds_per_tick; - unsigned32 ticks_per_timeslice; - unsigned32 number_of_initialization_tasks; - rtems_initialization_tasks_table *User_initialization_tasks_table; - unsigned32 number_of_device_drivers; - rtems_driver_address_table *Device_driver_table; - rtems_extensions_table *User_extension_table; - rtems_multiprocessing_table *User_multiprocessing_table; -}; - -/* - * The following defines the default Multiprocessing Configuration - * Table. This table is used in a single processor system. - */ - -extern const rtems_multiprocessing_table - _Configuration_Default_multiprocessing_table; - -/* - * The following define the internal pointers to the user's - * configuration information. - */ - -EXTERN rtems_configuration_table *_Configuration_Table; -EXTERN rtems_multiprocessing_table *_Configuration_MP_table; -EXTERN rtems_mpci_table *_Configuration_MPCI_table; - -/* - * - * _Configuration_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _Configuration_Handler_initialization( - rtems_configuration_table *configuration_table, - rtems_multiprocessing_table *multiprocessing_table, - rtems_mpci_table *users_mpci_table -); - -/* - * _Configuration_Is_multiprocessing - * - * DESCRIPTION: - * - * This function determines if a multiprocessing application has been - * configured, if so, TRUE is returned, otherwise FALSE is returned. - */ - -STATIC INLINE boolean _Configuration_Is_multiprocessing( void ); - -/* - * _Configuration_Is_null_driver_address_table_pointer - * - * DESCRIPTION: - * - * This function returns TRUE if the_table is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Configuration_Is_null_driver_address_table_pointer( - rtems_driver_address_table *the_table -); - -/* - * _Configuration_Is_null_extension_table_pointer - * - * DESCRIPTION: - * - * This function returns TRUE if the_table is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Configuration_Is_null_extension_table_pointer( - rtems_extensions_table *the_table -); - -/* - * _Configuration_Is_null_initialization_tasks_table_pointer - * - * DESCRIPTION: - * - * This function returns TRUE if the_table is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean - _Configuration_Is_null_initialization_tasks_table_pointer( - rtems_initialization_tasks_table *the_table -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/include/rtems/directives.h b/c/src/exec/sapi/include/rtems/directives.h deleted file mode 100644 index 263811cdca..0000000000 --- a/c/src/exec/sapi/include/rtems/directives.h +++ /dev/null @@ -1,108 +0,0 @@ -/* directives.h - * - * The following definitions are the directive numbers used - * in the assembly interface. - * - * COPYRIGHT (c) 19891990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - */ - -#ifndef __RTEMS_DIRECTIVES_h -#define RTEMS___DIRECTIVES_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define RTEMS_INITIALIZE_EXECUTIVE 0 -#define RTEMS_INITIALIZE_EXECUTIVE_EARLY 1 -#define RTEMS_INITIALIZE_EXECUTIVE_LATE 2 -#define RTEMS_SHUTDOWN_EXECUTIVE 3 -#define RTEMS_TASKS_CREATE 4 -#define RTEMS_TASKS_NAME_TO_ID 5 -#define RTEMS_TASKS_START 6 -#define RTEMS_TASKS_RESTART 7 -#define RTEMS_TASKS_DELETE 8 -#define RTEMS_TASKS_SUSPEND 9 -#define RTEMS_TASKS_RESUME 10 -#define RTEMS_TASKS_SET_PRIORITY 11 -#define RTEMS_TASKS_MODE 12 -#define RTEMS_TASKS_GET_NOTE 13 -#define RTEMS_TASKS_SET_NOTE 14 -#define RTEMS_TASKS_WAKE_AFTER 15 -#define RTEMS_TASKS_WAKE_WHEN 16 -#define RTEMS_INTERRUPT_CATCH 17 -#define RTEMS_CLOCK_SET 18 -#define RTEMS_CLOCK_GET 19 -#define RTEMS_CLOCK_TICK 20 -#define RTEMS_EXTENSION_CREATE 21 -#define RTEMS_EXTENSION_NAME_TO_ID 22 -#define RTEMS_EXTENSION_DELETE 23 -#define RTEMS_TIMER_CREATE 24 -#define RTEMS_TIMER_NAME_TO_ID 25 -#define RTEMS_TIMER_CANCEL 26 -#define RTEMS_TIMER_DELETE 27 -#define RTEMS_TIMER_FIRE_AFTER 28 -#define RTEMS_TIMER_FIRE_WHEN 29 -#define RTEMS_TIMER_RESET 30 -#define RTEMS_SEMAPHORE_CREATE 31 -#define RTEMS_SEMAPHORE_NAME_TO_ID 32 -#define RTEMS_SEMAPHORE_DELETE 33 -#define RTEMS_SEMAPHORE_OBTAIN 34 -#define RTEMS_SEMAPHORE_RELEASE 35 -#define RTEMS_MESSAGE_QUEUE_CREATE 36 -#define RTEMS_MESSAGE_QUEUE_NAME_TO_ID 37 -#define RTEMS_MESSAGE_QUEUE_DELETE 38 -#define RTEMS_MESSAGE_QUEUE_SEND 39 -#define RTEMS_MESSAGE_QUEUE_URGENT 40 -#define RTEMS_MESSAGE_QUEUE_BROADCAst 41 -#define RTEMS_MESSAGE_QUEUE_RECEIVE 42 -#define RTEMS_MESSAGE_QUEUE_FLUSH 43 -#define RTEMS_EVENT_SEND 44 -#define RTEMS_EVENT_RECEIVE 45 -#define RTEMS_SIGNAL_CATCH 46 -#define RTEMS_SIGNAL_SEND 47 -#define RTEMS_PARTITION_CREATE 48 -#define RTEMS_PARTITION_NAME_TO_ID 49 -#define RTEMS_PARTITION_DELETE 50 -#define RTEMS_PARTITION_GET_BUFFER 51 -#define RTEMS_PARTITION_RETURN_BUFFER 52 -#define RTEMS_REGION_CREATE 53 -#define RTEMS_REGION_EXTEND 54 -#define RTEMS_REGION_NAME_TO_ID 55 -#define RTEMS_REGION_DELETE 56 -#define RTEMS_REGION_GET_SEGMENT_SIZE 57 -#define RTEMS_REGION_GET_SEGMENT 58 -#define RTEMS_REGION_RETURN_SEGMENT 59 -#define RTEMS_DUAL_PORTED_MEMORY_CREATE 60 -#define RTEMS_DUAL_PORTED_MEMORY_NAME_TO_ID 61 -#define RTEMS_DUAL_PORTED_MEMORY_DELETE 62 -#define RTEMS_DUAL_PORTED_MEMORY_EXTERNAL_TO_INTERNAL 63 -#define RTEMS_DUAL_PORTED_MEMORY_INTERNAL_TO_EXTERNAL 64 -#define RTEMS_IO_INITIALIZE 65 -#define RTEMS_IO_OPEN 66 -#define RTEMS_IO_CLOSE 67 -#define RTEMS_IO_READ 68 -#define RTEMS_IO_WRITE 69 -#define RTEMS_IO_CONTROL 70 -#define RTEMS_FATAL_ERROR_OCCURRED 71 -#define RTEMS_RATE_MONOTONIC_CREATE 72 -#define RTEMS_RATE_MONOTONIC_NAME_TO_ID 73 -#define RTEMS_RATE_MONOTONIC_DELETE 74 -#define RTEMS_RATE_MONOTONIC_CANCEL 75 -#define RTEMS_RATE_MONOTONIC_PERIOD 76 -#define RTEMS_MULTIPROCESSING_ANNOUNCE 77 -#define RTEMS_DEBUG_ENABLE 78 -#define RTEMS_DEBUG_DISABLE 79 - -#ifdef __cplusplus -} -#endif - -#endif -/* end of directives.h */ diff --git a/c/src/exec/sapi/include/rtems/extension.h b/c/src/exec/sapi/include/rtems/extension.h deleted file mode 100644 index 1e20fe6470..0000000000 --- a/c/src/exec/sapi/include/rtems/extension.h +++ /dev/null @@ -1,169 +0,0 @@ -/* extension.h - * - * This include file contains all the constants, structures, and - * prototypes associated with the User Extension Manager. This manager - * provides a mechanism for manipulating sets of user-defined extensions. - * - * Directives provided are: - * - * + create user extension set - * + get ID of user extension set - * + delete user extension set - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EXTENSION_MANAGER_h -#define __RTEMS_EXTENSION_MANAGER_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following defines the information control block used to manage - * this class of objects. - */ - -EXTERN Objects_Information _Extension_Information; - -/* - * The following records define the control block used to manage - * each extension. - */ - -typedef struct { - Objects_Control Object; - User_extensions_Control Extension; -} Extension_Control; - -/* - * _Extension_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Extension_Manager_initialization( - unsigned32 maximum_extensions -); - -/* - * rtems_extension_create - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_create directive. The - * extension will have the name name. The entry points of the - * routines which constitute this extension set are in EXTENSION_TABLE. - * It returns the id of the created extension in ID. - */ - -rtems_status_code rtems_extension_create( - Objects_Name name, - rtems_extensions_table *extension_table, - Objects_Id *id -); - -/* - * rtems_extension_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_ident directive. - * This directive returns the extension ID associated with name. - * If more than one extension is named name, then the extension - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_extension_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_extension_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_delete directive. The - * extension indicated by ID is deleted. - */ - -rtems_status_code rtems_extension_delete( - Objects_Id id -); - -/* - * _Extension_Allocate - * - * DESCRIPTION: - * - * This function allocates a extension control block from - * the inactive chain of free extension control blocks. - */ - -STATIC INLINE Extension_Control *_Extension_Allocate( void ); - -/* - * _Extension_Free - * - * DESCRIPTION: - * - * This routine frees a extension control block to the - * inactive chain of free extension control blocks. - */ - -STATIC INLINE void _Extension_Free ( - Extension_Control *the_extension -); - -/* - * _Extension_Get - * - * DESCRIPTION: - * - * This function maps extension IDs to extension control blocks. - * If ID corresponds to a local extension, then it returns - * the extension control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the returned value is undefined. - */ - -STATIC INLINE Extension_Control *_Extension_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Extension_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_extension is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Extension_Is_null( - Extension_Control *the_extension -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/include/rtems/fatal.h b/c/src/exec/sapi/include/rtems/fatal.h deleted file mode 100644 index f61b4183f3..0000000000 --- a/c/src/exec/sapi/include/rtems/fatal.h +++ /dev/null @@ -1,49 +0,0 @@ -/* fatal.h - * - * This include file contains constants and prototypes related - * to the Fatal Error Manager. This manager processes all fatal or - * irrecoverable errors. - * - * This manager provides directives to: - * - * + announce a fatal error has occurred - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_FATAL_h -#define __RTEMS_FATAL_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * rtems_fatal_error_occurred - * - * DESCRIPTION: - * - * This is the routine which implements the rtems_fatal_error_occurred - * directive. It is invoked when the application or RTEMS - * determines that a fatal error has occurred. - */ - -void volatile rtems_fatal_error_occurred( - unsigned32 the_error -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/include/rtems/init.h b/c/src/exec/sapi/include/rtems/init.h deleted file mode 100644 index a5ed1688b7..0000000000 --- a/c/src/exec/sapi/include/rtems/init.h +++ /dev/null @@ -1,101 +0,0 @@ -/* init.h - * - * This include file contains all the constants and structures associated - * with the Initialization Manager. This manager is responsible for - * initializing RTEMS, creating and starting all configured initialization - * tasks, invoking the initialization routine for each user-supplied device - * driver, and initializing the optional multiprocessor layer. - * - * This manager provides directives to: - * - * + initialize the RTEMS executive - * + shutdown the RTEMS executive - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_INIT_h -#define __RTEMS_INIT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * rtems_initialize_executive - * - * DESCRIPTION: - * - * This routine implements the rtems_initialize_executive directive. This - * directive is invoked at system startup to initialize the RTEMS - * multitasking environment. - */ - -void rtems_initialize_executive( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -); - -/* - * rtems_initialize_executive_early - * - * DESCRIPTION: - * - * This routine implements the early portion of rtems_initialize_executive - * directive up to the pretasking hook. This directive is invoked at system - * startup to initialize the RTEMS multitasking environment. - */ - -rtems_interrupt_level rtems_initialize_executive_early( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -); - -/* - * rtems_initialize_executive_late - * - * DESCRIPTION: - * - * This routine implements the early portion of rtems_initialize_executive - * directive up to the pretasking hook. This directive is invoked at system - * startup to initialize the RTEMS multitasking environment. - */ - -void rtems_initialize_executive_late( - rtems_interrupt_level bsp_level -); - -/* - * rtems_shutdown_executive - * - * DESCRIPTION: - * - * This routine implements the rtems_shutdown_executive directive. The - * invocation of this directive results in the RTEMS environment being - * shutdown and multitasking halted. From the application's perspective, - * invocation of this directive results in the rtems_initialize_executive - * directive exitting to the startup code which invoked it. - */ - -void rtems_shutdown_executive( - unsigned32 result -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/include/rtems/io.h b/c/src/exec/sapi/include/rtems/io.h deleted file mode 100644 index 6824377170..0000000000 --- a/c/src/exec/sapi/include/rtems/io.h +++ /dev/null @@ -1,204 +0,0 @@ -/* io.h - * - * This include file contains all the constants and structures associated - * with the Input/Output Manager. This manager provides a well defined - * mechanism for accessing device drivers and a structured methodology for - * organizing device drivers. - * - * Directives provided are: - * - * + initialize a device driver - * + open a device driver - * + close a device driver - * + read from a device driver - * + write to a device driver - * + special device services - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_IO_h -#define __RTEMS_IO_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the set of IO operations which are - * recognized by _IO_Handler and can be supported by a RTEMS - * device driver. - */ - -typedef enum { - IO_INITIALIZE_OPERATION = 0, - IO_OPEN_OPERATION = 1, - IO_CLOSE_OPERATION = 2, - IO_READ_OPERATION = 3, - IO_WRITE_OPERATION = 4, - IO_CONTROL_OPERATION = 5 -} IO_operations; - -/* - * The following declare the data required to manage the Device Driver - * Address Table. - */ - -EXTERN unsigned32 _IO_Number_of_drivers; -EXTERN rtems_driver_address_table *_IO_Driver_address_table; - -/* - * _IO_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -STATIC INLINE void _IO_Manager_initialization( - rtems_driver_address_table *driver_table, - unsigned32 number_of_drivers -); - -/* - * rtems_io_initialize - * - * DESCRIPTION: - * - * This routine implements the rtems_io_initialize directive. It is invoked - * to initialize a device driver or an individual device. - */ - -rtems_status_code rtems_io_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_open - * - * DESCRIPTION: - * - * This routine implements the rtems_io_open directive. It is invoked - * to open a device. - */ - -rtems_status_code rtems_io_open( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_close - * - * DESCRIPTION: - * - * This routine implements the rtems_io_close directive. It is invoked - * to close a device. - */ - -rtems_status_code rtems_io_close( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_read - * - * DESCRIPTION: - * - * This routine implements the rtems_io_read directive. It is invoked - * to read from a device. - */ - -rtems_status_code rtems_io_read( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_write - * - * DESCRIPTION: - * - * This routine implements the rtems_io_write directive. It is invoked - * to write to a device. - */ - -rtems_status_code rtems_io_write( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_control - * - * DESCRIPTION: - * - * This routine implements the rtems_io_control directive. It is invoked - * to perform a device specific operation on a device. - */ - -rtems_status_code rtems_io_control( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * _IO_Initialize_all_drivers - * - * DESCRIPTION: - * - * This routine initializes all of the device drivers configured - * in the Device Driver Address Table. - */ - -void _IO_Initialize_all_drivers( void ); - -/* - * _IO_Handler_routine - * - * DESCRIPTION: - * - * This routine provides the common foundation for all of the IO - * Manager's directives. - */ - -rtems_status_code _IO_Handler_routine( - IO_operations operation, - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/include/rtems/mptables.h b/c/src/exec/sapi/include/rtems/mptables.h deleted file mode 100644 index b8e4c6de43..0000000000 --- a/c/src/exec/sapi/include/rtems/mptables.h +++ /dev/null @@ -1,29 +0,0 @@ -/* mptables.h - * - * This include file contains the executive's pre-initialized tables - * used in a multiprocessor configuration. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MPTABLES_h -#define __RTEMS_MPTABLES_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/include/rtems/sptables.h b/c/src/exec/sapi/include/rtems/sptables.h deleted file mode 100644 index 53dc50df5f..0000000000 --- a/c/src/exec/sapi/include/rtems/sptables.h +++ /dev/null @@ -1,140 +0,0 @@ -/* sptables.h - * - * This include file contains the executive's pre-initialized tables - * used when in a single processor configuration. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SPTABLES_h -#define __RTEMS_SPTABLES_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * This is the default Multiprocessing Configuration Table. - * It is used in single processor configurations. - */ - -const rtems_multiprocessing_table - _Configuration_Default_multiprocessing_table = { - 1, /* local node number */ - 1, /* maximum number nodes in system */ - 0, /* maximum number global objects */ - 0, /* maximum number proxies */ - NULL, /* pointer to MPCI address table */ -}; - -/* - * This is the version string. - */ - -const char _RTEMS_version[] = - "RTEMS RELEASE V3.1.15 (" CPU_NAME "/" RTEMS_MODEL_NAME ")"; - - -/* - * This table is used by the single entry point code. - */ - -const void * _Entry_points[ NUMBER_OF_ENTRY_POINTS + 1 ] = { - (void *) rtems_initialize_executive, /* 0 */ - (void *) rtems_initialize_executive_early, /* 1 */ - (void *) rtems_initialize_executive_late, /* 2 */ - (void *) rtems_shutdown_executive, /* 3 */ - (void *) rtems_task_create, /* 4 */ - (void *) rtems_task_ident, /* 5 */ - (void *) rtems_task_start, /* 6 */ - (void *) rtems_task_restart, /* 7 */ - (void *) rtems_task_delete, /* 8 */ - (void *) rtems_task_suspend, /* 9 */ - (void *) rtems_task_resume, /* 10 */ - (void *) rtems_task_set_priority, /* 11 */ - (void *) rtems_task_mode, /* 12 */ - (void *) rtems_task_get_note, /* 13 */ - (void *) rtems_task_set_note, /* 14 */ - (void *) rtems_task_wake_after, /* 15 */ - (void *) rtems_task_wake_when, /* 16 */ - (void *) rtems_interrupt_catch, /* 17 */ - (void *) rtems_clock_set, /* 18 */ - (void *) rtems_clock_get, /* 19 */ - (void *) rtems_clock_tick, /* 20 */ - (void *) rtems_extension_create, /* 21 */ - (void *) rtems_extension_ident, /* 22 */ - (void *) rtems_extension_delete, /* 23 */ - (void *) rtems_timer_create, /* 24 */ - (void *) rtems_timer_ident, /* 25 */ - (void *) rtems_timer_cancel, /* 26 */ - (void *) rtems_timer_delete, /* 27 */ - (void *) rtems_timer_fire_after, /* 28 */ - (void *) rtems_timer_fire_when, /* 29 */ - (void *) rtems_timer_reset, /* 30 */ - (void *) rtems_semaphore_create, /* 31 */ - (void *) rtems_semaphore_ident, /* 32 */ - (void *) rtems_semaphore_delete, /* 33 */ - (void *) rtems_semaphore_obtain, /* 34 */ - (void *) rtems_semaphore_release, /* 35 */ - (void *) rtems_message_queue_create, /* 36 */ - (void *) rtems_message_queue_ident, /* 37 */ - (void *) rtems_message_queue_delete, /* 38 */ - (void *) rtems_message_queue_send, /* 39 */ - (void *) rtems_message_queue_urgent, /* 40 */ - (void *) rtems_message_queue_broadcast, /* 41 */ - (void *) rtems_message_queue_receive, /* 42 */ - (void *) rtems_message_queue_flush, /* 43 */ - (void *) rtems_event_send, /* 44 */ - (void *) rtems_event_receive, /* 45 */ - (void *) rtems_signal_catch, /* 46 */ - (void *) rtems_signal_send, /* 47 */ - (void *) rtems_partition_create, /* 48 */ - (void *) rtems_partition_ident, /* 49 */ - (void *) rtems_partition_delete, /* 50 */ - (void *) rtems_partition_get_buffer, /* 51 */ - (void *) rtems_partition_return_buffer, /* 52 */ - (void *) rtems_region_create, /* 53 */ - (void *) rtems_region_extend, /* 54 */ - (void *) rtems_region_ident, /* 55 */ - (void *) rtems_region_delete, /* 56 */ - (void *) rtems_region_get_segment, /* 57 */ - (void *) rtems_region_get_segment_size, /* 58 */ - (void *) rtems_region_return_segment, /* 59 */ - (void *) rtems_port_create, /* 60 */ - (void *) rtems_port_ident, /* 61 */ - (void *) rtems_port_delete, /* 62 */ - (void *) rtems_port_external_to_internal, /* 63 */ - (void *) rtems_port_internal_to_external, /* 64 */ - (void *) rtems_io_initialize, /* 65 */ - (void *) rtems_io_open, /* 66 */ - (void *) rtems_io_close, /* 67 */ - (void *) rtems_io_read, /* 68 */ - (void *) rtems_io_write, /* 69 */ - (void *) rtems_io_control, /* 70 */ - (void *) rtems_fatal_error_occurred, /* 71 */ - (void *) rtems_rate_monotonic_create, /* 72 */ - (void *) rtems_rate_monotonic_ident, /* 73 */ - (void *) rtems_rate_monotonic_delete, /* 74 */ - (void *) rtems_rate_monotonic_cancel, /* 75 */ - (void *) rtems_rate_monotonic_period, /* 76 */ - (void *) rtems_multiprocessing_announce, /* 77 */ - (void *) rtems_debug_enable, /* 78 */ - (void *) rtems_debug_disable /* 79 */ -}; - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/inline/extension.inl b/c/src/exec/sapi/inline/extension.inl deleted file mode 100644 index 27941923b0..0000000000 --- a/c/src/exec/sapi/inline/extension.inl +++ /dev/null @@ -1,73 +0,0 @@ -/* extension.inl - * - * This file contains the static inline implementation of the inlined routines - * from the Extension Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __EXTENSION_MANAGER_inl -#define __EXTENSION_MANAGER_inl - -/*PAGE - * - * _Extension_Allocate - * - */ - -STATIC INLINE Extension_Control *_Extension_Allocate( void ) -{ - return (Extension_Control *) _Objects_Allocate( &_Extension_Information ); -} - -/*PAGE - * - * _Extension_Free - * - */ - -STATIC INLINE void _Extension_Free ( - Extension_Control *the_extension -) -{ - _Objects_Free( &_Extension_Information, &the_extension->Object ); -} - -/*PAGE - * - * _Extension_Get - * - */ - -STATIC INLINE Extension_Control *_Extension_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Extension_Control *) - _Objects_Get( &_Extension_Information, id, location ); -} - -/*PAGE - * - * _Extension_Is_null - * - */ - -STATIC INLINE boolean _Extension_Is_null ( - Extension_Control *the_extension -) -{ - return ( the_extension == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/inline/rtems/extension.inl b/c/src/exec/sapi/inline/rtems/extension.inl deleted file mode 100644 index 27941923b0..0000000000 --- a/c/src/exec/sapi/inline/rtems/extension.inl +++ /dev/null @@ -1,73 +0,0 @@ -/* extension.inl - * - * This file contains the static inline implementation of the inlined routines - * from the Extension Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __EXTENSION_MANAGER_inl -#define __EXTENSION_MANAGER_inl - -/*PAGE - * - * _Extension_Allocate - * - */ - -STATIC INLINE Extension_Control *_Extension_Allocate( void ) -{ - return (Extension_Control *) _Objects_Allocate( &_Extension_Information ); -} - -/*PAGE - * - * _Extension_Free - * - */ - -STATIC INLINE void _Extension_Free ( - Extension_Control *the_extension -) -{ - _Objects_Free( &_Extension_Information, &the_extension->Object ); -} - -/*PAGE - * - * _Extension_Get - * - */ - -STATIC INLINE Extension_Control *_Extension_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Extension_Control *) - _Objects_Get( &_Extension_Information, id, location ); -} - -/*PAGE - * - * _Extension_Is_null - * - */ - -STATIC INLINE boolean _Extension_Is_null ( - Extension_Control *the_extension -) -{ - return ( the_extension == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/macros/extension.inl b/c/src/exec/sapi/macros/extension.inl deleted file mode 100644 index 96fb9d1b3e..0000000000 --- a/c/src/exec/sapi/macros/extension.inl +++ /dev/null @@ -1,58 +0,0 @@ -/* extension.inl - * - * This file contains the macro implementation of the inlined routines - * from the Extension Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __EXTENSION_inl -#define __EXTENSION_inl - -/*PAGE - * - * _Extension_Allocate - * - */ - -#define _Extension_Allocate() \ - (Extension_Control *) _Objects_Allocate( &_Extension_Information ) - -/*PAGE - * - * _Extension_Free - * - */ - -#define _Extension_Free( _the_extension ) \ - _Objects_Free( &_Extension_Information, &(_the_extension)->Object ) - -/*PAGE - * - * _Extension_Get - * - */ - -#define _Extension_Get( _id, _location ) \ - (Extension_Control *) \ - _Objects_Get( &_Extension_Information, (_id), (_location) ) - -/*PAGE - * - * _Extension_Is_null - * - */ - -#define _Extension_Is_null( _the_extension ) \ - ( (_the_extension) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/macros/rtems/extension.inl b/c/src/exec/sapi/macros/rtems/extension.inl deleted file mode 100644 index 96fb9d1b3e..0000000000 --- a/c/src/exec/sapi/macros/rtems/extension.inl +++ /dev/null @@ -1,58 +0,0 @@ -/* extension.inl - * - * This file contains the macro implementation of the inlined routines - * from the Extension Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __EXTENSION_inl -#define __EXTENSION_inl - -/*PAGE - * - * _Extension_Allocate - * - */ - -#define _Extension_Allocate() \ - (Extension_Control *) _Objects_Allocate( &_Extension_Information ) - -/*PAGE - * - * _Extension_Free - * - */ - -#define _Extension_Free( _the_extension ) \ - _Objects_Free( &_Extension_Information, &(_the_extension)->Object ) - -/*PAGE - * - * _Extension_Get - * - */ - -#define _Extension_Get( _id, _location ) \ - (Extension_Control *) \ - _Objects_Get( &_Extension_Information, (_id), (_location) ) - -/*PAGE - * - * _Extension_Is_null - * - */ - -#define _Extension_Is_null( _the_extension ) \ - ( (_the_extension) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/sapi/optman/no-ext.c b/c/src/exec/sapi/optman/no-ext.c deleted file mode 100644 index 4d707c3a49..0000000000 --- a/c/src/exec/sapi/optman/no-ext.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Extension Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -void _Extension_Manager_initialization( - unsigned32 maximum_extensions -) -{ -} - -rtems_status_code rtems_extension_create( - Objects_Name name, - rtems_extensions_table *extension_table, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_extension_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_extension_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/exec/sapi/optman/no-io.c b/c/src/exec/sapi/optman/no-io.c deleted file mode 100644 index 177ec4b091..0000000000 --- a/c/src/exec/sapi/optman/no-io.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Input/Output Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -void _IO_Initialize_all_drivers( void ) -{ -} - -rtems_status_code rtems_io_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_io_open( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_io_close( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_io_read( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_io_write( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_io_control( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code _IO_Handler_routine( - IO_operations operation, - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/exec/sapi/src/debug.c b/c/src/exec/sapi/src/debug.c deleted file mode 100644 index 5c42fa92f6..0000000000 --- a/c/src/exec/sapi/src/debug.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Debug Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -/*PAGE - * - * _Debug_Manager_initialization - */ - -void _Debug_Manager_initialization( void ) -{ - rtems_debug_disable( RTEMS_DEBUG_ALL_MASK ); -} - -/*PAGE - * - * rtems_debug_enable - */ - -void rtems_debug_enable ( - rtems_debug_control to_be_enabled -) -{ - _Debug_Level |= to_be_enabled; -} - -/*PAGE - * - * rtems_debug_disable - */ - -void rtems_debug_disable ( - rtems_debug_control to_be_disabled -) -{ - _Debug_Level &= ~to_be_disabled; -} - -/*PAGE - * - * _Debug_Is_enabled - */ - -boolean _Debug_Is_enabled( - rtems_debug_control level -) -{ - return (_Debug_Level & level); -} diff --git a/c/src/exec/sapi/src/exinit.c b/c/src/exec/sapi/src/exinit.c deleted file mode 100644 index cc45a11c94..0000000000 --- a/c/src/exec/sapi/src/exinit.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Initialization Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -/* - * INIT is defined so all of the data will be included in this - * file. - */ - -#define INIT - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -/*PAGE - * - * rtems_initialize_executive - * - * This directive initializes all the kernels data structures - * to the states necessary for the kernel to begin execution. All - * include files that contain global variable definitions should be - * included in this file. The system threads and initialization threads - * are created and started by this routine. This routine then - * initiates multithreading. - * - * Input parameters: - * configuration_table - pointer to the user's configuration table - * cpu_table - pointer to the user's CPU configuration table - * - * Output parameters: NONE - */ - -struct months { - unsigned32 months[2][13]; -}; - -void rtems_initialize_executive( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -) -{ - rtems_interrupt_level bsp_level; - - bsp_level = rtems_initialize_executive_early(configuration_table, cpu_table); - rtems_initialize_executive_late( bsp_level ); -} - -rtems_interrupt_level rtems_initialize_executive_early( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -) -{ - rtems_interrupt_level bsp_level; - rtems_multiprocessing_table *multiprocessing_table; - - /* - * Dispatching and interrupts are disabled until the end of the - * initialization sequence. This prevents an inadvertent context - * switch before the executive is initialized. - */ - - _ISR_Disable( bsp_level ); - - _System_state_Set( SYSTEM_STATE_BEFORE_INITIALIZATION ); - - _CPU_Initialize( cpu_table, _Thread_Dispatch ); - - multiprocessing_table = configuration_table->User_multiprocessing_table; - if ( multiprocessing_table == NULL ) - multiprocessing_table = - (void *) &_Configuration_Default_multiprocessing_table; - - _Configuration_Handler_initialization( - configuration_table, - multiprocessing_table, - multiprocessing_table->User_mpci_table - ); - - _Attributes_Handler_initialization(); - - _Thread_Dispatch_initialization(); - - _User_extensions_Handler_initialization( - configuration_table->User_extension_table - ); - - _Workspace_Handler_initialization( - (void *)configuration_table->work_space_start, - configuration_table->work_space_size - ); - - _ISR_Handler_initialization(); - - _Objects_Handler_initialization( - multiprocessing_table->node, - multiprocessing_table->maximum_global_objects - ); - - _Priority_Handler_initialization(); - - _Watchdog_Handler_initialization(); - - _TOD_Handler_initialization( configuration_table->microseconds_per_tick ); - - _Thread_Handler_initialization( - configuration_table->maximum_tasks, - configuration_table->ticks_per_timeslice, - multiprocessing_table->maximum_proxies - ); - - _MPCI_Handler_initialization(); - -/* MANAGERS */ - - _Interrupt_Manager_initialization(); - - _Multiprocessing_Manager_initialization(); - - _Timer_Manager_initialization( configuration_table->maximum_timers ); - - _Extension_Manager_initialization( configuration_table->maximum_extensions ); - - _IO_Manager_initialization( - configuration_table->Device_driver_table, - configuration_table->number_of_device_drivers - ); - - _Event_Manager_initialization(); - - _Message_queue_Manager_initialization( - configuration_table->maximum_message_queues, - configuration_table->maximum_messages - ); - - _Semaphore_Manager_initialization( - configuration_table->maximum_semaphores - ); - - _Partition_Manager_initialization( - configuration_table->maximum_partitions - ); - - _Region_Manager_initialization( configuration_table->maximum_regions ); - - _Dual_ported_memory_Manager_initialization( - configuration_table->maximum_ports - ); - - _Rate_monotonic_Manager_initialization( - configuration_table->maximum_periods - ); - - _Internal_threads_Initialization(); - - if ( cpu_table->pretasking_hook ) - (*cpu_table->pretasking_hook)(); - - _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING ); - - return bsp_level; -} - -void rtems_initialize_executive_late( - rtems_interrupt_level bsp_level -) -{ - - _System_state_Set( SYSTEM_STATE_BEGIN_MULTITASKING ); - - _Thread_Start_multitasking( - _Internal_threads_System_initialization_thread, - _Internal_threads_Idle_thread - ); - - /* - * Restore the interrupt level to what the BSP had. Technically, - * this is unnecessary since the BSP should have all interrupts - * disabled when rtems_initialize_executive is invoked. But this keeps - * the ISR Disable/Enable calls paired. - */ - - _ISR_Enable( bsp_level ); -} - -/*PAGE - * - * rtems_shutdown_executive - * - * This kernel routine shutdowns the executive. It halts multitasking - * and returns control to the application execution "thread" which - * initialially invoked the rtems_initialize_executive directive. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void rtems_shutdown_executive( - unsigned32 result -) -{ - _Thread_Stop_multitasking(); -} diff --git a/c/src/exec/sapi/src/extension.c b/c/src/exec/sapi/src/extension.c deleted file mode 100644 index 10c974ef8e..0000000000 --- a/c/src/exec/sapi/src/extension.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Extension Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/*PAGE - * - * _Extension_Manager_initialization - * - * This routine initializes all extension manager related data structures. - * - * Input parameters: - * maximum_extensions - number of extensions to initialize - * - * Output parameters: NONE - */ - -void _Extension_Manager_initialization( - unsigned32 maximum_extensions -) -{ - _Objects_Initialize_information( - &_Extension_Information, - FALSE, - maximum_extensions, - sizeof( Extension_Control ) - ); -} - -/*PAGE - * - * rtems_extension_create - * - * This directive creates a extension and performs some initialization. - * - * Input parameters: - * name - extension name - * extension_table - pointer to extension set information - * id - pointer to extension id - * - * Output parameters: - * id - extension id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_extension_create( - Objects_Name name, - rtems_extensions_table *extension_table, - Objects_Id *id -) -{ - Extension_Control *the_extension; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_extension = _Extension_Allocate(); - - if ( !the_extension ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - _User_extensions_Add_set( &the_extension->Extension, extension_table ); - - _Objects_Open( &_Extension_Information, &the_extension->Object, name ); - - *id = the_extension->Object.id; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_extension_ident - * - * This directive returns the system ID associated with - * the extension name. - * - * Input parameters: - * name - user defined message queue name - * id - pointer to extension id - * - * Output parameters: - * *id - message queue id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_extension_ident( - Objects_Name name, - Objects_Id *id -) -{ - return _Objects_Name_to_id( - &_Extension_Information, - name, - RTEMS_SEARCH_LOCAL_NODE, - id - ); -} - -/*PAGE - * - * rtems_extension_delete - * - * This directive allows a thread to delete a extension. - * - * Input parameters: - * id - extension id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_extension_delete( - Objects_Id id -) -{ - Extension_Control *the_extension; - Objects_Locations location; - - the_extension = _Extension_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INVALID_ID ); - case OBJECTS_LOCAL: - _User_extensions_Remove_set( &the_extension->Extension ); - _Objects_Close( &_Extension_Information, &the_extension->Object ); - _Extension_Free( the_extension ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/c/src/exec/sapi/src/fatal.c b/c/src/exec/sapi/src/fatal.c deleted file mode 100644 index 2ecc73ff3f..0000000000 --- a/c/src/exec/sapi/src/fatal.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Fatal Error Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/*PAGE - * - * rtems_fatal_error_occurred - * - * This directive 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_error - fatal error status code - * - * Output parameters: - * the_error - on stack - * status register - on stack - * - * NOTE: The the_error is not necessarily a directive status code. - */ - -void volatile rtems_fatal_error_occurred( - unsigned32 the_error -) -{ - - _User_extensions_Fatal( the_error ); - - _System_state_Set( SYSTEM_STATE_FAILED ); - - _CPU_Fatal_halt( the_error ); - -/* will not return from this routine */ -} diff --git a/c/src/exec/sapi/src/io.c b/c/src/exec/sapi/src/io.c deleted file mode 100644 index cf78bb9f71..0000000000 --- a/c/src/exec/sapi/src/io.c +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Input/Output Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/*PAGE - * - * _IO_Initialize_all_drivers - * - * This routine initializes all device drivers - * - * Input Paramters: NONE - * - * Output Parameters: NONE - */ - -void _IO_Initialize_all_drivers( void ) -{ - rtems_device_major_number major; - unsigned32 ignored; - - for ( major=0 ; major < _IO_Number_of_drivers ; major ++ ) - (void) rtems_io_initialize( major, 0, _Configuration_Table, &ignored ); -} - -/*PAGE - * - * rtems_io_initialize - * - * This routine is the initialization directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_INITIALIZE_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * rtems_io_open - * - * This routine is the open directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_open( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_OPEN_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * rtems_io_close - * - * This routine is the close directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_close( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_CLOSE_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * rtems_io_read - * - * This routine is the read directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_read( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_READ_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * rtems_io_write - * - * This routine is the write directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_write( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_WRITE_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * rtems_io_control - * - * This routine is the control directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_control( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_CONTROL_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * _IO_Handler_routine - * - * This routine implements all IO manager directives. - * - * Input Paramters: - * operation - I/O operation to be performed - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code _IO_Handler_routine( - IO_operations operation, - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - rtems_device_driver_entry io_callout; - - /* - * NOTE: There is no range checking as in Ada because: - * + arrays in Ada are not always zero based. - * + with zero based arrays, a comparison of an unsigned - * number being less than zero would be necessary to - * check it as a range. This would cause a warning for - * checking an unsigned number for being negative. - */ - - if ( major >= _IO_Number_of_drivers ) - return ( RTEMS_INVALID_NUMBER ); - - switch ( operation ) { - case IO_INITIALIZE_OPERATION: - io_callout = _IO_Driver_address_table[ major ].initialization; - break; - case IO_OPEN_OPERATION: - io_callout = _IO_Driver_address_table[ major ].open; - break; - case IO_CLOSE_OPERATION: - io_callout = _IO_Driver_address_table[ major ].close; - break; - case IO_READ_OPERATION: - io_callout = _IO_Driver_address_table[ major ].read; - break; - case IO_WRITE_OPERATION: - io_callout = _IO_Driver_address_table[ major ].write; - break; - case IO_CONTROL_OPERATION: - io_callout = _IO_Driver_address_table[ major ].control; - break; - default: /* unreached -- only to remove warnings */ - io_callout = NULL; - break; - } - - if ( io_callout != NULL ) - (*io_callout)( - major, - minor, - argument, - _Thread_Executing->Object.id, - return_value - ); - else - *return_value = 0; - - return( RTEMS_SUCCESSFUL ); -} diff --git a/c/src/exec/score/cpu/hppa1.1/cpu.c b/c/src/exec/score/cpu/hppa1.1/cpu.c deleted file mode 100644 index b69a172b4e..0000000000 --- a/c/src/exec/score/cpu/hppa1.1/cpu.c +++ /dev/null @@ -1,313 +0,0 @@ -/* - * HP PA-RISC Dependent Source - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -rtems_status_code hppa_external_interrupt_initialize(void); -void hppa_external_interrupt_enable(unsigned32); -void hppa_external_interrupt_disable(unsigned32); -void hppa_external_interrupt(unsigned32, CPU_Interrupt_frame *); - -/* - * Our interrupt handlers take a 2nd argument: - * a pointer to a CPU_Interrupt_frame - * So we use our own prototype instead of rtems_isr_entry - */ - -typedef rtems_isr ( *hppa_rtems_isr_entry )( - rtems_vector_number, - CPU_Interrupt_frame * - ); - - -/* - * who are we? cpu number - * Not used by executive proper, just kept (or not) as a convenience - * for libcpu and libbsp stuff that wants it. - * - * Defaults to 0. If the BSP doesn't like it, it can change it. - */ - -int cpu_number; /* from 0; cpu number in a multi cpu system */ - - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - address of disptaching routine - * - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - register unsigned8 *fp_context; - unsigned32 iva; - unsigned32 iva_table; - int i; - - extern void IVA_Table(void); - - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - /* - * XXX; need to setup fpsr smarter perhaps - */ - - fp_context = (unsigned8*) &_CPU_Null_fp_context; - for (i=0 ; i= HPPA_INTERRUPT_EXTERNAL_BASE) - { - unsigned32 external_vector; - - external_vector = vector - HPPA_INTERRUPT_EXTERNAL_BASE; - if (new_handler) - hppa_external_interrupt_enable(external_vector); - else - /* XXX this can never happen due to _ISR_Is_valid_user_handler */ - hppa_external_interrupt_disable(external_vector); - } -} - - -/* - * Support for external and spurious interrupts on HPPA - * - * TODO: - * delete interrupt.c etc. - * Count interrupts - * make sure interrupts disabled properly - * should handler check again for more interrupts before exit? - * How to enable interrupts from an interrupt handler? - * Make sure there is an entry for everything in ISR_Vector_Table - */ - -#define DISMISS(mask) set_eirr(mask) -#define DISABLE(mask) set_eiem(get_eiem() & ~(mask)) -#define ENABLE(mask) set_eiem(get_eiem() | (mask)) -#define VECTOR_TO_MASK(v) (1 << (31 - (v))) - -/* - * Init the external interrupt scheme - * called by bsp_start() - */ - -rtems_status_code -hppa_external_interrupt_initialize(void) -{ - rtems_isr_entry ignore; - - /* mark them all unused */ - - DISABLE(~0); - DISMISS(~0); - - /* install the external interrupt handler */ - rtems_interrupt_catch((rtems_isr_entry) hppa_external_interrupt, - HPPA_INTERRUPT_EXTERNAL_INTERRUPT, &ignore) ; - - return RTEMS_SUCCESSFUL; -} - -/* - * Enable a specific external interrupt - */ - -void -hppa_external_interrupt_enable(unsigned32 v) -{ - unsigned32 isrlevel; - - _CPU_ISR_Disable(isrlevel); - ENABLE(VECTOR_TO_MASK(v)); - _CPU_ISR_Enable(isrlevel); -} - -/* - * Does not clear or otherwise affect any pending requests - */ - -void -hppa_external_interrupt_disable(unsigned32 v) -{ - unsigned32 isrlevel; - - _CPU_ISR_Disable(isrlevel); - DISABLE(VECTOR_TO_MASK(v)); - _CPU_ISR_Enable(isrlevel); -} - -void -hppa_external_interrupt_spurious_handler(unsigned32 vector, - CPU_Interrupt_frame *iframe) -{ -/* XXX should not be printing :) - printf("spurious external interrupt: %d at pc 0x%x; disabling\n", - vector, iframe->Interrupt.pcoqfront); -*/ - DISMISS(VECTOR_TO_MASK(vector)); - DISABLE(VECTOR_TO_MASK(vector)); -} - -void -hppa_external_interrupt_report_spurious(unsigned32 spurious, - CPU_Interrupt_frame *iframe) -{ - int v; - for (v=0; v < HPPA_EXTERNAL_INTERRUPTS; v++) - if (VECTOR_TO_MASK(v) & spurious) - hppa_external_interrupt_spurious_handler(v, iframe); - DISMISS(spurious); -} - - -/* - * External interrupt handler. - * This is installed as cpu interrupt handler for - * HPPA_INTERRUPT_EXTERNAL_INTERRUPT. It vectors out to - * specific external interrupt handlers. - */ - -void -hppa_external_interrupt(unsigned32 vector, - CPU_Interrupt_frame *iframe) -{ - unsigned32 mask; - unsigned32 *vp, *max_vp; - unsigned32 external_vector; - unsigned32 global_vector; - hppa_rtems_isr_entry handler; - - max_vp = &_CPU_Table.external_interrupt[_CPU_Table.external_interrupts]; - while ( (mask = (get_eirr() & get_eiem())) ) - { - for (vp = _CPU_Table.external_interrupt; (vp < max_vp) && mask; vp++) - { - unsigned32 m; - - external_vector = *vp; - global_vector = external_vector + HPPA_INTERRUPT_EXTERNAL_BASE; - m = VECTOR_TO_MASK(external_vector); - handler = (hppa_rtems_isr_entry) _ISR_Vector_table[global_vector]; - if ((m & mask) && handler) - { - DISMISS(m); - mask &= ~m; - (*handler)(global_vector, iframe); - } - } - - if (mask != 0) { - if ( _CPU_Table.spurious_handler ) - (*((hppa_rtems_isr_entry) _CPU_Table.spurious_handler))( - mask, - iframe - ); - else - hppa_external_interrupt_report_spurious(mask, iframe); - } - } -} - -/* - * Halt the system. - * Called by the _CPU_Fatal_halt macro - * - * XXX - * Later on, this will allow us to return to the prom. - * For now, we just ignore 'type_of_halt' - */ - -void -hppa_cpu_halt(unsigned32 type_of_halt, - unsigned32 the_error) -{ - unsigned32 isrlevel; - - _CPU_ISR_Disable(isrlevel); - - asm volatile( "copy %0,%%r1" : : "r" (the_error) ); - HPPA_ASM_BREAK(1, 0); -} diff --git a/c/src/exec/score/cpu/hppa1.1/cpu.h b/c/src/exec/score/cpu/hppa1.1/cpu.h deleted file mode 100644 index 3e8f31fcf0..0000000000 --- a/c/src/exec/score/cpu/hppa1.1/cpu.h +++ /dev/null @@ -1,581 +0,0 @@ -/* cpu.h - * - * This include file contains information pertaining to the HP - * PA-RISC processor (Level 1.1). - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * - * Note: - * This file is included by both C and assembler code ( -DASM ) - * - * $Id$ - */ - -#ifndef __CPU_h -#define __CPU_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include /* pick up machine definitions */ - -/* conditional compilation parameters */ - -#define CPU_INLINE_ENABLE_DISPATCH FALSE -#define CPU_UNROLL_ENQUEUE_PRIORITY TRUE - -/* - * RTEMS manages an interrupt stack in software for the HPPA. - */ - -#define CPU_HAS_SOFTWARE_INTERRUPT_STACK TRUE -#define CPU_HAS_HARDWARE_INTERRUPT_STACK FALSE -#define CPU_ALLOCATE_INTERRUPT_STACK TRUE - -/* - * HPPA has hardware FP, it is assumed to exist by GCC so all tasks - * may implicitly use it (especially for integer multiplies). Because - * the FP context is technically part of the basic integer context - * on this CPU, we cannot use the deferred FP context switch algorithm. - */ - -#define CPU_HARDWARE_FP TRUE -#define CPU_ALL_TASKS_ARE_FP TRUE -#define CPU_IDLE_TASK_IS_FP FALSE -#define CPU_USE_DEFERRED_FP_SWITCH FALSE - -#define CPU_PROVIDES_IDLE_THREAD_BODY FALSE -#define CPU_STACK_GROWS_UP TRUE -#define CPU_STRUCTURE_ALIGNMENT __attribute__ ((__aligned__ (32))) - -/* constants */ - -#define CPU_MODES_INTERRUPT_LEVEL 0x00000001 /* interrupt level in mode */ -#define CPU_MODES_INTERRUPT_MASK 0x00000001 /* interrupt level in mode */ - -/* - * PSW contstants - */ - -#define CPU_PSW_BASE (HPPA_PSW_C | HPPA_PSW_Q | HPPA_PSW_P | HPPA_PSW_D) -#define CPU_PSW_INTERRUPTS_ON (CPU_PSW_BASE | HPPA_PSW_I) -#define CPU_PSW_INTERRUPTS_OFF (CPU_PSW_BASE) - -#define CPU_PSW_DEFAULT CPU_PSW_BASE - - -#ifndef ASM - -/* - * Contexts - * - * This means we have the following context items: - * 1. task level context stuff:: Context_Control - * 2. floating point task stuff:: Context_Control_fp - * - * The PA-RISC is very fast so the expense of saving an extra register - * or two is not of great concern at the present. So we are not making - * a distinction between what is saved during a task switch and what is - * saved at each interrupt. Plus saving the entire context should make - * it easier to make gdb aware of RTEMS tasks. - */ - -typedef struct { - unsigned32 flags; /* whatever */ - unsigned32 gr1; /* scratch -- caller saves */ - unsigned32 gr2; /* RP -- return pointer */ - unsigned32 gr3; /* scratch -- callee saves */ - unsigned32 gr4; /* scratch -- callee saves */ - unsigned32 gr5; /* scratch -- callee saves */ - unsigned32 gr6; /* scratch -- callee saves */ - unsigned32 gr7; /* scratch -- callee saves */ - unsigned32 gr8; /* scratch -- callee saves */ - unsigned32 gr9; /* scratch -- callee saves */ - unsigned32 gr10; /* scratch -- callee saves */ - unsigned32 gr11; /* scratch -- callee saves */ - unsigned32 gr12; /* scratch -- callee saves */ - unsigned32 gr13; /* scratch -- callee saves */ - unsigned32 gr14; /* scratch -- callee saves */ - unsigned32 gr15; /* scratch -- callee saves */ - unsigned32 gr16; /* scratch -- callee saves */ - unsigned32 gr17; /* scratch -- callee saves */ - unsigned32 gr18; /* scratch -- callee saves */ - unsigned32 gr19; /* scratch -- caller saves */ - unsigned32 gr20; /* scratch -- caller saves */ - unsigned32 gr21; /* scratch -- caller saves */ - unsigned32 gr22; /* scratch -- caller saves */ - unsigned32 gr23; /* argument 3 */ - unsigned32 gr24; /* argument 2 */ - unsigned32 gr25; /* argument 1 */ - unsigned32 gr26; /* argument 0 */ - unsigned32 gr27; /* DP -- global data pointer */ - unsigned32 gr28; /* return values -- caller saves */ - unsigned32 gr29; /* return values -- caller saves */ - unsigned32 sp; /* gr30 */ - unsigned32 gr31; - - /* Various control registers */ - - unsigned32 sar; /* cr11 */ - unsigned32 ipsw; /* cr22; full 32 bits of psw */ - unsigned32 iir; /* cr19; interrupt instruction register */ - unsigned32 ior; /* cr21; interrupt offset register */ - unsigned32 isr; /* cr20; interrupt space register (not used) */ - unsigned32 pcoqfront; /* cr18; front que offset */ - unsigned32 pcoqback; /* cr18; back que offset */ - unsigned32 pcsqfront; /* cr17; front que space (not used) */ - unsigned32 pcsqback; /* cr17; back que space (not used) */ - unsigned32 itimer; /* cr16; itimer value */ - -} Context_Control; - - -/* Must be double word aligned. - * This will be ok since our allocator returns 8 byte aligned chunks - */ - -typedef struct { - double fr0; /* status */ - double fr1; /* exception information */ - double fr2; /* exception information */ - double fr3; /* exception information */ - double fr4; /* argument */ - double fr5; /* argument */ - double fr6; /* argument */ - double fr7; /* argument */ - double fr8; /* scratch -- caller saves */ - double fr9; /* scratch -- caller saves */ - double fr10; /* scratch -- caller saves */ - double fr11; /* scratch -- caller saves */ - double fr12; /* callee saves -- (PA-RISC 1.1 CPUs) */ - double fr13; /* callee saves -- (PA-RISC 1.1 CPUs) */ - double fr14; /* callee saves -- (PA-RISC 1.1 CPUs) */ - double fr15; /* callee saves -- (PA-RISC 1.1 CPUs) */ - double fr16; /* callee saves -- (PA-RISC 1.1 CPUs) */ - double fr17; /* callee saves -- (PA-RISC 1.1 CPUs) */ - double fr18; /* callee saves -- (PA-RISC 1.1 CPUs) */ - double fr19; /* callee saves -- (PA-RISC 1.1 CPUs) */ - double fr20; /* callee saves -- (PA-RISC 1.1 CPUs) */ - double fr21; /* callee saves -- (PA-RISC 1.1 CPUs) */ - double fr22; /* caller saves -- (PA-RISC 1.1 CPUs) */ - double fr23; /* caller saves -- (PA-RISC 1.1 CPUs) */ - double fr24; /* caller saves -- (PA-RISC 1.1 CPUs) */ - double fr25; /* caller saves -- (PA-RISC 1.1 CPUs) */ - double fr26; /* caller saves -- (PA-RISC 1.1 CPUs) */ - double fr27; /* caller saves -- (PA-RISC 1.1 CPUs) */ - double fr28; /* caller saves -- (PA-RISC 1.1 CPUs) */ - double fr29; /* caller saves -- (PA-RISC 1.1 CPUs) */ - double fr30; /* caller saves -- (PA-RISC 1.1 CPUs) */ - double fr31; /* caller saves -- (PA-RISC 1.1 CPUs) */ -} Context_Control_fp; - -/* - * The following structure defines the set of information saved - * on the current stack by RTEMS upon receipt of each interrupt. - */ - -typedef struct { - Context_Control Integer; - Context_Control_fp Floating_Point; -} CPU_Interrupt_frame; - -/* - * The following table contains the information required to configure - * the HPPA specific parameters. - */ - -typedef struct { - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - - /* HPPA simulator is slow enough; don't waste time - * zeroing memory that is already zero - */ - boolean do_zero_of_workspace; - - unsigned32 interrupt_stack_size; - unsigned32 extra_system_initialization_stack; - - /* - * Control of external interrupts. - * We keep a table of external vector numbers (0 - 31) - * The table is sorted by priority, that is: the first entry - * in the table indicates the vector that is highest priorty. - * The handler function is stored in _ISR_Vector_Table[] and - * is set by rtems_interrupt_catch() - */ - - unsigned32 external_interrupts; /* # of external interrupts we use */ - unsigned32 external_interrupt[HPPA_EXTERNAL_INTERRUPTS]; - - void (*spurious_handler)( unsigned32 mask, CPU_Interrupt_frame *); - - unsigned32 itimer_clicks_per_microsecond; /* for use by Clock driver */ -} rtems_cpu_table; - -/* variables */ - -EXTERN Context_Control_fp _CPU_Null_fp_context; -EXTERN unsigned32 _CPU_Default_gr27; -EXTERN void *_CPU_Interrupt_stack_low; -EXTERN void *_CPU_Interrupt_stack_high; - -#endif /* ! ASM */ - -/* - * context size area for floating point - */ - -#ifndef ASM -#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp ) -#endif - -/* - * size of a frame on the stack - */ - -#define CPU_FRAME_SIZE (16 * 4) - -/* - * (Optional) # of bytes for libmisc/stackchk to check - * If not specifed, then it defaults to something reasonable - * for most architectures. - */ - -#define CPU_STACK_CHECK_SIZE (CPU_FRAME_SIZE * 2) - -/* - * extra stack required by system initialization thread - */ - -#define CPU_SYSTEM_INITIALIZATION_THREAD_EXTRA_STACK 0 - -/* - * HPPA has 32 interrupts, then 32 external interrupts - * Rtems (_ISR_Vector_Table) is aware of the first 64 - * A BSP may reserve more. - * - * External interrupts all come thru the same vector (4) - * The external handler is the only person aware of the other - * interrupts (genie, rhino, etc) - */ - -#define CPU_INTERRUPT_NUMBER_OF_VECTORS (HPPA_INTERRUPT_MAX) - -/* - * Don't be chintzy here; we don't want to debug these problems - * Some of the tests eat almost 4k. - * Plus, the HPPA always allocates chunks of 64 bytes for stack - * growth. - */ - -#define CPU_STACK_MINIMUM_SIZE (8 * 1024) - -/* - * HPPA double's must be on 8 byte boundary - */ - -#define CPU_ALIGNMENT 8 - -/* - * just follow the basic HPPA alignment for the heap and partition - */ - -#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT -#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT - -/* - * HPPA stack is best when 64 byte aligned. - */ - -#define CPU_STACK_ALIGNMENT 64 - -#ifndef ASM - -/* macros */ - -/* - * ISR handler macros - * - * These macros perform the following functions: - * + disable all maskable CPU interrupts - * + restore previous interrupt level (enable) - * + temporarily restore interrupts (flash) - * + set a particular level - */ - -/* Disable interrupts; returning previous level in _level */ -#define _CPU_ISR_Disable( _isr_cookie ) \ - do { \ - HPPA_ASM_RSM(HPPA_PSW_I, _isr_cookie); \ - } while(0) - -/* Enable interrupts to previous level from _CPU_ISR_Disable - * does not change 'level' */ -#define _CPU_ISR_Enable( _isr_cookie ) \ - { \ - HPPA_ASM_MTSM( _isr_cookie ); \ - } - -/* restore, then disable interrupts; does not change level */ -#define _CPU_ISR_Flash( _isr_cookie ) \ - { \ - register int _ignore; \ - _CPU_ISR_Enable( _isr_cookie ); \ - _CPU_ISR_Disable( _ignore ); \ - } - -/* - * Interrupt task levels - * - * Future scheme proposal - * level will be an index into a array. - * Each entry of array will be the interrupt bits - * enabled for that level. There will be 32 bits of external - * interrupts (to be placed in EIEM) and some (optional) bsp - * specific bits - * - * For pixel flow this *may* mean something like: - * level 0: all interrupts enabled (external + rhino) - * level 1: rhino disabled - * level 2: all io interrupts disabled (timer still enabled) - * level 7: *ALL* disabled (timer disabled) - */ - -/* set interrupts on or off; does not return new level */ -#define _CPU_ISR_Set_level( new_level ) \ - { \ - volatile int ignore; \ - if ( new_level ) HPPA_ASM_RSM(HPPA_PSW_I, ignore); \ - else HPPA_ASM_SSM(HPPA_PSW_I, ignore); \ - } - -/* end of ISR handler macros */ - -/* - * Context handler macros - * - * These macros perform the following functions: - * + initialize a context area - * + restart the current thread - * + calculate the initial pointer into a FP context area - * + initialize an FP context area - * - * HPPA port adds two macros which hide the "indirectness" of the - * pointer passed the save/restore FP context assembly routines. - */ - -#define _CPU_Context_Initialize( _the_context, _stack_base, _size, \ - _new_level, _entry_point ) \ - do { \ - unsigned32 _stack; \ - \ - (_the_context)->flags = 0xfeedf00d; \ - (_the_context)->pcoqfront = (unsigned32)(_entry_point); \ - (_the_context)->pcoqback = (unsigned32)(_entry_point) + 4; \ - (_the_context)->pcsqfront = 0; \ - (_the_context)->pcsqback = 0; \ - if ( (_new_level) ) \ - (_the_context)->ipsw = CPU_PSW_INTERRUPTS_OFF; \ - else \ - (_the_context)->ipsw = CPU_PSW_INTERRUPTS_ON; \ - \ - _stack = ((unsigned32)(_stack_base) + (CPU_STACK_ALIGNMENT - 1)); \ - _stack &= ~(CPU_STACK_ALIGNMENT - 1); \ - if ((_stack - (unsigned32) (_stack_base)) < CPU_FRAME_SIZE) \ - _stack += CPU_FRAME_SIZE; \ - \ - (_the_context)->sp = (_stack); \ - (_the_context)->gr27 = _CPU_Default_gr27; \ - } while (0) - -#define _CPU_Context_Restart_self( _the_context ) \ - do { \ - _CPU_Context_restore( (_the_context) ); \ - } while (0) - -#define _CPU_Context_Fp_start( _base, _offset ) \ - ( (void *) (_base) + (_offset) ) - -#define _CPU_Context_Initialize_fp( _destination ) \ - do { \ - *((Context_Control_fp *) *((void **) _destination)) = _CPU_Null_fp_context;\ - } while(0) - -#define _CPU_Context_save_fp( _fp_context ) \ - _CPU_Save_float_context( *(Context_Control_fp **)(_fp_context) ) - -#define _CPU_Context_restore_fp( _fp_context ) \ - _CPU_Restore_float_context( *(Context_Control_fp **)(_fp_context) ) - -/* end of Context handler macros */ - -/* - * Fatal Error manager macros - * - * These macros perform the following functions: - * + disable interrupts and halt the CPU - */ - -void hppa_cpu_halt(unsigned32 type_of_halt, unsigned32 the_error); -#define _CPU_Fatal_halt( _error ) \ - hppa_cpu_halt(0, _error) - -/* end of Fatal Error manager macros */ - -/* - * Bitfield handler macros - * - * These macros perform the following functions: - * + scan for the highest numbered (MSB) set in a 16 bit bitfield - * - * NOTE: - * - * The HPPA does not have a scan instruction. This functionality - * is implemented in software. - */ - -int hppa_rtems_ffs(unsigned int value); -#define _CPU_Bitfield_Find_first_bit( _value, _output ) \ - _output = hppa_rtems_ffs(_value) - -/* end of Bitfield handler macros */ - -/* - * Priority handler macros - * - * These macros perform the following functions: - * + return a mask with the bit for this major/minor portion of - * of thread priority set. - * + translate the bit number returned by "Bitfield_find_first_bit" - * into an index into the thread ready chain bit maps - * - * Note: 255 is the lowest priority - */ - -#define _CPU_Priority_Mask( _bit_number ) \ - ( 1 << (_bit_number) ) - -#define _CPU_Priority_Bits_index( _priority ) \ - (_priority) - -/* end of Priority handler macros */ - -/* functions */ - -/* - * _CPU_Initialize - * - * This routine performs CPU dependent initialization. - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) -); - -/* - * _CPU_ISR_install_vector - * - * This routine installs an interrupt vector. - */ - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -); - -/* - * _CPU_Context_switch - * - * This routine switches from the run context to the heir context. - */ - -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 and avoid stack conflicts. - */ - -void _CPU_Context_restore( - Context_Control *new_context -); - -/* - * _CPU_Save_float_context - * - * This routine saves the floating point context passed to it. - * - * NOTE: _CPU_Context_save_fp is implemented as a macro on the HPPA - * which dereferences the pointer before calling this. - */ - -void _CPU_Save_float_context( - Context_Control_fp *fp_context -); - -/* - * _CPU_Restore_float_context - * - * This routine restores the floating point context passed to it. - * - * NOTE: _CPU_Context_save_fp is implemented as a macro on the HPPA - * which dereferences the pointer before calling this. - */ - -void _CPU_Restore_float_context( - Context_Control_fp *fp_context -); - - -/* The following routine swaps the endian format of an unsigned int. - * It must be static so it can be referenced indirectly. - */ - -static inline unsigned int -CPU_swap_u32(unsigned32 value) -{ - unsigned32 swapped; - - HPPA_ASM_SWAPBYTES(value, swapped); - - return( swapped ); -} - -/* - * Unused; I think it should go away - */ - -#if 0 -#define enable_tracing() -#endif - -#endif /* ! ASM */ - -#ifdef __cplusplus -} -#endif - -#endif /* ! __CPU_h */ diff --git a/c/src/exec/score/cpu/hppa1.1/cpu_asm.h b/c/src/exec/score/cpu/hppa1.1/cpu_asm.h deleted file mode 100644 index 8e480c2a5c..0000000000 --- a/c/src/exec/score/cpu/hppa1.1/cpu_asm.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 1990,1991 The University of Utah and - * the Center for Software Science (CSS). All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the Center - * for Software Science at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSS ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSS DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSS requests users of this software to return to css-dist@cs.utah.edu any - * improvements that they make and grant CSS redistribution rights. - * - * Utah $Hdr: asm.h 1.6 91/12/03$ - * - * RTEMS: $Id$ - */ - -/* - * Hardware Space Registers - */ -sr0 .reg %sr0 -sr1 .reg %sr1 -sr2 .reg %sr2 -sr3 .reg %sr3 -sr4 .reg %sr4 -sr5 .reg %sr5 -sr6 .reg %sr6 -sr7 .reg %sr7 - -/* - * Control register aliases - */ - -rctr .reg %cr0 -pidr1 .reg %cr8 -pidr2 .reg %cr9 -ccr .reg %cr10 -sar .reg %cr11 -pidr3 .reg %cr12 -pidr4 .reg %cr13 -iva .reg %cr14 -eiem .reg %cr15 -itmr .reg %cr16 -pcsq .reg %cr17 -pcoq .reg %cr18 -iir .reg %cr19 -isr .reg %cr20 -ior .reg %cr21 -ipsw .reg %cr22 -eirr .reg %cr23 - -/* - * Calling Convention - */ -rp .reg %r2 -arg3 .reg %r23 -arg2 .reg %r24 -arg1 .reg %r25 -arg0 .reg %r26 -dp .reg %r27 -ret0 .reg %r28 -ret1 .reg %r29 -sl .reg %r29 -sp .reg %r30 - - diff --git a/c/src/exec/score/cpu/hppa1.1/cpu_asm.s b/c/src/exec/score/cpu/hppa1.1/cpu_asm.s deleted file mode 100644 index 43a5bb2499..0000000000 --- a/c/src/exec/score/cpu/hppa1.1/cpu_asm.s +++ /dev/null @@ -1,797 +0,0 @@ -# @(#)cpu_asm.S 1.5 - 95/04/24 -# -# -# TODO: -# Context_switch needs to only save callee save registers -# I think this means can skip: r1, r2, r19-29, r31 -# Ref: p 3-2 of Procedure Calling Conventions Manual -# This should be #ifndef DEBUG so that debugger has -# accurate visibility into all registers -# -# This file contains the assembly code for the HPPA implementation -# of RTEMS. -# -# COPYRIGHT (c) 1994,95 by Division Incorporated -# -# To anyone who acknowledges that this file is provided "AS IS" -# without any express or implied warranty: -# permission to use, copy, modify, and distribute this file -# for any purpose is hereby granted without fee, provided that -# the above copyright notice and this notice appears in all -# copies, and that the name of Division Incorporated not be -# used in advertising or publicity pertaining to distribution -# of the software without specific, written prior permission. -# Division Incorporated makes no representations about the -# suitability of this software for any purpose. -# -# $Id$ -# - -#include -#include -#include - -#include - - .SPACE $PRIVATE$ - .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 - .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 - .SPACE $TEXT$ - .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44 - .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY - .SPACE $TEXT$ - .SUBSPA $CODE$ - -# -# Special register usage for context switch and interrupts -# Stay away from %cr28 which is used for TLB misses on 72000 -# - -isr_arg0 .reg %cr24 -isr_r9 .reg %cr25 - -# -# Interrupt stack frame looks like this -# -# offset item -# ----------------------------------------------------------------- -# INTEGER_CONTEXT_OFFSET Context_Control -# FP_CONTEXT_OFFSET Context_Control_fp -# -# It is padded out to a multiple of 64 -# - - -# PAGE^L -# void __Generic_ISR_Handler() -# -# This routine provides the RTEMS interrupt management. -# -# NOTE: -# Upon entry, the stack will contain a stack frame back to the -# interrupted task. If dispatching is enabled, this is the -# outer most interrupt, (and a context switch is necessary or -# the current task has signals), then set up the stack to -# transfer control to the interrupt dispatcher. -# -# -# We jump here from the interrupt vector. -# The hardware has done some stuff for us: -# PSW saved in IPSW -# PSW set to 0 -# PSW[E] set to default (0) -# PSW[M] set to 1 iff this is HPMC -# -# IIA queue is frozen (since PSW[Q] is now 0) -# privilege level promoted to 0 -# IIR, ISR, IOR potentially updated if PSW[Q] was 1 at trap -# registers GR 1,8,9,16,17,24,25 copied to shadow regs -# SHR 0 1 2 3 4 5 6 -# -# Our vector stub did the following -# placed vector number is in r1 -# -# stub -# r1 <- vector number -# save ipsw under rock -# ipsw = ipsw & ~1 -- disable ints -# save qregs under rock -# qra = _Generic_ISR_handler -# rfi -# -################################################ - -# Distinct Interrupt Entry Points -# -# The following macro and the 32 instantiations of the macro -# are necessary to determine which interrupt vector occurred. -# The following macro allows a unique entry point to be defined -# for each vector. -# -# r9 was loaded with the vector before branching here -# scratch registers available: gr1, gr8, gr9, gr16, gr17, gr24 -# -# NOTE: -# .align 32 doesn not seem to work in the continuation below -# so just have to count 8 instructions -# -# NOTE: -# this whole scheme needs to be rethought for TLB traps which -# have requirements about what tlb faults they can incur. -# ref: TLB Operation Requirements in 1.1 arch book - -#define THANDLER(vector) \ - mtctl %r9, isr_r9 ! \ - b _Generic_ISR_Handler! \ - ldi vector, %r9! \ - nop ! \ - nop ! \ - nop ! \ - nop ! \ - nop - - .align 4096 - .EXPORT IVA_Table,ENTRY,PRIV_LEV=0 -IVA_Table: - .PROC - .CALLINFO FRAME=0,NO_CALLS - .ENTRY - - THANDLER(0) /* unused */ - - THANDLER(HPPA_INTERRUPT_HIGH_PRIORITY_MACHINE_CHECK) - - THANDLER(HPPA_INTERRUPT_POWER_FAIL) - - THANDLER(HPPA_INTERRUPT_RECOVERY_COUNTER) - - THANDLER(HPPA_INTERRUPT_EXTERNAL_INTERRUPT) - - THANDLER(HPPA_INTERRUPT_LOW_PRIORITY_MACHINE_CHECK) - - THANDLER(HPPA_INTERRUPT_INSTRUCTION_TLB_MISS) - - THANDLER(HPPA_INTERRUPT_INSTRUCTION_MEMORY_PROTECTION) - - THANDLER(HPPA_INTERRUPT_ILLEGAL_INSTRUCTION) - - THANDLER(HPPA_INTERRUPT_BREAK_INSTRUCTION) - - THANDLER(HPPA_INTERRUPT_PRIVILEGED_OPERATION) - - THANDLER(HPPA_INTERRUPT_PRIVILEGED_REGISTER) - - THANDLER(HPPA_INTERRUPT_OVERFLOW) - - THANDLER(HPPA_INTERRUPT_CONDITIONAL) - - THANDLER(HPPA_INTERRUPT_ASSIST_EXCEPTION) - - THANDLER(HPPA_INTERRUPT_DATA_TLB_MISS) - - THANDLER(HPPA_INTERRUPT_NON_ACCESS_INSTRUCTION_TLB_MISS) - - THANDLER(HPPA_INTERRUPT_NON_ACCESS_DATA_TLB_MISS) - - THANDLER(HPPA_INTERRUPT_DATA_MEMORY_PROTECTION) - - THANDLER(HPPA_INTERRUPT_DATA_MEMORY_BREAK) - - THANDLER(HPPA_INTERRUPT_TLB_DIRTY_BIT) - - THANDLER(HPPA_INTERRUPT_PAGE_REFERENCE) - - THANDLER(HPPA_INTERRUPT_ASSIST_EMULATION) - - THANDLER(HPPA_INTERRUPT_HIGHER_PRIVILEGE_TRANSFER) - - THANDLER(HPPA_INTERRUPT_LOWER_PRIVILEGE_TRANSFER) - - THANDLER(HPPA_INTERRUPT_TAKEN_BRANCH) - - THANDLER(HPPA_INTERRUPT_DATA_MEMORY_ACCESS_RIGHTS) - - THANDLER(HPPA_INTERRUPT_DATA_MEMORY_PROTECTION_ID) - - THANDLER(HPPA_INTERRUPT_UNALIGNED_DATA_REFERENCE) - - THANDLER(HPPA_INTERRUPT_PERFORMANCE_MONITOR) - - THANDLER(HPPA_INTERRUPT_INSTRUCTION_DEBUG) - - THANDLER(HPPA_INTERRUPT_DATA_DEBUG) - - .EXIT - .PROCEND - - .EXPORT _Generic_ISR_Handler,ENTRY,PRIV_LEV=0 -_Generic_ISR_Handler: - .PROC - .CALLINFO FRAME=0,NO_CALLS - .ENTRY - -# Turn on the D bit in psw so we can start saving stuff on stack -# (interrupt context pieces that need to be saved before the RFI) - - ssm HPPA_PSW_D, %r0 - mtctl arg0, isr_arg0 - -# save interrupt state - mfctl ipsw, arg0 - stw arg0, IPSW_OFFSET(sp) - - mfctl iir, arg0 - stw arg0, IIR_OFFSET(sp) - - mfctl ior, arg0 - stw arg0, IOR_OFFSET(sp) - - mfctl pcoq, arg0 - stw arg0, PCOQFRONT_OFFSET(sp) - - mtctl %r0, pcoq - mfctl pcoq, arg0 - stw arg0, PCOQBACK_OFFSET(sp) - - mfctl %sar, arg0 - stw arg0, SAR_OFFSET(sp) - -# Prepare to re-enter virtual mode -# We need Q in case the interrupt handler enables interrupts -# - - ldil L%CPU_PSW_DEFAULT, arg0 - ldo R%CPU_PSW_DEFAULT(arg0), arg0 - mtctl arg0, ipsw - -# Now jump to "rest_of_isr_handler" with the rfi -# We are assuming the space queues are all correct already - - ldil L%rest_of_isr_handler, arg0 - ldo R%rest_of_isr_handler(arg0), arg0 - mtctl arg0, pcoq - ldo 4(arg0), arg0 - mtctl arg0, pcoq - - rfi - nop - -# At this point we are back in virtual mode and all our -# normal addressing is once again ok. - -rest_of_isr_handler: - -# -# Build an interrupt frame to hold the contexts we will need. -# We have already saved the interrupt items on the stack - -# At this point the following registers are damaged wrt the interrupt -# reg current value saved value -# ------------------------------------------------ -# arg0 scratch isr_arg0 (ctl) -# r9 vector number isr_r9 (ctl) -# -# Point to beginning of integer context and -# save the integer context - stw %r1,R1_OFFSET(sp) - stw %r2,R2_OFFSET(sp) - stw %r3,R3_OFFSET(sp) - stw %r4,R4_OFFSET(sp) - stw %r5,R5_OFFSET(sp) - stw %r6,R6_OFFSET(sp) - stw %r7,R7_OFFSET(sp) - stw %r8,R8_OFFSET(sp) - stw %r9,R9_OFFSET(sp) - stw %r10,R10_OFFSET(sp) - stw %r11,R11_OFFSET(sp) - stw %r12,R12_OFFSET(sp) - stw %r13,R13_OFFSET(sp) - stw %r14,R14_OFFSET(sp) - stw %r15,R15_OFFSET(sp) - stw %r16,R16_OFFSET(sp) - stw %r17,R17_OFFSET(sp) - stw %r18,R18_OFFSET(sp) - stw %r19,R19_OFFSET(sp) - stw %r20,R20_OFFSET(sp) - stw %r21,R21_OFFSET(sp) - stw %r22,R22_OFFSET(sp) - stw %r23,R23_OFFSET(sp) - stw %r24,R24_OFFSET(sp) - stw %r25,R25_OFFSET(sp) - stw %r26,R26_OFFSET(sp) - stw %r27,R27_OFFSET(sp) - stw %r28,R28_OFFSET(sp) - stw %r29,R29_OFFSET(sp) - stw %r30,R30_OFFSET(sp) - stw %r31,R31_OFFSET(sp) - -# Now most registers are available since they have been saved -# -# The following items are currently wrong in the integer context -# reg current value saved value -# ------------------------------------------------ -# arg0 scratch isr_arg0 (ctl) -# r9 vector number isr_r9 (ctl) -# -# Fix them - - mfctl isr_arg0,%r3 - stw %r3,ARG0_OFFSET(sp) - - mfctl isr_r9,%r3 - stw %r3,R9_OFFSET(sp) - -# -# At this point we are done with isr_arg0, and isr_r9 control registers -# - - -# Point to beginning of float context and -# save the floating point context -- doing whatever patches are necessary - .call ARGW0=GR - bl _CPU_Save_float_context,%r2 - ldo FP_CONTEXT_OFFSET(sp),arg0 - -# save the ptr to interrupt frame as an argument for the interrupt handler - copy sp, arg1 - -# Advance the frame to point beyond all interrupt contexts (integer & float) -# this also includes the pad to align to 64byte stack boundary - ldo CPU_INTERRUPT_FRAME_SIZE(sp), sp - -# r3 -- &_ISR_Nest_level -# r5 -- value _ISR_Nest_level -# r4 -- &_Thread_Dispatch_disable_level -# r6 -- value _Thread_Dispatch_disable_level -# r9 -- vector number - - .import _ISR_Nest_level,data - ldil L%_ISR_Nest_level,%r3 - ldo R%_ISR_Nest_level(%r3),%r3 - ldw 0(%r3),%r5 - - .import _Thread_Dispatch_disable_level,data - ldil L%_Thread_Dispatch_disable_level,%r4 - ldo R%_Thread_Dispatch_disable_level(%r4),%r4 - ldw 0(%r4),%r6 - -# increment interrupt nest level counter. If outermost interrupt -# switch the stack and squirrel away the previous sp. - addi 1,%r5,%r5 - stw %r5, 0(%r3) - -# compute and save new stack (with frame) -# just in case we are nested -- simpler this way - comibf,= 1,%r5,stack_done - ldo 128(sp),%r7 - -# -# Switch to interrupt stack allocated by the interrupt manager (intr.c) -# - .import _CPU_Interrupt_stack_low,data - ldil L%_CPU_Interrupt_stack_low,%r7 - ldw R%_CPU_Interrupt_stack_low(%r7),%r7 - ldo 128(%r7),%r7 - -stack_done: -# save our current stack pointer where the "old sp" is supposed to be - stw sp, -4(%r7) -# and switch stacks (or advance old stack in nested case) - copy %r7, sp - -# increment the dispatch disable level counter. - addi 1,%r6,%r6 - stw %r6, 0(%r4) - -# load address of user handler - .import _ISR_Vector_table,data - ldil L%_ISR_Vector_table,%r8 - ldo R%_ISR_Vector_table(%r8),%r8 - ldwx,s %r9(%r8),%r8 - -# invoke user interrupt handler -# Interrupts are currently disabled, as per RTEMS convention -# The handler has the option of re-enabling interrupts -# NOTE: can not use 'bl' since it uses "pc-relative" addressing -# and we are using a hard coded address from a table -# So... we fudge r2 ourselves (ala dynacall) -# - copy %r9, %r26 - .call ARGW0=GR, ARGW1=GR - blr %r0, rp - bv,n 0(%r8) - -post_user_interrupt_handler: - -# Back from user handler(s) -# Disable external interrupts (since the interrupt handler could -# have turned them on) and return to the interrupted task stack (assuming -# (_ISR_Nest_level == 0) - - rsm HPPA_PSW_I, %r0 - ldw -4(sp), sp - -# r3 -- &_ISR_Nest_level -# r5 -- value _ISR_Nest_level -# r4 -- &_Thread_Dispatch_disable_level -# r6 -- value _Thread_Dispatch_disable_level - - .import _ISR_Nest_level,data - ldil L%_ISR_Nest_level,%r3 - ldo R%_ISR_Nest_level(%r3),%r3 - ldw 0(%r3),%r5 - - .import _Thread_Dispatch_disable_level,data - ldil L%_Thread_Dispatch_disable_level,%r4 - ldo R%_Thread_Dispatch_disable_level(%r4),%r4 - ldw 0(%r4), %r6 - -# decrement isr nest level - addi -1, %r5, %r5 - stw %r5, 0(%r3) - -# decrement dispatch disable level counter and, if not 0, go on - addi -1,%r6,%r6 - comibf,= 0,%r6,isr_restore - stw %r6, 0(%r4) - -# check whether or not a context switch is necessary - .import _Context_Switch_necessary,data - ldil L%_Context_Switch_necessary,%r8 - ldw R%_Context_Switch_necessary(%r8),%r8 - comibf,=,n 0,%r8,ISR_dispatch - -# check whether or not a context switch is necessary because an ISR -# sent signals to the interrupted task - .import _ISR_Signals_to_thread_executing,data - ldil L%_ISR_Signals_to_thread_executing,%r8 - ldw R%_ISR_Signals_to_thread_executing(%r8),%r8 - comibt,=,n 0,%r8,isr_restore - -# OK, something happened while in ISR and we need to switch to a task -# other than the one which was interrupted or the -# ISR_Signals_to_thread_executing case -# We also turn on interrupts, since the interrupted task had them -# on (obviously :-) and Thread_Dispatch is happy to leave ints on. -# - -ISR_dispatch: - ssm HPPA_PSW_I, %r0 - - .import _Thread_Dispatch,code - .call - bl _Thread_Dispatch,%r2 - ldo 128(sp),sp - - ldo -128(sp),sp - - rsm HPPA_PSW_I, %r0 - -isr_restore: - -# Get a pointer to beginning of our stack frame - ldo -CPU_INTERRUPT_FRAME_SIZE(sp), %arg1 - -# restore float - .call ARGW0=GR - bl _CPU_Restore_float_context,%r2 - ldo FP_CONTEXT_OFFSET(%arg1), arg0 - - copy %arg1, %arg0 - -# ********** FALL THRU ********** - -# Jump here from bottom of Context_Switch -# Also called directly by _CPU_Context_Restart_self via _Thread_Restart_self -# restore interrupt state -# - - .EXPORT _CPU_Context_restore -_CPU_Context_restore: - -# Turn off Q & I so we can write pcoq - rsm HPPA_PSW_Q + HPPA_PSW_I, %r0 - - ldw IPSW_OFFSET(arg0), %r8 - mtctl %r8, ipsw - - ldw SAR_OFFSET(arg0), %r9 - mtctl %r9, sar - - ldw PCOQFRONT_OFFSET(arg0), %r10 - mtctl %r10, pcoq - - ldw PCOQBACK_OFFSET(arg0), %r11 - mtctl %r11, pcoq - -# -# restore integer state -# - ldw R1_OFFSET(arg0),%r1 - ldw R2_OFFSET(arg0),%r2 - ldw R3_OFFSET(arg0),%r3 - ldw R4_OFFSET(arg0),%r4 - ldw R5_OFFSET(arg0),%r5 - ldw R6_OFFSET(arg0),%r6 - ldw R7_OFFSET(arg0),%r7 - ldw R8_OFFSET(arg0),%r8 - ldw R9_OFFSET(arg0),%r9 - ldw R10_OFFSET(arg0),%r10 - ldw R11_OFFSET(arg0),%r11 - ldw R12_OFFSET(arg0),%r12 - ldw R13_OFFSET(arg0),%r13 - ldw R14_OFFSET(arg0),%r14 - ldw R15_OFFSET(arg0),%r15 - ldw R16_OFFSET(arg0),%r16 - ldw R17_OFFSET(arg0),%r17 - ldw R18_OFFSET(arg0),%r18 - ldw R19_OFFSET(arg0),%r19 - ldw R20_OFFSET(arg0),%r20 - ldw R21_OFFSET(arg0),%r21 - ldw R22_OFFSET(arg0),%r22 - ldw R23_OFFSET(arg0),%r23 - ldw R24_OFFSET(arg0),%r24 - ldw R25_OFFSET(arg0),%r25 -# skipping r26 (aka arg0) until we are done with it - ldw R27_OFFSET(arg0),%r27 - ldw R28_OFFSET(arg0),%r28 - ldw R29_OFFSET(arg0),%r29 - ldw R30_OFFSET(arg0),%r30 - ldw R31_OFFSET(arg0),%r31 - -# Must load r26 last since it is arg0 - ldw R26_OFFSET(arg0),%r26 - -isr_exit: - rfi - .EXIT - .PROCEND - -# -# This section is used to context switch floating point registers. -# Ref: 6-35 of Architecture 1.1 -# -# NOTE: since integer multiply uses the floating point unit, -# we have to save/restore fp on every trap. We cannot -# just try to keep track of fp usage. - - .align 32 - .EXPORT _CPU_Save_float_context,ENTRY,PRIV_LEV=0 -_CPU_Save_float_context: - .PROC - .CALLINFO FRAME=0,NO_CALLS - .ENTRY - fstds,ma %fr0,8(%arg0) - fstds,ma %fr1,8(%arg0) - fstds,ma %fr2,8(%arg0) - fstds,ma %fr3,8(%arg0) - fstds,ma %fr4,8(%arg0) - fstds,ma %fr5,8(%arg0) - fstds,ma %fr6,8(%arg0) - fstds,ma %fr7,8(%arg0) - fstds,ma %fr8,8(%arg0) - fstds,ma %fr9,8(%arg0) - fstds,ma %fr10,8(%arg0) - fstds,ma %fr11,8(%arg0) - fstds,ma %fr12,8(%arg0) - fstds,ma %fr13,8(%arg0) - fstds,ma %fr14,8(%arg0) - fstds,ma %fr15,8(%arg0) - fstds,ma %fr16,8(%arg0) - fstds,ma %fr17,8(%arg0) - fstds,ma %fr18,8(%arg0) - fstds,ma %fr19,8(%arg0) - fstds,ma %fr20,8(%arg0) - fstds,ma %fr21,8(%arg0) - fstds,ma %fr22,8(%arg0) - fstds,ma %fr23,8(%arg0) - fstds,ma %fr24,8(%arg0) - fstds,ma %fr25,8(%arg0) - fstds,ma %fr26,8(%arg0) - fstds,ma %fr27,8(%arg0) - fstds,ma %fr28,8(%arg0) - fstds,ma %fr29,8(%arg0) - fstds,ma %fr30,8(%arg0) - fstds %fr31,0(%arg0) - bv 0(%r2) - addi -(31*8), %arg0, %arg0 ; restore arg0 just for fun - .EXIT - .PROCEND - - .align 32 - .EXPORT _CPU_Restore_float_context,ENTRY,PRIV_LEV=0 -_CPU_Restore_float_context: - .PROC - .CALLINFO FRAME=0,NO_CALLS - .ENTRY - addi (31*8), %arg0, %arg0 ; point at last double - fldds 0(%arg0),%fr31 - fldds,mb -8(%arg0),%fr30 - fldds,mb -8(%arg0),%fr29 - fldds,mb -8(%arg0),%fr28 - fldds,mb -8(%arg0),%fr27 - fldds,mb -8(%arg0),%fr26 - fldds,mb -8(%arg0),%fr25 - fldds,mb -8(%arg0),%fr24 - fldds,mb -8(%arg0),%fr23 - fldds,mb -8(%arg0),%fr22 - fldds,mb -8(%arg0),%fr21 - fldds,mb -8(%arg0),%fr20 - fldds,mb -8(%arg0),%fr19 - fldds,mb -8(%arg0),%fr18 - fldds,mb -8(%arg0),%fr17 - fldds,mb -8(%arg0),%fr16 - fldds,mb -8(%arg0),%fr15 - fldds,mb -8(%arg0),%fr14 - fldds,mb -8(%arg0),%fr13 - fldds,mb -8(%arg0),%fr12 - fldds,mb -8(%arg0),%fr11 - fldds,mb -8(%arg0),%fr10 - fldds,mb -8(%arg0),%fr9 - fldds,mb -8(%arg0),%fr8 - fldds,mb -8(%arg0),%fr7 - fldds,mb -8(%arg0),%fr6 - fldds,mb -8(%arg0),%fr5 - fldds,mb -8(%arg0),%fr4 - fldds,mb -8(%arg0),%fr3 - fldds,mb -8(%arg0),%fr2 - fldds,mb -8(%arg0),%fr1 - bv 0(%r2) - fldds,mb -8(%arg0),%fr0 - .EXIT - .PROCEND - -# -# These 2 small routines are unused right now. -# Normally we just go thru _CPU_Save_float_context (and Restore) -# -# Here we just deref the ptr and jump up, letting _CPU_Save_float_context -# do the return for us. -# - .EXPORT _CPU_Context_save_fp,ENTRY,PRIV_LEV=0 -_CPU_Context_save_fp: - .PROC - .CALLINFO FRAME=0,NO_CALLS - .ENTRY - bl _CPU_Save_float_context, %r0 - ldw 0(%arg0), %arg0 - .EXIT - .PROCEND - - .EXPORT _CPU_Context_restore_fp,ENTRY,PRIV_LEV=0 -_CPU_Context_restore_fp: - .PROC - .CALLINFO FRAME=0,NO_CALLS - .ENTRY - bl _CPU_Restore_float_context, %r0 - ldw 0(%arg0), %arg0 - .EXIT - .PROCEND - - -# void _CPU_Context_switch( run_context, heir_context ) -# -# This routine performs a normal non-FP context switch. -# - - .align 32 - .EXPORT _CPU_Context_switch,ENTRY,PRIV_LEV=0,ARGW0=GR,ARGW1=GR -_CPU_Context_switch: - .PROC - .CALLINFO FRAME=64 - .ENTRY - -# Save the integer context - stw %r1,R1_OFFSET(arg0) - stw %r2,R2_OFFSET(arg0) - stw %r3,R3_OFFSET(arg0) - stw %r4,R4_OFFSET(arg0) - stw %r5,R5_OFFSET(arg0) - stw %r6,R6_OFFSET(arg0) - stw %r7,R7_OFFSET(arg0) - stw %r8,R8_OFFSET(arg0) - stw %r9,R9_OFFSET(arg0) - stw %r10,R10_OFFSET(arg0) - stw %r11,R11_OFFSET(arg0) - stw %r12,R12_OFFSET(arg0) - stw %r13,R13_OFFSET(arg0) - stw %r14,R14_OFFSET(arg0) - stw %r15,R15_OFFSET(arg0) - stw %r16,R16_OFFSET(arg0) - stw %r17,R17_OFFSET(arg0) - stw %r18,R18_OFFSET(arg0) - stw %r19,R19_OFFSET(arg0) - stw %r20,R20_OFFSET(arg0) - stw %r21,R21_OFFSET(arg0) - stw %r22,R22_OFFSET(arg0) - stw %r23,R23_OFFSET(arg0) - stw %r24,R24_OFFSET(arg0) - stw %r25,R25_OFFSET(arg0) - stw %r26,R26_OFFSET(arg0) - stw %r27,R27_OFFSET(arg0) - stw %r28,R28_OFFSET(arg0) - stw %r29,R29_OFFSET(arg0) - stw %r30,R30_OFFSET(arg0) - stw %r31,R31_OFFSET(arg0) - -# fill in interrupt context section - stw %r2, PCOQFRONT_OFFSET(%arg0) - ldo 4(%r2), %r2 - stw %r2, PCOQBACK_OFFSET(%arg0) - -# Generate a suitable IPSW by using the system default psw -# with the current low bits added in. - - ldil L%CPU_PSW_DEFAULT, %r2 - ldo R%CPU_PSW_DEFAULT(%r2), %r2 - ssm 0, %arg2 - dep %arg2, 31, 8, %r2 - stw %r2, IPSW_OFFSET(%arg0) - -# at this point, the running task context is completely saved -# Now jump to the bottom of the interrupt handler to load the -# heirs context - - b _CPU_Context_restore - copy %arg1, %arg0 - - .EXIT - .PROCEND - - -/* - * Find first bit - * NOTE: - * This is used (and written) only for the ready chain code and - * priority bit maps. - * Any other use constitutes fraud. - * Returns first bit from the least significant side. - * Eg: if input is 0x8001 - * output will indicate the '1' bit and return 0. - * This is counter to HPPA bit numbering which calls this - * bit 31. This way simplifies the macros _CPU_Priority_Mask - * and _CPU_Priority_Bits_index. - * - * NOTE: - * We just use 16 bit version - * does not handle zero case - * - * Based on the UTAH Mach libc version of ffs. - */ - - .align 32 - .EXPORT hppa_rtems_ffs,ENTRY,PRIV_LEV=0,ARGW0=GR -hppa_rtems_ffs: - .PROC - .CALLINFO FRAME=0,NO_CALLS - .ENTRY - -#ifdef RETURN_ERROR_ON_ZERO - comb,= %arg0,%r0,ffsdone ; If arg0 is 0 - ldi -1,%ret0 ; return -1 -#endif - -#if BITFIELD_SIZE == 32 - ldi 31,%ret0 ; Set return to high bit - extru,= %arg0,31,16,%r0 ; If low 16 bits are non-zero - addi,tr -16,%ret0,%ret0 ; subtract 16 from bitpos - shd %r0,%arg0,16,%arg0 ; else shift right 16 bits -#else - ldi 15,%ret0 ; Set return to high bit -#endif - extru,= %arg0,31,8,%r0 ; If low 8 bits are non-zero - addi,tr -8,%ret0,%ret0 ; subtract 8 from bitpos - shd %r0,%arg0,8,%arg0 ; else shift right 8 bits - extru,= %arg0,31,4,%r0 ; If low 4 bits are non-zero - addi,tr -4,%ret0,%ret0 ; subtract 4 from bitpos - shd %r0,%arg0,4,%arg0 ; else shift right 4 bits - extru,= %arg0,31,2,%r0 ; If low 2 bits are non-zero - addi,tr -2,%ret0,%ret0 ; subtract 2 from bitpos - shd %r0,%arg0,2,%arg0 ; else shift right 2 bits - extru,= %arg0,31,1,%r0 ; If low bit is non-zero - addi -1,%ret0,%ret0 ; subtract 1 from bitpos -ffsdone: - bv,n 0(%r2) - nop - .EXIT - .PROCEND diff --git a/c/src/exec/score/cpu/hppa1.1/hppa.h b/c/src/exec/score/cpu/hppa1.1/hppa.h deleted file mode 100644 index 8829bb8c87..0000000000 --- a/c/src/exec/score/cpu/hppa1.1/hppa.h +++ /dev/null @@ -1,704 +0,0 @@ -/* - * @(#)hppa.h 1.5 - 95/04/25 - * - * - * File: $RCSfile$ - * Project: PixelFlow - * Created: 94/10/4 - * RespEngr: tony bennett - * Revision: $Revision$ - * Last Mod: $Date$ - * - * Description: - * - * Definitions for HP PA Risc - * ref: PA RISC 1.1 Architecture and Instruction Set Reference Manual - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * - * Note: - * This file is included by both C and assembler code ( -DASM ) - * - * $Id$ - */ - -#ifndef _INCLUDE_HPPA_H -#define _INCLUDE_HPPA_H - -#if defined(__cplusplus) -extern "C" { -#endif - -/* - * The following define the CPU Family and Model within the family - * - * NOTE: The string "REPLACE_THIS_WITH_THE_CPU_MODEL" is replaced - * with the name of the appropriate macro for this target CPU. - */ - -#define hppa1_1 -#define REPLACE_THIS_WITH_THE_CPU_MODEL -#define REPLACE_THIS_WITH_THE_BSP - -/* - * This section contains the information required to build - * RTEMS for a particular member of the Hewlett Packard - * PA-RISC family. It does this by setting variables to - * indicate which implementation dependent features are - * present in a particular member of the family. - */ - -#if defined(hppa7100) - -#define RTEMS_MODEL_NAME "hppa 7100" - -#elif defined(hppa7200) - -#define RTEMS_MODEL_NAME "hppa 7200" - -#else - -#error "Unsupported CPU Model" - -#endif - -/* - * Define the name of the CPU family. - */ - -#define CPU_NAME "HP PA-RISC 1.1" - -#ifndef ASM -/* - * This section defines the basic types for this processor. - */ - -typedef unsigned char unsigned8; /* 8-bit unsigned integer */ -typedef unsigned short unsigned16; /* 16-bit unsigned integer */ -typedef unsigned int unsigned32; /* 32-bit unsigned integer */ -typedef unsigned long long unsigned64; /* 64-bit unsigned integer */ - -typedef unsigned16 Priority_Bit_map_control; - -typedef char signed8; /* 8-bit signed integer */ -typedef short signed16; /* 16-bit signed integer */ -typedef int signed32; /* 32-bit signed integer */ -typedef long long signed64; /* 64 bit signed integer */ - -typedef unsigned32 boolean; /* Boolean value */ - -typedef float single_precision; /* single precision float */ -typedef double double_precision; /* double precision float */ - -#endif /* !ASM */ - - -/* - * Processor Status Word (PSW) Masks - */ - -#define HPPA_PSW_Y 0x80000000 /* Data Debug Trap Disable */ -#define HPPA_PSW_Z 0x40000000 /* Instruction Debug Trap Disable */ -#define HPPA_PSW_r2 0x20000000 /* reserved */ -#define HPPA_PSW_r3 0x10000000 /* reserved */ -#define HPPA_PSW_r4 0x08000000 /* reserved */ -#define HPPA_PSW_E 0x04000000 /* Little Endian on Memory References */ -#define HPPA_PSW_S 0x02000000 /* Secure Interval Timer */ -#define HPPA_PSW_T 0x01000000 /* Taken Branch Trap Enable */ -#define HPPA_PSW_H 0x00800000 /* Higher-Privilege Transfer Trap Enable*/ -#define HPPA_PSW_L 0x00400000 /* Lower-Privilege Transfer Trap Enable */ -#define HPPA_PSW_N 0x00200000 /* PC Queue Front Instruction Nullified */ -#define HPPA_PSW_X 0x00100000 /* Data Memory Break Disable */ -#define HPPA_PSW_B 0x00080000 /* Taken Branch in Previous Cycle */ -#define HPPA_PSW_C 0x00040000 /* Code Address Translation Enable */ -#define HPPA_PSW_V 0x00020000 /* Divide Step Correction */ -#define HPPA_PSW_M 0x00010000 /* High-Priority Machine Check Disable */ -#define HPPA_PSW_CB 0x0000ff00 /* Carry/Borrow Bits */ -#define HPPA_PSW_r24 0x00000080 /* reserved */ -#define HPPA_PSW_G 0x00000040 /* Debug trap Enable */ -#define HPPA_PSW_F 0x00000020 /* Performance monitor interrupt unmask */ -#define HPPA_PSW_R 0x00000010 /* Recovery Counter Enable */ -#define HPPA_PSW_Q 0x00000008 /* Interruption State Collection Enable */ -#define HPPA_PSW_P 0x00000004 /* Protection ID Validation Enable */ -#define HPPA_PSW_D 0x00000002 /* Data Address Translation Enable */ -#define HPPA_PSW_I 0x00000001 /* External, Power Failure, */ - /* Low-Priority Machine Check */ - /* Interruption Enable */ - -/* - * HPPA traps and interrupts - * basic layout. Note numbers do not denote priority - * - * 0-31 basic traps and interrupts defined by HPPA architecture - * 32-63 32 external interrupts - * 64-... bsp defined - */ - -#define HPPA_INTERRUPT_NON_EXISTENT 0 -/* group 1 */ -#define HPPA_INTERRUPT_HIGH_PRIORITY_MACHINE_CHECK 1 -/* group 2 */ -#define HPPA_INTERRUPT_POWER_FAIL 2 -#define HPPA_INTERRUPT_RECOVERY_COUNTER 3 -#define HPPA_INTERRUPT_EXTERNAL_INTERRUPT 4 -#define HPPA_INTERRUPT_LOW_PRIORITY_MACHINE_CHECK 5 -#define HPPA_INTERRUPT_PERFORMANCE_MONITOR 29 -/* group 3 */ -#define HPPA_INTERRUPT_INSTRUCTION_TLB_MISS 6 -#define HPPA_INTERRUPT_INSTRUCTION_MEMORY_PROTECTION 7 -#define HPPA_INTERRUPT_INSTRUCTION_DEBUG 30 -#define HPPA_INTERRUPT_ILLEGAL_INSTRUCTION 8 -#define HPPA_INTERRUPT_BREAK_INSTRUCTION 9 -#define HPPA_INTERRUPT_PRIVILEGED_OPERATION 10 -#define HPPA_INTERRUPT_PRIVILEGED_REGISTER 11 -#define HPPA_INTERRUPT_OVERFLOW 12 -#define HPPA_INTERRUPT_CONDITIONAL 13 -#define HPPA_INTERRUPT_ASSIST_EXCEPTION 14 -#define HPPA_INTERRUPT_DATA_TLB_MISS 15 -#define HPPA_INTERRUPT_NON_ACCESS_INSTRUCTION_TLB_MISS 16 -#define HPPA_INTERRUPT_NON_ACCESS_DATA_TLB_MISS 17 -#define HPPA_INTERRUPT_DATA_MEMORY_ACCESS_RIGHTS 26 -#define HPPA_INTERRUPT_DATA_MEMORY_PROTECTION_ID 27 -#define HPPA_INTERRUPT_UNALIGNED_DATA_REFERENCE 28 -#define HPPA_INTERRUPT_DATA_MEMORY_PROTECTION 18 -#define HPPA_INTERRUPT_DATA_MEMORY_BREAK 19 -#define HPPA_INTERRUPT_TLB_DIRTY_BIT 20 -#define HPPA_INTERRUPT_PAGE_REFERENCE 21 -#define HPPA_INTERRUPT_DATA_DEBUG 31 -#define HPPA_INTERRUPT_ASSIST_EMULATION 22 -/* group 4 */ -#define HPPA_INTERRUPT_HIGHER_PRIVILEGE_TRANSFER 23 -#define HPPA_INTERRUPT_LOWER_PRIVILEGE_TRANSFER 24 -#define HPPA_INTERRUPT_TAKEN_BRANCH 25 - -#define HPPA_INTERRUPT_ON_CHIP_MAX 31 - -/* External Interrupts via interrupt 4 */ - -#define HPPA_INTERRUPT_EXTERNAL_BASE 32 - -#define HPPA_INTERRUPT_EXTERNAL_0 32 -#define HPPA_INTERRUPT_EXTERNAL_1 33 -#define HPPA_INTERRUPT_EXTERNAL_2 34 -#define HPPA_INTERRUPT_EXTERNAL_3 35 -#define HPPA_INTERRUPT_EXTERNAL_4 36 -#define HPPA_INTERRUPT_EXTERNAL_5 37 -#define HPPA_INTERRUPT_EXTERNAL_6 38 -#define HPPA_INTERRUPT_EXTERNAL_7 39 -#define HPPA_INTERRUPT_EXTERNAL_8 40 -#define HPPA_INTERRUPT_EXTERNAL_9 41 -#define HPPA_INTERRUPT_EXTERNAL_10 42 -#define HPPA_INTERRUPT_EXTERNAL_11 43 -#define HPPA_INTERRUPT_EXTERNAL_12 44 -#define HPPA_INTERRUPT_EXTERNAL_13 45 -#define HPPA_INTERRUPT_EXTERNAL_14 46 -#define HPPA_INTERRUPT_EXTERNAL_15 47 -#define HPPA_INTERRUPT_EXTERNAL_16 48 -#define HPPA_INTERRUPT_EXTERNAL_17 49 -#define HPPA_INTERRUPT_EXTERNAL_18 50 -#define HPPA_INTERRUPT_EXTERNAL_19 51 -#define HPPA_INTERRUPT_EXTERNAL_20 52 -#define HPPA_INTERRUPT_EXTERNAL_21 53 -#define HPPA_INTERRUPT_EXTERNAL_22 54 -#define HPPA_INTERRUPT_EXTERNAL_23 55 -#define HPPA_INTERRUPT_EXTERNAL_24 56 -#define HPPA_INTERRUPT_EXTERNAL_25 57 -#define HPPA_INTERRUPT_EXTERNAL_26 58 -#define HPPA_INTERRUPT_EXTERNAL_27 59 -#define HPPA_INTERRUPT_EXTERNAL_28 60 -#define HPPA_INTERRUPT_EXTERNAL_29 61 -#define HPPA_INTERRUPT_EXTERNAL_30 62 -#define HPPA_INTERRUPT_EXTERNAL_31 63 - -#define HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER HPPA_INTERRUPT_EXTERNAL_0 -#define HPPA_EXTERNAL_INTERRUPTS 32 - -/* BSP defined interrupts begin here */ - -#define HPPA_INTERRUPT_MAX 64 - -/* - * Inline macros for misc. interesting opcodes - */ - -/* generate a global label */ -#define HPPA_ASM_LABEL(label) \ - asm(".export " label ", ! .label " label); - -/* Return From Interrupt RFI */ -#define HPPA_ASM_RFI() asm volatile ("rfi") - -/* Set System Mask SSM i,t */ -#define HPPA_ASM_SSM(i,gr) asm volatile ("ssm %1, %0" \ - : "=r" (gr) \ - : "i" (i)) -/* Reset System Mask RSM i,t */ -#define HPPA_ASM_RSM(i,gr) asm volatile ("rsm %1, %0" \ - : "=r" (gr) \ - : "i" (i)) -/* Move To System Mask MTSM r */ -#define HPPA_ASM_MTSM(gr) asm volatile ("mtsm %0" \ - : : "r" (gr)) - -/* Load Space Identifier LDSID (s,b),t */ -#define HPPA_ASM_LDSID(sr,grb,grt) asm volatile ("ldsid (%1,%2),%0" \ - : "=r" (grt) \ - : "i" (sr), \ - "r" (grb)) - -/* - * Gcc extended asm doesn't really allow for treatment of space registers - * as "registers", so we have to use "i" format. - * Unfortunately this means that the "=" constraint is not available. - */ - -/* Move To Space Register MTSP r,sr */ -#define HPPA_ASM_MTSP(gr,sr) asm volatile ("mtsp %1,%0" \ - : : "i" (sr), \ - "r" (gr)) - -/* Move From Space Register MFSP sr,t */ -#define HPPA_ASM_MFSP(sr,gr) asm volatile ("mfsp %1,%0" \ - : "=r" (gr) \ - : "i" (sr)) - -/* Move To Control register MTCTL r,t */ -#define HPPA_ASM_MTCTL(gr,cr) asm volatile ("mtctl %1,%0" \ - : : "i" (cr), \ - "r" (gr)) - -/* Move From Control register MFCTL r,t */ -#define HPPA_ASM_MFCTL(cr,gr) asm volatile ("mfctl %1,%0" \ - : "=r" (gr) \ - : "i" (cr)) - -/* Synchronize caches SYNC */ -#define HPPA_ASM_SYNC() asm volatile ("sync") - -/* Probe Read Access PROBER (s,b),r,t */ -#define HPPA_ASM_PROBER(sr,groff,gracc,grt) \ - asm volatile ("prober (%1,%2),%3,%0" \ - : "=r" (grt) \ - : "i" (sr), \ - "r" (groff), \ - "r" (gracc)) - -/* Probe Read Access Immediate PROBERI (s,b),i,t*/ -#define HPPA_ASM_PROBERI(sr,groff,iacc,grt) \ - asm volatile ("proberi (%1,%2),%3,%0" \ - : "=r" (grt) \ - : "i" (sr), \ - "r" (groff), \ - "i" (iacc)) - -/* Probe Write Access PROBEW (s,b),r,t */ -#define HPPA_ASM_PROBEW(sr,groff,gracc,grt) \ - asm volatile ("probew (%1,%2),%3,%0" \ - : "=r" (grt) \ - : "i" (sr), \ - "r" (groff), \ - "r" (gracc)) - -/* Probe Write Access Immediate PROBEWI (s,b),i,t */ -#define HPPA_ASM_PROBEWI(sr,groff,iacc,grt) \ - asm volatile ("probewi (%1,%2),%3,%0" \ - : "=r" (grt) \ - : "i" (sr), \ - "r" (groff), \ - "i" (iacc)) - -/* Load Physical Address LPA x(s,b),t */ -#define HPPA_ASM_LPA(sr,grb,grt) asm volatile ("lpa %%r0(%1,%2),%0" \ - : "=r" (grt) \ - : "i" (sr), \ - "r" (grb)) - -/* Load Coherence Index LCI x(s,b),t */ -/* AKA: Load Hash Address LHA x(s,b),t */ -#define HPPA_ASM_LCI(grx,sr,grb,grt) asm volatile ("lha %1(%2,%3),%0" \ - : "=r" (grt) \ - : "r" (grx),\ - "i" (sr), \ - "r" (grb)) -#define HPPA_ASM_LHA(grx,sr,grb,grt) HPPA_ASM_LCI(grx,sr,grb,grt) - -/* Purge Data Tlb PDTLB x(s,b) */ -#define HPPA_ASM_PDTLB(grx,sr,grb) asm volatile ("pdtlb %0(%1,%2)" \ - : : "r" (grx), \ - "i" (sr), \ - "r" (grb)) - -/* Purge Instruction Tlb PITLB x(s,b) */ -#define HPPA_ASM_PITLB(grx,sr,grb) asm volatile ("pitlb %0(%1,%2)" \ - : : "r" (grx), \ - "i" (sr), \ - "r" (grb)) - -/* Purge Data Tlb Entry PDTLBE x(s,b) */ -#define HPPA_ASM_PDTLBE(grx,sr,grb) asm volatile ("pdtlbe %0(%1,%2)" \ - : : "r" (grx), \ - "i" (sr), \ - "r" (grb)) - -/* Purge Instruction Tlb Entry PITLBE x(s,b) */ -#define HPPA_ASM_PITLBE(grx,sr,grb) asm volatile ("pitlbe %0(%1,%2)" \ - : : "r" (grx), \ - "i" (sr), \ - "r" (grb)) - - -/* Insert Data TLB Address IDTLBA r,(s,b) */ -#define HPPA_ASM_IDTLBA(gr,sr,grb) asm volatile ("idtlba %0,(%1,%2)" \ - : : "r" (gr), \ - "i" (sr), \ - "r" (grb)) - -/* Insert Instruction TLB Address IITLBA r,(s,b) */ -#define HPPA_ASM_IITLBA(gr,sr,grb) asm volatile ("iitlba %0,(%1,%2)" \ - : : "r" (gr), \ - "i" (sr), \ - "r" (grb)) - -/* Insert Data TLB Protection IDTLBP r,(s,b) */ -#define HPPA_ASM_IDTLBP(gr,sr,grb) asm volatile ("idtlbp %0,(%1,%2)" \ - : : "r" (gr), \ - "i" (sr), \ - "r" (grb)) - -/* Insert Instruction TLB Protection IITLBP r,(s,b) */ -#define HPPA_ASM_IITLBP(gr,sr,grb) asm volatile ("iitlbp %0,(%1,%2)" \ - : : "r" (gr), \ - "i" (sr), \ - "r" (grb)) - -/* Purge Data Cache PDC x(s,b) */ -#define HPPA_ASM_PDC(grx,sr,grb) asm volatile ("pdc %0(%1,%2)" \ - : : "r" (grx), \ - "i" (sr), \ - "r" (grb)) - -/* Flush Data Cache FDC x(s,b) */ -#define HPPA_ASM_FDC(grx,sr,grb) asm volatile ("fdc %0(%1,%2)" \ - : : "r" (grx), \ - "i" (sr), \ - "r" (grb)) - -/* Flush Instruction Cache FDC x(s,b) */ -#define HPPA_ASM_FIC(grx,sr,grb) asm volatile ("fic %0(%1,%2)" \ - : : "r" (grx), \ - "i" (sr), \ - "r" (grb)) - -/* Flush Data Cache Entry FDCE x(s,b) */ -#define HPPA_ASM_FDCE(grx,sr,grb) asm volatile ("fdce %0(%1,%2)" \ - : : "r" (grx), \ - "i" (sr), \ - "r" (grb)) - -/* Flush Instruction Cache Entry FICE x(s,b) */ -#define HPPA_ASM_FICE(grx,sr,grb) asm volatile ("fice %0(%1,%2)" \ - : : "r" (grx), \ - "i" (sr), \ - "r" (grb)) - -/* Break BREAK i5,i13 */ -#define HPPA_ASM_BREAK(i5,i13) asm volatile ("break %0,%1" \ - : : "i" (i5), \ - "i" (i13)) - -/* Load and Clear Word Short LDCWS d(s,b),t */ -#define HPPA_ASM_LDCWS(i,sr,grb,grt) asm volatile ("ldcws %1(%2,%3),%0" \ - : "=r" (grt) \ - : "i" (i), \ - "i" (sr), \ - "r" (grb)) - -/* Load and Clear Word Indexed LDCWX x(s,b),t */ -#define HPPA_ASM_LDCWX(grx,sr,grb,grt) asm volatile ("ldcwx %1(%2,%3),%0" \ - : "=r" (grt) \ - : "r" (grx), \ - "i" (sr), \ - "r" (grb)) - -/* Load Word Absolute Short LDWAS d(b),t */ -/* NOTE: "short" here means "short displacement" */ -#define HPPA_ASM_LDWAS(disp,grbase,gr) asm volatile("ldwas %1(%2),%0" \ - : "=r" (gr) \ - : "i" (disp), \ - "r" (grbase)) - -/* Store Word Absolute Short STWAS r,d(b) */ -/* NOTE: "short" here means "short displacement" */ -#define HPPA_ASM_STWAS(gr,disp,grbase) asm volatile("stwas %0,%1(%2)" \ - : : "r" (gr), \ - "i" (disp), \ - "r" (grbase)) - -/* - * Swap bytes - * REFERENCE: PA72000 TRM -- Appendix C - */ -#define HPPA_ASM_SWAPBYTES(value, swapped) asm volatile( \ - " shd %1,%1,16,%0 \n\ - dep %0,15,8,%0 \n\ - shd %1,%0,8,%0" \ - : "=r" (swapped) \ - : "r" (value) \ - ) - - -/* 72000 Diagnose instructions follow - * These macros assume gas knows about these instructions. - * gas2.2.u1 did not. - * I added them to my copy and installed it locally. - * - * There are *very* special requirements for these guys - * ref: TRM 6.1.3 Programming Constraints - * - * The macros below handle the following rules - * - * Except for WIT, WDT, WDD, WIDO, WIDE, all DIAGNOSE must be doubled. - * Must never be nullified (hence the leading nop) - * NOP must preced every RDD,RDT,WDD,WDT,RDTLB - * Instruction preceeding GR_SHDW must not set any of the GR's saved - * - * The macros do *NOT* deal with the following problems - * doubled DIAGNOSE instructions must not straddle a page boundary - * if code translation enabled. (since 2nd could trap on ITLB) - * If you care about DHIT and DPE bits of DR0, then - * No store instruction in the 2 insn window before RDD - */ - - -/* Move To CPU/DIAG register MTCPU r,t */ -#define HPPA_ASM_MTCPU(gr,dr) asm volatile (" nop \n" \ - " mtcpu %1,%0 \n" \ - " mtcpu %1,%0" \ - : : "i" (dr), \ - "r" (gr)) - -/* Move From CPU/DIAG register MFCPU r,t */ -#define HPPA_ASM_MFCPU(dr,gr) asm volatile (" nop \n" \ - " mfcpu %1,%0\n" \ - " mfcpu %1,%0" \ - : "=r" (gr) \ - : "i" (dr)) - -/* Transfer of Control Enable TOC_EN */ -#define HPPA_ASM_TOC_EN() asm volatile (" tocen \n" \ - " tocen") - -/* Transfer of Control Disable TOC_DIS */ -#define HPPA_ASM_TOC_DIS() asm volatile (" tocdis \n" \ - " tocdis") - -/* Shadow Registers to General Register SHDW_GR */ -#define HPPA_ASM_SHDW_GR() asm volatile (" shdwgr \n" \ - " shdwgr" \ - ::: "r1" "r8" "r9" "r16" \ - "r17" "r24" "r25") - -/* General Registers to Shadow Register GR_SHDW */ -#define HPPA_ASM_GR_SHDW() asm volatile (" nop \n" \ - " grshdw \n" \ - " grshdw") - -/* - * Definitions of special registers for use by the above macros. - */ - -/* Hardware Space Registers */ -#define SR0 0 -#define SR1 1 -#define SR2 2 -#define SR3 3 -#define SR4 4 -#define SR5 5 -#define SR6 6 -#define SR7 7 - -/* Hardware Control Registers */ -#define CR0 0 -#define RCTR 0 /* Recovery Counter Register */ - -#define CR8 8 /* Protection ID 1 */ -#define PIDR1 8 - -#define CR9 9 /* Protection ID 2 */ -#define PIDR2 9 - -#define CR10 10 -#define CCR 10 /* Coprocessor Confiquration Register */ - -#define CR11 11 -#define SAR 11 /* Shift Amount Register */ - -#define CR12 12 -#define PIDR3 12 /* Protection ID 3 */ - -#define CR13 13 -#define PIDR4 13 /* Protection ID 4 */ - -#define CR14 14 -#define IVA 14 /* Interrupt Vector Address */ - -#define CR15 15 -#define EIEM 15 /* External Interrupt Enable Mask */ - -#define CR16 16 -#define ITMR 16 /* Interval Timer */ - -#define CR17 17 -#define PCSQ 17 /* Program Counter Space queue */ - -#define CR18 18 -#define PCOQ 18 /* Program Counter Offset queue */ - -#define CR19 19 -#define IIR 19 /* Interruption Instruction Register */ - -#define CR20 20 -#define ISR 20 /* Interruption Space Register */ - -#define CR21 21 -#define IOR 21 /* Interruption Offset Register */ - -#define CR22 22 -#define IPSW 22 /* Interrpution Processor Status Word */ - -#define CR23 23 -#define EIRR 23 /* External Interrupt Request */ - -#define CR24 24 -#define PPDA 24 /* Physcial Page Directory Address */ -#define TR0 24 /* Temporary register 0 */ - -#define CR25 25 -#define HTA 25 /* Hash Table Address */ -#define TR1 25 /* Temporary register 1 */ - -#define CR26 26 -#define TR2 26 /* Temporary register 2 */ - -#define CR27 27 -#define TR3 27 /* Temporary register 3 */ - -#define CR28 28 -#define TR4 28 /* Temporary register 4 */ - -#define CR29 29 -#define TR5 29 /* Temporary register 5 */ - -#define CR30 30 -#define TR6 30 /* Temporary register 6 */ - -#define CR31 31 -#define CPUID 31 /* MP identifier */ - -/* - * Diagnose registers - */ - -#define DR0 0 -#define DR1 1 -#define DR8 8 -#define DR24 24 -#define DR25 25 - -/* - * Tear apart a break instruction to find its type. - */ -#define HPPA_BREAK5(x) ((x) & 0x1F) -#define HPPA_BREAK13(x) (((x) >> 13) & 0x1FFF) - -/* assemble a break instruction */ -#define HPPA_BREAK(i5,i13) (((i5) & 0x1F) | (((i13) & 0x1FFF) << 13)) - - -#ifndef ASM - -/* - * static inline utility functions to get at control registers - */ - -#define EMIT_GET_CONTROL(name, reg) \ -static __inline__ unsigned int \ -get_ ## name (void) \ -{ \ - unsigned int value; \ - HPPA_ASM_MFCTL(reg, value); \ - return value; \ -} - -#define EMIT_SET_CONTROL(name, reg) \ -static __inline__ unsigned int \ -set_ ## name (unsigned int new_value) \ -{ \ - HPPA_ASM_MTCTL(new_value, reg); \ -} - -#define EMIT_CONTROLS(name, reg) \ - EMIT_GET_CONTROL(name, reg) \ - EMIT_SET_CONTROL(name, reg) - -EMIT_CONTROLS(recovery, RCTR); /* CR0 */ -EMIT_CONTROLS(pid1, PIDR1); /* CR8 */ -EMIT_CONTROLS(pid2, PIDR2); /* CR9 */ -EMIT_CONTROLS(ccr, CCR); /* CR10; CCR and SCR share CR10 */ -EMIT_CONTROLS(scr, CCR); /* CR10; CCR and SCR share CR10 */ -EMIT_CONTROLS(sar, SAR); /* CR11 */ -EMIT_CONTROLS(pid3, PIDR3); /* CR12 */ -EMIT_CONTROLS(pid4, PIDR4); /* CR13 */ -EMIT_CONTROLS(iva, IVA); /* CR14 */ -EMIT_CONTROLS(eiem, EIEM); /* CR15 */ -EMIT_CONTROLS(itimer, ITMR); /* CR16 */ -EMIT_CONTROLS(pcsq, PCSQ); /* CR17 */ -EMIT_CONTROLS(pcoq, PCOQ); /* CR18 */ -EMIT_CONTROLS(iir, IIR); /* CR19 */ -EMIT_CONTROLS(isr, ISR); /* CR20 */ -EMIT_CONTROLS(ior, IOR); /* CR21 */ -EMIT_CONTROLS(ipsw, IPSW); /* CR22 */ -EMIT_CONTROLS(eirr, EIRR); /* CR23 */ -EMIT_CONTROLS(tr0, TR0); /* CR24 */ -EMIT_CONTROLS(tr1, TR1); /* CR25 */ -EMIT_CONTROLS(tr2, TR2); /* CR26 */ -EMIT_CONTROLS(tr3, TR3); /* CR27 */ -EMIT_CONTROLS(tr4, TR4); /* CR28 */ -EMIT_CONTROLS(tr5, TR5); /* CR29 */ -EMIT_CONTROLS(tr6, TR6); /* CR30 */ -EMIT_CONTROLS(tr7, CR31); /* CR31 */ - -/* - * If and How to invoke the debugger (a ROM debugger generally) - */ - -#ifdef SIMHPPA_ROM -/* invoke the pflow debugger */ -#define CPU_INVOKE_DEBUGGER \ - do { \ - extern void debugger_break(void); \ - debugger_break(); \ - } while (0) -#endif - - -#endif /* ASM */ - -#ifdef __cplusplus -} -#endif - -#endif /* ! _INCLUDE_HPPA_H */ - diff --git a/c/src/exec/score/cpu/hppa1.1/rtems.s b/c/src/exec/score/cpu/hppa1.1/rtems.s deleted file mode 100644 index dd215c9af0..0000000000 --- a/c/src/exec/score/cpu/hppa1.1/rtems.s +++ /dev/null @@ -1,53 +0,0 @@ -/* rtems.S - * - * This file contains the single entry point code for - * the HPPA implementation of RTEMS. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - - .SPACE $PRIVATE$ - .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 - .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 - .SPACE $TEXT$ - .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44 - .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY - .SPACE $TEXT$ - .SUBSPA $CODE$ - - .align 32 - .EXPORT cpu_jump_to_directive,ENTRY,PRIV_LEV=0 -cpu_jump_to_directive - .PROC - .CALLINFO FRAME=0,NO_CALLS - .ENTRY - -# invoke user interrupt handler - -# XXX: look at register usage and code -# XXX: this is not necessarily right!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# r9 = directive number - - .import _Entry_points,data - ldil L%_Entry_points,%r8 - ldo R%_Entry_points(%r8),%r8 - ldwx,s %r9(%r8),%r8 - - .call ARGW0=GR - bv,n 0(%r8) - nop - - .EXIT - .PROCEND - diff --git a/c/src/exec/score/cpu/i386/asm.h b/c/src/exec/score/cpu/i386/asm.h deleted file mode 100644 index f123defcd9..0000000000 --- a/c/src/exec/score/cpu/i386/asm.h +++ /dev/null @@ -1,131 +0,0 @@ -/* asm.h - * - * 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. - * On-Line Applications Research Corporation (OAR). - * - * $Id$ - */ - -#ifndef __i386_ASM_h -#define __i386_ASM_h - -/* - * Indicate we are in an assembly file and get the basic CPU definitions. - */ - -#define ASM -#include - -/* - * 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. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -/* - * Looks like there is a bug in gcc 2.6.2 where this is not - * defined correctly when configured as i386-coff and - * i386-aout. - */ - -#undef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ % - -/* -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif -*/ - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* 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 eax REG (eax) -#define ebx REG (ebx) -#define ecx REG (ecx) -#define edx REG (edx) -#define esi REG (esi) -#define edi REG (edi) -#define esp REG (esp) -#define ebp REG (ebp) - -#define ax REG (ax) -#define bx REG (bx) -#define cx REG (cx) -#define dx REG (dx) -#define si REG (si) -#define di REG (di) -#define sp REG (sp) -#define bp REG (bp) - -#define ah REG (ah) -#define al REG (al) - -#define cs REG (cs) -#define ds REG (ds) -#define es REG (es) -#define fs REG (fs) -#define gs REG (gs) -#define ss REG (ss) - -/* - * Define macros to handle section beginning and ends. - */ - - -#define BEGIN_CODE_DCL .text -#define END_CODE_DCL -#define BEGIN_DATA_DCL .data -#define END_DATA_DCL -#define BEGIN_CODE .text -#define END_CODE -#define BEGIN_DATA -#define END_DATA -#define BEGIN_BSS -#define END_BSS -#define END - -/* - * Following must be tailor 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) -#define EXTERN(sym) .globl SYM (sym) - -#endif -/* end of include file */ - - diff --git a/c/src/exec/score/cpu/i386/cpu.c b/c/src/exec/score/cpu/i386/cpu.c deleted file mode 100644 index 05a836f7e3..0000000000 --- a/c/src/exec/score/cpu/i386/cpu.c +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Intel i386 Dependent Source - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - address of disptaching routine - */ - - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - register unsigned16 fp_status asm ("ax"); - register unsigned8 *fp_context; - - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - _CPU_Table = *cpu_table; - - /* - * The following code saves a NULL i387 context which is given - * to each task at start and restart time. The following code - * is based upon that provided in the i386 Programmer's - * Manual and should work on any coprocessor greater than - * the i80287. - * - * NOTE: The NO RTEMS_WAIT form of the coprocessor instructions - * MUST be used in case there is not a coprocessor - * to wait for. - */ - - fp_status = 0xa5a5; - asm volatile( "fninit" ); - asm volatile( "fnstsw %0" : "=a" (fp_status) : "0" (fp_status) ); - - if ( fp_status == 0 ) { - - fp_context = _CPU_Null_fp_context; - - asm volatile( "fsave (%0)" : "=r" (fp_context) - : "0" (fp_context) - ); - } -} - -/* _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 - * - */ - -void _ISR_Handler_0(), _ISR_Handler_1(); - -#define PER_ISR_ENTRY \ - (((unsigned32) _ISR_Handler_1 - (unsigned32) _ISR_Handler_0)) - -#define _Interrupt_Handler_entry( _vector ) \ - (((unsigned32)_ISR_Handler_0) + ((_vector) * PER_ISR_ENTRY)) - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -) -{ - i386_IDT_slot idt; - unsigned32 unique_handler; - - /* calculate the unique entry point for this vector */ - unique_handler = _Interrupt_Handler_entry( vector ); - - /* build the IDT entry */ - idt.offset_0_15 = ((unsigned32) unique_handler) & 0xffff; - idt.segment_selector = i386_get_cs(); - idt.reserved = 0x00; - idt.p_dpl = 0x8e; /* present, ISR */ - idt.offset_16_31 = ((unsigned32) unique_handler) >> 16; - - /* install the IDT entry */ - i386_Install_idt( - (unsigned32) &idt, - _CPU_Table.interrupt_table_segment, - (unsigned32) _CPU_Table.interrupt_table_offset + (8 * vector) - ); - - /* "portable" part */ - *old_handler = _ISR_Vector_table[ vector ]; - _ISR_Vector_table[ vector ] = new_handler; -} diff --git a/c/src/exec/score/cpu/i386/cpu.h b/c/src/exec/score/cpu/i386/cpu.h deleted file mode 100644 index a66cb37abc..0000000000 --- a/c/src/exec/score/cpu/i386/cpu.h +++ /dev/null @@ -1,367 +0,0 @@ -/* cpu.h - * - * This include file contains information pertaining to the Intel - * i386 processor. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __CPU_h -#define __CPU_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* conditional compilation parameters */ - -#define CPU_INLINE_ENABLE_DISPATCH TRUE -#define CPU_UNROLL_ENQUEUE_PRIORITY FALSE - -/* - * i386 has an RTEMS allocated and managed interrupt stack. - */ - -#define CPU_HAS_SOFTWARE_INTERRUPT_STACK TRUE -#define CPU_HAS_HARDWARE_INTERRUPT_STACK FALSE -#define CPU_ALLOCATE_INTERRUPT_STACK TRUE - -/* - * Some family members have no FP, some have an FPU such as the i387 - * for the i386, others have it built in (i486DX, Pentium). - */ - -#if ( I386_HAS_FPU == 1 ) -#define CPU_HARDWARE_FP TRUE /* i387 for i386 */ -#else -#define CPU_HARDWARE_FP FALSE -#endif - -#define CPU_ALL_TASKS_ARE_FP FALSE -#define CPU_IDLE_TASK_IS_FP FALSE -#define CPU_USE_DEFERRED_FP_SWITCH TRUE - -#define CPU_PROVIDES_IDLE_THREAD_BODY FALSE -#define CPU_STACK_GROWS_UP FALSE -#define CPU_STRUCTURE_ALIGNMENT - -/* structures */ - -/* - * Basic integer context for the i386 family. - */ - -typedef struct { - unsigned32 eflags; /* extended flags register */ - void *esp; /* extended stack pointer register */ - void *ebp; /* extended base pointer register */ - unsigned32 ebx; /* extended bx register */ - unsigned32 esi; /* extended source index register */ - unsigned32 edi; /* extended destination index flags register */ -} Context_Control; - -/* - * FP context save area for the i387 numeric coprocessors. - */ - -typedef struct { - unsigned8 fp_save_area[108]; /* context size area for I80387 */ - /* 28 bytes for environment */ -} Context_Control_fp; - -/* - * The following structure defines the set of information saved - * on the current stack by RTEMS upon receipt of each interrupt. - */ - -typedef struct { - unsigned32 TBD; /* XXX Fix for this CPU */ -} CPU_Interrupt_frame; - -/* - * The following table contains the information required to configure - * the i386 specific parameters. - */ - -typedef struct { - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 interrupt_stack_size; - unsigned32 extra_system_initialization_stack; - - unsigned32 interrupt_table_segment; - void *interrupt_table_offset; -} rtems_cpu_table; - -/* - * context size area for floating point - * - * NOTE: This is out of place on the i386 to avoid a forward reference. - */ - -#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp ) - -/* variables */ - -EXTERN unsigned8 _CPU_Null_fp_context[ CPU_CONTEXT_FP_SIZE ]; -EXTERN void *_CPU_Interrupt_stack_low; -EXTERN void *_CPU_Interrupt_stack_high; - -/* constants */ - -/* - * This defines the number of levels and the mask used to pick those - * bits out of a thread mode. - */ - -#define CPU_MODES_INTERRUPT_LEVEL 0x00000001 /* interrupt level in mode */ -#define CPU_MODES_INTERRUPT_MASK 0x00000001 /* interrupt level in mode */ - -/* - * extra stack required by system initialization thread - */ - -#define CPU_SYSTEM_INITIALIZATION_THREAD_EXTRA_STACK 1024 - -/* - * i386 family supports 256 distinct vectors. - */ - -#define CPU_INTERRUPT_NUMBER_OF_VECTORS 256 - -/* - * Minimum size of a thread's stack. - * - * NOTE: 256 bytes is probably too low in most cases. - */ - -#define CPU_STACK_MINIMUM_SIZE 256 - -/* - * i386 is pretty tolerant of alignment. Just put things on 4 byte boundaries. - */ - -#define CPU_ALIGNMENT 4 -#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT -#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT - -/* - * On i386 thread stacks require no further alignment after allocation - * from the Workspace. - */ - -#define CPU_STACK_ALIGNMENT 0 - -/* macros */ - -/* - * ISR handler macros - * - * These macros perform the following functions: - * + disable all maskable CPU interrupts - * + restore previous interrupt level (enable) - * + temporarily restore interrupts (flash) - * + set a particular level - */ - -#define _CPU_ISR_Disable( _level ) i386_disable_interrupts( _level ) - -#define _CPU_ISR_Enable( _level ) i386_enable_interrupts( _level ) - -#define _CPU_ISR_Flash( _level ) i386_flash_interrupts( _level ) - -#define _CPU_ISR_Set_level( _new_level ) \ - { \ - if ( _new_level ) asm volatile ( "cli" ); \ - else asm volatile ( "sti" ); \ - } - -/* end of ISR handler macros */ - -/* - * Context handler macros - * - * These macros perform the following functions: - * + initialize a context area - * + restart the current thread - * + calculate the initial pointer into a FP context area - * + initialize an FP context area - */ - -#define CPU_EFLAGS_INTERRUPTS_ON 0x00003202 -#define CPU_EFLAGS_INTERRUPTS_OFF 0x00003002 - -#define _CPU_Context_Initialize( _the_context, _stack_base, _size, \ - _isr, _entry_point ) \ - do { \ - unsigned32 _stack; \ - \ - if ( (_isr) ) (_the_context)->eflags = CPU_EFLAGS_INTERRUPTS_OFF; \ - else (_the_context)->eflags = CPU_EFLAGS_INTERRUPTS_ON; \ - \ - _stack = ((unsigned32)(_stack_base)) + (_size) - 4; \ - \ - *((proc_ptr *)(_stack)) = (_entry_point); \ - (_the_context)->ebp = (void *) _stack; \ - (_the_context)->esp = (void *) _stack; \ - } while (0) - -#define _CPU_Context_Restart_self( _the_context ) \ - _CPU_Context_restore( (_the_context) ); - -#define _CPU_Context_Fp_start( _base, _offset ) \ - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) - -#define _CPU_Context_Initialize_fp( _fp_area ) \ - { \ - unsigned32 *_source = (unsigned32 *) _CPU_Null_fp_context; \ - unsigned32 *_destination = (unsigned32 *) *(_fp_area); \ - unsigned32 _index; \ - \ - for ( _index=0 ; _index < CPU_CONTEXT_FP_SIZE/4 ; _index++ ) \ - *_destination++ = *_source++; \ - } - -/* end of Context handler macros */ - -/* - * Fatal Error manager macros - * - * These macros perform the following functions: - * + disable interrupts and halt the CPU - */ - -#define _CPU_Fatal_halt( _error ) \ - { \ - asm volatile ( "cli ; \ - movl %0,%%eax ; \ - hlt" \ - : "=r" ((_error)) : "0" ((_error)) \ - ); \ - } - -/* end of Fatal Error manager macros */ - -/* - * Bitfield handler macros - * - * These macros perform the following functions: - * + scan for the highest numbered (MSB) set in a 16 bit bitfield - */ - -#define _CPU_Bitfield_Find_first_bit( _value, _output ) \ - { \ - register unsigned16 __value_in_register = (_value); \ - \ - _output = 0; \ - \ - asm volatile ( "bsfw %0,%1 " \ - : "=r" (__value_in_register), "=r" (_output) \ - : "0" (__value_in_register), "1" (_output) \ - ); \ - } - -/* end of Bitfield handler macros */ - -/* - * Priority handler macros - * - * These macros perform the following functions: - * + return a mask with the bit for this major/minor portion of - * of thread priority set. - * + translate the bit number returned by "Bitfield_find_first_bit" - * into an index into the thread ready chain bit maps - */ - -#define _CPU_Priority_Mask( _bit_number ) \ - ( 1 << (_bit_number) ) - -#define _CPU_Priority_Bits_index( _priority ) \ - (_priority) - -/* functions */ - -/* - * _CPU_Initialize - * - * This routine performs CPU dependent initialization. - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) -); - -/* - * _CPU_ISR_install_vector - * - * This routine installs an interrupt vector. - */ - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -); - -/* - * _CPU_Context_switch - * - * This routine switches from the run context to the heir context. - */ - -void _CPU_Context_switch( - Context_Control *run, - Context_Control *heir -); - -/* - * _CPU_Context_restore - * - * This routine is generallu used only to restart self in an - * efficient manner and avoid stack conflicts. - */ - -void _CPU_Context_restore( - Context_Control *new_context -); - -/* - * _CPU_Context_save_fp - * - * This routine saves the floating point context passed to it. - */ - -void _CPU_Context_save_fp( - void **fp_context_ptr -); - -/* - * _CPU_Context_restore_fp - * - * This routine restores the floating point context passed to it. - */ - -void _CPU_Context_restore_fp( - void **fp_context_ptr -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/cpu/i386/cpu_asm.s b/c/src/exec/score/cpu/i386/cpu_asm.s deleted file mode 100644 index 121b4409d9..0000000000 --- a/c/src/exec/score/cpu/i386/cpu_asm.s +++ /dev/null @@ -1,654 +0,0 @@ -/* cpu_asm.s - * - * This file contains all assembly code for the Intel i386 implementation - * of RTEMS. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -/* - * Format of i386 Register structure - */ - -.set REG_EFLAGS, 0 -.set REG_ESP, REG_EFLAGS + 4 -.set REG_EBP, REG_ESP + 4 -.set REG_EBX, REG_EBP + 4 -.set REG_ESI, REG_EBX + 4 -.set REG_EDI, REG_ESI + 4 -.set SIZE_REGS, REG_EDI + 4 - - BEGIN_CODE - -/* - * void _CPU_Context_switch( run_context, heir_context ) - * - * This routine performs a normal non-FP context. - */ - - .align 2 - PUBLIC (_CPU_Context_switch) - -.set RUNCONTEXT_ARG, 4 # save context argument -.set HEIRCONTEXT_ARG, 8 # restore context argument - -SYM (_CPU_Context_switch): - movl RUNCONTEXT_ARG(esp),eax # eax = running threads context - pushf # push eflags - popl REG_EFLAGS(eax) # save eflags - movl esp,REG_ESP(eax) # save stack pointer - movl ebp,REG_EBP(eax) # save base pointer - movl ebx,REG_EBX(eax) # save ebx - movl esi,REG_ESI(eax) # save source register - movl edi,REG_EDI(eax) # save destination register - - movl HEIRCONTEXT_ARG(esp),eax # eax = heir threads context - -restore: - pushl REG_EFLAGS(eax) # push eflags - popf # restore eflags - movl REG_ESP(eax),esp # restore stack pointer - movl REG_EBP(eax),ebp # restore base pointer - movl REG_EBX(eax),ebx # restore ebx - movl REG_ESI(eax),esi # restore source register - movl REG_EDI(eax),edi # restore destination register - ret - -/* - * NOTE: May be unnecessary to reload some registers. - */ - -/* - * void _CPU_Context_restore( new_context ) - * - * This routine performs a normal non-FP context. - */ - - PUBLIC (_CPU_Context_restore) - -.set NEWCONTEXT_ARG, 4 # context to restore argument - -SYM (_CPU_Context_restore): - - movl NEWCONTEXT_ARG(esp),eax # eax = running threads context - jmp restore - -/*PAGE - * void _CPU_Context_save_fp_context( &fp_context_ptr ) - * void _CPU_Context_restore_fp_context( &fp_context_ptr ) - * - * This section is used to context switch an i80287, i80387, - * the built-in coprocessor or the i80486 or compatible. - */ - -.set FPCONTEXT_ARG, 4 # FP context argument - - .align 2 - PUBLIC (_CPU_Context_save_fp) -SYM (_CPU_Context_save_fp): - movl FPCONTEXT_ARG(esp),eax # eax = &ptr to FP context area - movl (eax),eax # eax = FP context area - fsave (eax) # save FP context - ret - - .align 2 - PUBLIC (_CPU_Context_restore_fp) -SYM (_CPU_Context_restore_fp): - movl FPCONTEXT_ARG(esp),eax # eax = &ptr to FP context area - movl (eax),eax # eax = FP context area - frstor (eax) # restore FP context - ret - -/*PAGE - * void _ISR_Handler() - * - * This routine provides the RTEMS interrupt management. - * - * NOTE: - * Upon entry, the stack will contain a stack frame back to the - * interrupted task. If dispatching is enabled, this is the - * outer most interrupt, and (a context switch is necessary or - * the current task has signals), then set up the stack to - * transfer control to the interrupt dispatcher. - */ - -.set SET_SEGMENT_REGISTERS_IN_INTERRUPT, 0 - -.set SAVED_REGS , 32 # space consumed by saved regs -.set EIP_OFFSET , SAVED_REGS # offset of tasks eip -.set CS_OFFSET , EIP_OFFSET+4 # offset of tasks code segment -.set EFLAGS_OFFSET , CS_OFFSET+4 # offset of tasks eflags - - .align 2 - PUBLIC (_ISR_Handler) - -SYM (_ISR_Handler): - /* - * Before this was point is reached the vectors unique - * entry point did the following: - * - * 1. saved all registers with a "pusha" - * 2. put the vector number in eax. - * - * BEGINNING OF ESTABLISH SEGMENTS - * - * WARNING: If an interrupt can occur when the segments are - * not correct, then this is where we should establish - * the segments. In addition to establishing the - * segments, it may be necessary to establish a stack - * in the current data area on the outermost interrupt. - * - * NOTE: If the previous values of the segment registers are - * pushed, do not forget to adjust SAVED_REGS. - * - * NOTE: Make sure the exit code which restores these - * when this type of code is needed. - */ - - /***** ESTABLISH SEGMENTS CODE GOES HERE ******/ - - /* - * END OF ESTABLISH SEGMENTS - */ - - /* - * Now switch stacks if necessary - */ - - movl esp, edx # edx = previous stack pointer - cmpl $0, SYM (_ISR_Nest_level) # is this the outermost interrupt? - jne nested # No, then continue - movl SYM (_CPU_Interrupt_stack_high), esp - - /* - * We want to insure that the old stack pointer is on the - * stack we will be on at the end of the ISR when we restore it. - * By saving it on every interrupt, all we have to do is pop it - * near the end of every interrupt. - */ - -nested: - pushl edx # save the previous stack pointer - incl SYM (_ISR_Nest_level) # one nest level deeper - incl SYM (_Thread_Dispatch_disable_level) # disable multitasking - - # EAX is preloaded with the vector number. - push eax # push vector number - mov SYM (_ISR_Vector_table) (,eax,4),eax - # eax = Users handler - call eax # invoke user ISR - pop eax # eax = vector number - - decl SYM (_ISR_Nest_level) # one less ISR nest level - # If interrupts are nested, - # then dispatching is disabled - - decl SYM (_Thread_Dispatch_disable_level) - # unnest multitasking - # Is dispatch disabled - jne exit # Yes, then exit - - cmpl $0, SYM (_Context_Switch_necessary) - # Is task switch necessary? - jne bframe # Yes, then build stack - - cmpl $0, SYM (_ISR_Signals_to_thread_executing) - # signals sent to Run_thread - # while in interrupt handler? - je exit # No, exit - -bframe: - cli # DISABLE INTERRUPTS!! - popl esp # restore the stack pointer - movl $0, SYM (_ISR_Signals_to_thread_executing) - # push the isf for Isr_dispatch - push EFLAGS_OFFSET(esp) # push tasks eflags - push cs # cs of Isr_dispatch - push $ SYM (_ISR_Dispatch) # entry point - iret - -exit: - cli # DISABLE INTERRUPTS!! - popl esp # restore the stack pointer - - /* - * BEGINNING OF DE-ESTABLISH SEGMENTS - * - * NOTE: Make sure there is code here if code is added to - * load the segment registers. - * - */ - - /******* DE-ESTABLISH SEGMENTS CODE GOES HERE ********/ - - /* - * END OF DE-ESTABLISH SEGMENTS - */ - - popa # restore general registers - iret - -/*PAGE - * Distinct Interrupt Entry Points - * - * The following macro and the 256 instantiations of the macro - * are necessary to determine which interrupt vector occurred. - * The following macro allows a unique entry point to be defined - * for each vector. - * - * NOTE: There are not spaces around the vector number argument - * to the DISTINCT_INTERRUPT_ENTRY macro because m4 will - * undesirably generate the symbol "_Isr_handler_ N" - * instead of "_Isr_handler_N" like we want. - */ - -#define DISTINCT_INTERRUPT_ENTRY(_vector) \ - .align 16 ; \ - PUBLIC (_ISR_Handler_ ## _vector ) ; \ -SYM (_ISR_Handler_ ## _vector ): \ - pusha ; \ - xor eax, eax ; \ - movb $ ## _vector, al ; \ - jmp SYM (_ISR_Handler) ; - -DISTINCT_INTERRUPT_ENTRY(0) -DISTINCT_INTERRUPT_ENTRY(1) -DISTINCT_INTERRUPT_ENTRY(2) -DISTINCT_INTERRUPT_ENTRY(3) -DISTINCT_INTERRUPT_ENTRY(4) -DISTINCT_INTERRUPT_ENTRY(5) -DISTINCT_INTERRUPT_ENTRY(6) -DISTINCT_INTERRUPT_ENTRY(7) -DISTINCT_INTERRUPT_ENTRY(8) -DISTINCT_INTERRUPT_ENTRY(9) -DISTINCT_INTERRUPT_ENTRY(10) -DISTINCT_INTERRUPT_ENTRY(11) -DISTINCT_INTERRUPT_ENTRY(12) -DISTINCT_INTERRUPT_ENTRY(13) -DISTINCT_INTERRUPT_ENTRY(14) -DISTINCT_INTERRUPT_ENTRY(15) -DISTINCT_INTERRUPT_ENTRY(16) -DISTINCT_INTERRUPT_ENTRY(17) -DISTINCT_INTERRUPT_ENTRY(18) -DISTINCT_INTERRUPT_ENTRY(19) -DISTINCT_INTERRUPT_ENTRY(20) -DISTINCT_INTERRUPT_ENTRY(21) -DISTINCT_INTERRUPT_ENTRY(22) -DISTINCT_INTERRUPT_ENTRY(23) -DISTINCT_INTERRUPT_ENTRY(24) -DISTINCT_INTERRUPT_ENTRY(25) -DISTINCT_INTERRUPT_ENTRY(26) -DISTINCT_INTERRUPT_ENTRY(27) -DISTINCT_INTERRUPT_ENTRY(28) -DISTINCT_INTERRUPT_ENTRY(29) -DISTINCT_INTERRUPT_ENTRY(30) -DISTINCT_INTERRUPT_ENTRY(31) -DISTINCT_INTERRUPT_ENTRY(32) -DISTINCT_INTERRUPT_ENTRY(33) -DISTINCT_INTERRUPT_ENTRY(34) -DISTINCT_INTERRUPT_ENTRY(35) -DISTINCT_INTERRUPT_ENTRY(36) -DISTINCT_INTERRUPT_ENTRY(37) -DISTINCT_INTERRUPT_ENTRY(38) -DISTINCT_INTERRUPT_ENTRY(39) -DISTINCT_INTERRUPT_ENTRY(40) -DISTINCT_INTERRUPT_ENTRY(41) -DISTINCT_INTERRUPT_ENTRY(42) -DISTINCT_INTERRUPT_ENTRY(43) -DISTINCT_INTERRUPT_ENTRY(44) -DISTINCT_INTERRUPT_ENTRY(45) -DISTINCT_INTERRUPT_ENTRY(46) -DISTINCT_INTERRUPT_ENTRY(47) -DISTINCT_INTERRUPT_ENTRY(48) -DISTINCT_INTERRUPT_ENTRY(49) -DISTINCT_INTERRUPT_ENTRY(50) -DISTINCT_INTERRUPT_ENTRY(51) -DISTINCT_INTERRUPT_ENTRY(52) -DISTINCT_INTERRUPT_ENTRY(53) -DISTINCT_INTERRUPT_ENTRY(54) -DISTINCT_INTERRUPT_ENTRY(55) -DISTINCT_INTERRUPT_ENTRY(56) -DISTINCT_INTERRUPT_ENTRY(57) -DISTINCT_INTERRUPT_ENTRY(58) -DISTINCT_INTERRUPT_ENTRY(59) -DISTINCT_INTERRUPT_ENTRY(60) -DISTINCT_INTERRUPT_ENTRY(61) -DISTINCT_INTERRUPT_ENTRY(62) -DISTINCT_INTERRUPT_ENTRY(63) -DISTINCT_INTERRUPT_ENTRY(64) -DISTINCT_INTERRUPT_ENTRY(65) -DISTINCT_INTERRUPT_ENTRY(66) -DISTINCT_INTERRUPT_ENTRY(67) -DISTINCT_INTERRUPT_ENTRY(68) -DISTINCT_INTERRUPT_ENTRY(69) -DISTINCT_INTERRUPT_ENTRY(70) -DISTINCT_INTERRUPT_ENTRY(71) -DISTINCT_INTERRUPT_ENTRY(72) -DISTINCT_INTERRUPT_ENTRY(73) -DISTINCT_INTERRUPT_ENTRY(74) -DISTINCT_INTERRUPT_ENTRY(75) -DISTINCT_INTERRUPT_ENTRY(76) -DISTINCT_INTERRUPT_ENTRY(77) -DISTINCT_INTERRUPT_ENTRY(78) -DISTINCT_INTERRUPT_ENTRY(79) -DISTINCT_INTERRUPT_ENTRY(80) -DISTINCT_INTERRUPT_ENTRY(81) -DISTINCT_INTERRUPT_ENTRY(82) -DISTINCT_INTERRUPT_ENTRY(83) -DISTINCT_INTERRUPT_ENTRY(84) -DISTINCT_INTERRUPT_ENTRY(85) -DISTINCT_INTERRUPT_ENTRY(86) -DISTINCT_INTERRUPT_ENTRY(87) -DISTINCT_INTERRUPT_ENTRY(88) -DISTINCT_INTERRUPT_ENTRY(89) -DISTINCT_INTERRUPT_ENTRY(90) -DISTINCT_INTERRUPT_ENTRY(91) -DISTINCT_INTERRUPT_ENTRY(92) -DISTINCT_INTERRUPT_ENTRY(93) -DISTINCT_INTERRUPT_ENTRY(94) -DISTINCT_INTERRUPT_ENTRY(95) -DISTINCT_INTERRUPT_ENTRY(96) -DISTINCT_INTERRUPT_ENTRY(97) -DISTINCT_INTERRUPT_ENTRY(98) -DISTINCT_INTERRUPT_ENTRY(99) -DISTINCT_INTERRUPT_ENTRY(100) -DISTINCT_INTERRUPT_ENTRY(101) -DISTINCT_INTERRUPT_ENTRY(102) -DISTINCT_INTERRUPT_ENTRY(103) -DISTINCT_INTERRUPT_ENTRY(104) -DISTINCT_INTERRUPT_ENTRY(105) -DISTINCT_INTERRUPT_ENTRY(106) -DISTINCT_INTERRUPT_ENTRY(107) -DISTINCT_INTERRUPT_ENTRY(108) -DISTINCT_INTERRUPT_ENTRY(109) -DISTINCT_INTERRUPT_ENTRY(110) -DISTINCT_INTERRUPT_ENTRY(111) -DISTINCT_INTERRUPT_ENTRY(112) -DISTINCT_INTERRUPT_ENTRY(113) -DISTINCT_INTERRUPT_ENTRY(114) -DISTINCT_INTERRUPT_ENTRY(115) -DISTINCT_INTERRUPT_ENTRY(116) -DISTINCT_INTERRUPT_ENTRY(117) -DISTINCT_INTERRUPT_ENTRY(118) -DISTINCT_INTERRUPT_ENTRY(119) -DISTINCT_INTERRUPT_ENTRY(120) -DISTINCT_INTERRUPT_ENTRY(121) -DISTINCT_INTERRUPT_ENTRY(122) -DISTINCT_INTERRUPT_ENTRY(123) -DISTINCT_INTERRUPT_ENTRY(124) -DISTINCT_INTERRUPT_ENTRY(125) -DISTINCT_INTERRUPT_ENTRY(126) -DISTINCT_INTERRUPT_ENTRY(127) -DISTINCT_INTERRUPT_ENTRY(128) -DISTINCT_INTERRUPT_ENTRY(129) -DISTINCT_INTERRUPT_ENTRY(130) -DISTINCT_INTERRUPT_ENTRY(131) -DISTINCT_INTERRUPT_ENTRY(132) -DISTINCT_INTERRUPT_ENTRY(133) -DISTINCT_INTERRUPT_ENTRY(134) -DISTINCT_INTERRUPT_ENTRY(135) -DISTINCT_INTERRUPT_ENTRY(136) -DISTINCT_INTERRUPT_ENTRY(137) -DISTINCT_INTERRUPT_ENTRY(138) -DISTINCT_INTERRUPT_ENTRY(139) -DISTINCT_INTERRUPT_ENTRY(140) -DISTINCT_INTERRUPT_ENTRY(141) -DISTINCT_INTERRUPT_ENTRY(142) -DISTINCT_INTERRUPT_ENTRY(143) -DISTINCT_INTERRUPT_ENTRY(144) -DISTINCT_INTERRUPT_ENTRY(145) -DISTINCT_INTERRUPT_ENTRY(146) -DISTINCT_INTERRUPT_ENTRY(147) -DISTINCT_INTERRUPT_ENTRY(148) -DISTINCT_INTERRUPT_ENTRY(149) -DISTINCT_INTERRUPT_ENTRY(150) -DISTINCT_INTERRUPT_ENTRY(151) -DISTINCT_INTERRUPT_ENTRY(152) -DISTINCT_INTERRUPT_ENTRY(153) -DISTINCT_INTERRUPT_ENTRY(154) -DISTINCT_INTERRUPT_ENTRY(155) -DISTINCT_INTERRUPT_ENTRY(156) -DISTINCT_INTERRUPT_ENTRY(157) -DISTINCT_INTERRUPT_ENTRY(158) -DISTINCT_INTERRUPT_ENTRY(159) -DISTINCT_INTERRUPT_ENTRY(160) -DISTINCT_INTERRUPT_ENTRY(161) -DISTINCT_INTERRUPT_ENTRY(162) -DISTINCT_INTERRUPT_ENTRY(163) -DISTINCT_INTERRUPT_ENTRY(164) -DISTINCT_INTERRUPT_ENTRY(165) -DISTINCT_INTERRUPT_ENTRY(166) -DISTINCT_INTERRUPT_ENTRY(167) -DISTINCT_INTERRUPT_ENTRY(168) -DISTINCT_INTERRUPT_ENTRY(169) -DISTINCT_INTERRUPT_ENTRY(170) -DISTINCT_INTERRUPT_ENTRY(171) -DISTINCT_INTERRUPT_ENTRY(172) -DISTINCT_INTERRUPT_ENTRY(173) -DISTINCT_INTERRUPT_ENTRY(174) -DISTINCT_INTERRUPT_ENTRY(175) -DISTINCT_INTERRUPT_ENTRY(176) -DISTINCT_INTERRUPT_ENTRY(177) -DISTINCT_INTERRUPT_ENTRY(178) -DISTINCT_INTERRUPT_ENTRY(179) -DISTINCT_INTERRUPT_ENTRY(180) -DISTINCT_INTERRUPT_ENTRY(181) -DISTINCT_INTERRUPT_ENTRY(182) -DISTINCT_INTERRUPT_ENTRY(183) -DISTINCT_INTERRUPT_ENTRY(184) -DISTINCT_INTERRUPT_ENTRY(185) -DISTINCT_INTERRUPT_ENTRY(186) -DISTINCT_INTERRUPT_ENTRY(187) -DISTINCT_INTERRUPT_ENTRY(188) -DISTINCT_INTERRUPT_ENTRY(189) -DISTINCT_INTERRUPT_ENTRY(190) -DISTINCT_INTERRUPT_ENTRY(191) -DISTINCT_INTERRUPT_ENTRY(192) -DISTINCT_INTERRUPT_ENTRY(193) -DISTINCT_INTERRUPT_ENTRY(194) -DISTINCT_INTERRUPT_ENTRY(195) -DISTINCT_INTERRUPT_ENTRY(196) -DISTINCT_INTERRUPT_ENTRY(197) -DISTINCT_INTERRUPT_ENTRY(198) -DISTINCT_INTERRUPT_ENTRY(199) -DISTINCT_INTERRUPT_ENTRY(200) -DISTINCT_INTERRUPT_ENTRY(201) -DISTINCT_INTERRUPT_ENTRY(202) -DISTINCT_INTERRUPT_ENTRY(203) -DISTINCT_INTERRUPT_ENTRY(204) -DISTINCT_INTERRUPT_ENTRY(205) -DISTINCT_INTERRUPT_ENTRY(206) -DISTINCT_INTERRUPT_ENTRY(207) -DISTINCT_INTERRUPT_ENTRY(208) -DISTINCT_INTERRUPT_ENTRY(209) -DISTINCT_INTERRUPT_ENTRY(210) -DISTINCT_INTERRUPT_ENTRY(211) -DISTINCT_INTERRUPT_ENTRY(212) -DISTINCT_INTERRUPT_ENTRY(213) -DISTINCT_INTERRUPT_ENTRY(214) -DISTINCT_INTERRUPT_ENTRY(215) -DISTINCT_INTERRUPT_ENTRY(216) -DISTINCT_INTERRUPT_ENTRY(217) -DISTINCT_INTERRUPT_ENTRY(218) -DISTINCT_INTERRUPT_ENTRY(219) -DISTINCT_INTERRUPT_ENTRY(220) -DISTINCT_INTERRUPT_ENTRY(221) -DISTINCT_INTERRUPT_ENTRY(222) -DISTINCT_INTERRUPT_ENTRY(223) -DISTINCT_INTERRUPT_ENTRY(224) -DISTINCT_INTERRUPT_ENTRY(225) -DISTINCT_INTERRUPT_ENTRY(226) -DISTINCT_INTERRUPT_ENTRY(227) -DISTINCT_INTERRUPT_ENTRY(228) -DISTINCT_INTERRUPT_ENTRY(229) -DISTINCT_INTERRUPT_ENTRY(230) -DISTINCT_INTERRUPT_ENTRY(231) -DISTINCT_INTERRUPT_ENTRY(232) -DISTINCT_INTERRUPT_ENTRY(233) -DISTINCT_INTERRUPT_ENTRY(234) -DISTINCT_INTERRUPT_ENTRY(235) -DISTINCT_INTERRUPT_ENTRY(236) -DISTINCT_INTERRUPT_ENTRY(237) -DISTINCT_INTERRUPT_ENTRY(238) -DISTINCT_INTERRUPT_ENTRY(239) -DISTINCT_INTERRUPT_ENTRY(240) -DISTINCT_INTERRUPT_ENTRY(241) -DISTINCT_INTERRUPT_ENTRY(242) -DISTINCT_INTERRUPT_ENTRY(243) -DISTINCT_INTERRUPT_ENTRY(244) -DISTINCT_INTERRUPT_ENTRY(245) -DISTINCT_INTERRUPT_ENTRY(246) -DISTINCT_INTERRUPT_ENTRY(247) -DISTINCT_INTERRUPT_ENTRY(248) -DISTINCT_INTERRUPT_ENTRY(249) -DISTINCT_INTERRUPT_ENTRY(250) -DISTINCT_INTERRUPT_ENTRY(251) -DISTINCT_INTERRUPT_ENTRY(252) -DISTINCT_INTERRUPT_ENTRY(253) -DISTINCT_INTERRUPT_ENTRY(254) -DISTINCT_INTERRUPT_ENTRY(255) - -/*PAGE - * void _ISR_Dispatch() - * - * Entry point from the outermost interrupt service routine exit. - * The current stack is the supervisor mode stack. - */ - - PUBLIC (_ISR_Dispatch) -SYM (_ISR_Dispatch): - - call SYM (_Thread_Dispatch) # invoke Dispatcher - - /* - * BEGINNING OF DE-ESTABLISH SEGMENTS - * - * NOTE: Make sure there is code here if code is added to - * load the segment registers. - * - */ - - /***** DE-ESTABLISH SEGMENTS CODE GOES HERE ****/ - - /* - * END OF DE-ESTABLISH SEGMENTS - */ - - popa # restore general registers - iret # return to interrupted thread - -/*PAGE - * - * void i386_Install_idt( - * unsigned32 source_offset, - * unsigned16 destination_segment, - * unsigned32 destination_offset - * ); - */ - - .align 2 - PUBLIC (i386_Install_idt) - -.set INSTALL_IDT_SAVED_REGS, 8 - -.set SOURCE_OFFSET_ARG, INSTALL_IDT_SAVED_REGS + 4 -.set DESTINATION_SEGMENT_ARG, INSTALL_IDT_SAVED_REGS + 8 -.set DESTINATION_OFFSET_ARG, INSTALL_IDT_SAVED_REGS + 12 - -SYM (i386_Install_idt): - push esi - push edi - - movl SOURCE_OFFSET_ARG(esp),esi - movl DESTINATION_OFFSET_ARG(esp),edi - - pushf # save flags - cli # DISABLE INTERRUPTS!!! - - movw DESTINATION_SEGMENT_ARG+4(esp),ax - push es # save es - movw ax,es - movsl # copy 1st half of IDT entry - movsl # copy 2nd half of IDT entry - pop es # restore es - - popf # ENABLE INTERRUPTS!!! - - pop edi - pop esi - ret - -/* - * void *i386_Logical_to_physical( - * rtems_unsigned16 segment, - * void *address - * ); - * - * Returns thirty-two bit physical address for segment:address. - */ - -.set SEGMENT_ARG, 4 -.set ADDRESS_ARG, 8 - - PUBLIC (i386_Logical_to_physical) - -SYM (i386_Logical_to_physical): - - xorl eax,eax # clear eax - movzwl SEGMENT_ARG(esp),ecx # ecx = segment value - movl $ SYM (_Global_descriptor_table),edx - # edx = address of our GDT - addl ecx,edx # edx = address of desired entry - movb 7(edx),ah # ah = base 31:24 - movb 4(edx),al # al = base 23:16 - shll $16,eax # move ax into correct bits - movw 2(edx),ax # ax = base 0:15 - movl ADDRESS_ARG(esp),ecx # ecx = address to convert - addl eax,ecx # ecx = physical address equivalent - movl ecx,eax # eax = ecx - ret - -/* - * void *i386_Physical_to_logical( - * rtems_unsigned16 segment, - * void *address - * ); - * - * Returns thirty-two bit physical address for segment:address. - */ - -/* - *.set SEGMENT_ARG, 4 - *.set ADDRESS_ARG, 8 -- use sets from above - */ - - PUBLIC (i386_Physical_to_logical) - -SYM (i386_Physical_to_logical): - xorl eax,eax # clear eax - movzwl SEGMENT_ARG(esp),ecx # ecx = segment value - movl $ SYM (_Global_descriptor_table),edx - # edx = address of our GDT - addl ecx,edx # edx = address of desired entry - movb 7(edx),ah # ah = base 31:24 - movb 4(edx),al # al = base 23:16 - shll $16,eax # move ax into correct bits - movw 2(edx),ax # ax = base 0:15 - movl ADDRESS_ARG(esp),ecx # ecx = address to convert - subl eax,ecx # ecx = logical address equivalent - movl ecx,eax # eax = ecx - ret - -END_CODE - -END diff --git a/c/src/exec/score/cpu/i386/i386.h b/c/src/exec/score/cpu/i386/i386.h deleted file mode 100644 index a8db759984..0000000000 --- a/c/src/exec/score/cpu/i386/i386.h +++ /dev/null @@ -1,493 +0,0 @@ -/* i386.h - * - * This include file contains information pertaining to the Intel - * i386 processor. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __i386_h -#define __i386_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following define the CPU Family and Model within the family - * - * NOTE: The string "REPLACE_THIS_WITH_THE_CPU_MODEL" is replaced - * with the name of the appropriate macro for this target CPU. - */ - -#define i386 -#define REPLACE_THIS_WITH_THE_CPU_MODEL -#define REPLACE_THIS_WITH_THE_BSP - -/* - * This section contains the information required to build - * RTEMS for a particular member of the Intel i386 - * family when executing in protected mode. It does - * this by setting variables to indicate which implementation - * dependent features are present in a particular member - * of the family. - * - * Currently recognized: - * i386_fp (i386 DX or SX w/i387) - * i386_fp (i386 DX or SX w/o i387) - * i486dx - * i486sx - * pentium - * - * Floating point is the only feature which currently varies. Eventually - * the i486-plus level instruction for endian swapping should be added - * to this feature list. - */ - -#if defined(i386_fp) - -#define RTEMS_MODEL_NAME "i386 with i387" -#define I386_HAS_FPU 1 - -#elif defined(i386_nofp) - -#define RTEMS_MODEL_NAME "i386 w/o i387" -#define I386_HAS_FPU 1 - -#elif defined(i486dx) - -#define RTEMS_MODEL_NAME "i486dx" -#define I386_HAS_FPU 1 - -#elif defined(i486sx) - -#define RTEMS_MODEL_NAME "i486sx" -#define I386_HAS_FPU 0 - -#elif defined(pentium) - -#define RTEMS_MODEL_NAME "Pentium" -#define I386_HAS_FPU 1 - -#else - -#error "Unsupported CPU Model" - -#endif - -/* - * Define the name of the CPU family. - */ - -#define CPU_NAME "Intel i386" - -#ifndef ASM - -/* - * This section defines the basic types for this processor. - */ - -typedef unsigned char unsigned8; /* 8-bit unsigned integer */ -typedef unsigned short unsigned16; /* 16-bit unsigned integer */ -typedef unsigned int unsigned32; /* 32-bit unsigned integer */ -typedef unsigned long long unsigned64; /* 64-bit unsigned integer */ - -typedef unsigned16 Priority_Bit_map_control; - -typedef unsigned char signed8; /* 8-bit signed integer */ -typedef unsigned short signed16; /* 16-bit signed integer */ -typedef unsigned int signed32; /* 32-bit signed integer */ -typedef long long signed64; /* 64-bit signed integer */ - -typedef unsigned32 boolean; /* Boolean value */ - -typedef float single_precision; /* single precision float */ -typedef double double_precision; /* double precision float */ - -/* - * Structure which makes it easier to deal with LxDT and SxDT instructions. - */ - -typedef struct { - unsigned short limit; - unsigned short physical_address[ 2 ]; -} i386_DTR_load_save_format; - -/* See Chapter 5 - Memory Management in i386 manual */ - -typedef struct { - unsigned short limit_0_15; - unsigned short base_0_15; - unsigned char base_16_23; - unsigned char type_dt_dpl_p; - unsigned char limit_16_19_granularity; - unsigned char base_24_31; -} i386_GDT_slot; - -/* See Chapter 9 - Exceptions and Interrupts in i386 manual - * - * NOTE: This is the IDT entry for interrupt gates ONLY. - */ - -typedef struct { - unsigned short offset_0_15; - unsigned short segment_selector; - unsigned char reserved; - unsigned char p_dpl; - unsigned short offset_16_31; -} i386_IDT_slot; - -typedef void ( *i386_isr )( void ); - -#define i386_disable_interrupts( _level ) \ - { \ - _level = 0; /* avoids warnings */ \ - asm volatile ( "pushf ; \ - cli ; \ - pop %0" \ - : "=r" ((_level)) : "0" ((_level)) \ - ); \ - } - -#define i386_enable_interrupts( _level ) \ - { \ - asm volatile ( "push %0 ; \ - popf" \ - : "=r" ((_level)) : "0" ((_level)) \ - ); \ - } - -#define i386_flash_interrupts( _level ) \ - { \ - asm volatile ( "push %0 ; \ - popf ; \ - cli" \ - : "=r" ((_level)) : "0" ((_level)) \ - ); \ - } - -/* - * The following routine swaps the endian format of an unsigned int. - * It must be static so it can be referenced indirectly. - */ - -static inline unsigned int i386_swap_U32( - unsigned int value -) -{ - asm volatile( "rorw $8,%%ax;" - "rorl $16,%0;" - "rorw $8,%%ax" : "=a" (value) : "0" (value) ); - - return( value ); -} - -/* - * Segment Access Routines - * - * NOTE: Unfortunately, these are still static inlines even when the - * "macro" implementation of the generic code is used. - */ - -static inline unsigned short i386_get_cs() -{ - register unsigned short segment = 0; - - asm volatile ( "movw %%cs,%0" : "=r" (segment) : "0" (segment) ); - - return segment; -} - -static inline unsigned short i386_get_ds() -{ - register unsigned short segment = 0; - - asm volatile ( "movw %%ds,%0" : "=r" (segment) : "0" (segment) ); - - return segment; -} - -static inline unsigned short i386_get_es() -{ - register unsigned short segment = 0; - - asm volatile ( "movw %%es,%0" : "=r" (segment) : "0" (segment) ); - - return segment; -} - -static inline unsigned short i386_get_ss() -{ - register unsigned short segment = 0; - - asm volatile ( "movw %%ss,%0" : "=r" (segment) : "0" (segment) ); - - return segment; -} - -static inline unsigned short i386_get_fs() -{ - register unsigned short segment = 0; - - asm volatile ( "movw %%fs,%0" : "=r" (segment) : "0" (segment) ); - - return segment; -} - -static inline unsigned short i386_get_gs() -{ - register unsigned short segment = 0; - - asm volatile ( "movw %%gs,%0" : "=r" (segment) : "0" (segment) ); - - return segment; -} - -/* - * IO Port Access Routines - */ - -#define i386_outport_byte( _port, _value ) \ - { register unsigned short __port = _port; \ - register unsigned char __value = _value; \ - \ - asm volatile ( "outb %0,%1" : "=a" (__value), "=d" (__port) \ - : "0" (__value), "1" (__port) \ - ); \ - } - -#define i386_outport_word( _port, _value ) \ - { register unsigned short __port = _port; \ - register unsigned short __value = _value; \ - \ - asm volatile ( "outw %0,%1" : "=a" (__value), "=d" (__port) \ - : "0" (__value), "1" (__port) \ - ); \ - } - -#define i386_outport_long( _port, _value ) \ - { register unsigned short __port = _port; \ - register unsigned int __value = _value; \ - \ - asm volatile ( "outl %0,%1" : "=a" (__value), "=d" (__port) \ - : "0" (__value), "1" (__port) \ - ); \ - } - -#define i386_inport_byte( _port, _value ) \ - { register unsigned short __port = _port; \ - register unsigned char __value = 0; \ - \ - asm volatile ( "inb %1,%0" : "=a" (__value), "=d" (__port) \ - : "0" (__value), "1" (__port) \ - ); \ - _value = __value; \ - } - -#define i386_inport_word( _port, _value ) \ - { register unsigned short __port = _port; \ - register unsigned short __value = 0; \ - \ - asm volatile ( "inw %1,%0" : "=a" (__value), "=d" (__port) \ - : "0" (__value), "1" (__port) \ - ); \ - _value = __value; \ - } - -#define i386_inport_long( _port, _value ) \ - { register unsigned short __port = _port; \ - register unsigned int __value = 0; \ - \ - asm volatile ( "inl %1,%0" : "=a" (__value), "=d" (__port) \ - : "0" (__value), "1" (__port) \ - ); \ - _value = __value; \ - } - -/* - * Descriptor Table helper routines - */ - - -#define i386_get_GDTR( _gdtr_address ) \ - { \ - void *_gdtr = (_gdtr_address); \ - \ - asm volatile( "sgdt (%0)" : "=r" (_gdtr) : "0" (_gdtr) ); \ - } - -#define i386_get_GDT_slot( _gdtr_base, _segment, _slot_address ) \ - { \ - register unsigned int _gdt_slot = (_gdtr_base) + (_segment); \ - register volatile void *_slot = (_slot_address); \ - register unsigned int _temporary = 0; \ - \ - asm volatile( "movl %%gs:(%0),%1 ; \ - movl %1,(%2) ; \ - movl %%gs:4(%0),%1 ; \ - movl %1,4(%2)" \ - : "=r" (_gdt_slot), "=r" (_temporary), "=r" (_slot) \ - : "0" (_gdt_slot), "1" (_temporary), "2" (_slot) \ - ); \ - } - -#define i386_set_GDT_slot( _gdtr_base, _segment, _slot_address ) \ - { \ - register unsigned int _gdt_slot = (_gdtr_base) + (_segment); \ - register volatile void *_slot = (_slot_address); \ - register unsigned int _temporary = 0; \ - \ - asm volatile( "movl (%2),%1 ; \ - movl %1,%%gs:(%0) ; \ - movl 4(%2),%1 ; \ - movl %1,%%gs:4(%0) \ - " \ - : "=r" (_gdt_slot), "=r" (_temporary), "=r" (_slot) \ - : "0" (_gdt_slot), "1" (_temporary), "2" (_slot) \ - ); \ - } - -static inline void i386_set_segment( - unsigned short segment, - unsigned int base, - unsigned int limit -) -{ - i386_DTR_load_save_format gdtr; - volatile i386_GDT_slot Gdt_slot; - volatile i386_GDT_slot *gdt_slot = &Gdt_slot; - unsigned short tmp_segment = 0; - unsigned int limit_adjusted; - - /* load physical address of the GDT */ - - i386_get_GDTR( &gdtr ); - - gdt_slot->type_dt_dpl_p = 0x92; /* present, dpl=0, */ - /* application=1, */ - /* type=data read/write */ - gdt_slot->limit_16_19_granularity = 0x40; /* 32 bit segment */ - - limit_adjusted = limit; - if ( limit > 4095 ) { - gdt_slot->limit_16_19_granularity |= 0x80; /* set granularity bit */ - limit_adjusted /= 4096; - } - - gdt_slot->limit_16_19_granularity |= (limit_adjusted >> 16) & 0xff; - gdt_slot->limit_0_15 = limit_adjusted & 0xffff; - - gdt_slot->base_0_15 = base & 0xffff; - gdt_slot->base_16_23 = (base >> 16) & 0xff; - gdt_slot->base_24_31 = (base >> 24); - - i386_set_GDT_slot( - gdtr.physical_address[0] + (gdtr.physical_address[1] << 16), - segment, - gdt_slot - ); - - /* Now, reload all segment registers so the limit takes effect. */ - - asm volatile( "movw %%ds,%0 ; movw %0,%%ds - movw %%es,%0 ; movw %0,%%es - movw %%fs,%0 ; movw %0,%%fs - movw %%gs,%0 ; movw %0,%%gs - movw %%ss,%0 ; movw %0,%%ss" - : "=r" (tmp_segment) - : "0" (tmp_segment) - ); - -} - -/* routines */ - -/* - * i386_Logical_to_physical - * - * Converts logical address to physical address. - */ - -void *i386_Logical_to_physical( - unsigned short segment, - void *address -); - -/* - * i386_Physical_to_logical - * - * Converts physical address to logical address. - */ - -void *i386_Physical_to_logical( - unsigned short segment, - void *address -); - -/* - * i386_Install_idt - * - * This routine installs an IDT entry. - */ - -void i386_Install_idt( - unsigned int source_offset, - unsigned short destination_segment, - unsigned int destination_offset -); - -/* - * "Simpler" names for a lot of the things defined in this file - */ - -/* segment access routines */ - -#define get_cs() i386_get_cs() -#define get_ds() i386_get_ds() -#define get_es() i386_get_es() -#define get_ss() i386_get_ss() -#define get_fs() i386_get_fs() -#define get_gs() i386_get_gs() - -#define CPU_swap_u32( _value ) i386_swap_U32( _value ) - -/* i80x86 I/O instructions */ - -#define outport_byte( _port, _value ) i386_outport_byte( _port, _value ) -#define outport_word( _port, _value ) i386_outport_word( _port, _value ) -#define outport_long( _port, _value ) i386_outport_long( _port, _value ) -#define inport_byte( _port, _value ) i386_inport_byte( _port, _value ) -#define inport_word( _port, _value ) i386_inport_word( _port, _value ) -#define inport_long( _port, _value ) i386_inport_long( _port, _value ) - -/* complicated static inline functions */ - -#define get_GDTR( _gdtr_address ) \ - i386_get_GDTR( _gdtr_address ) - -#define get_GDT_slot( _gdtr_base, _segment, _slot_address ) \ - i386_get_GDT_slot( _gdtr_base, _segment, _slot_address ) - -#define set_GDT_slot( _gdtr_base, _segment, _slot_address ) \ - i386_set_GDT_slot( _gdtr_base, _segment, _slot_address ) - -#define set_segment( _segment, _base, _limit ) \ - i386_set_segment( _segment, _base, _limit ) - - -#ifdef __cplusplus -} -#endif - -#endif /* !ASM */ - -#endif -/* end of include file */ diff --git a/c/src/exec/score/cpu/i386/rtems.s b/c/src/exec/score/cpu/i386/rtems.s deleted file mode 100644 index df65600e15..0000000000 --- a/c/src/exec/score/cpu/i386/rtems.s +++ /dev/null @@ -1,31 +0,0 @@ -/* rtems.s - * - * This file contains the single entry point code for - * the i386 implementation of RTEMS. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - - EXTERN (_Entry_points) - - BEGIN_CODE - - .align 2 - PUBLIC (RTEMS) - -SYM (RTEMS): - jmpl SYM (_Entry_points)(,eax,4) - - END_CODE - -END diff --git a/c/src/exec/score/cpu/i960/asm.h b/c/src/exec/score/cpu/i960/asm.h deleted file mode 100644 index 1c40601473..0000000000 --- a/c/src/exec/score/cpu/i960/asm.h +++ /dev/null @@ -1,107 +0,0 @@ -/* asm.h - * - * 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. - * On-Line Applications Research Corporation (OAR). - * - * $Id$ - */ - -#ifndef __i960_ASM_h -#define __i960_ASM_h - -/* - * Indicate we are in an assembly file and get the basic CPU definitions. - */ - -#define ASM -#include - -/* - * 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. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* 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 g0 REG (g0) -#define g1 REG (g1) -#define g2 REG (g2) -#define g3 REG (g3) -#define g4 REG (g4) -#define g5 REG (g5) -#define g6 REG (g6) -#define g7 REG (g7) -#define g8 REG (g8) -#define g9 REG (g9) -#define g10 REG (g10) -#define g11 REG (g11) -#define g12 REG (g12) -#define g13 REG (g13) -#define g14 REG (g14) -#define g15 REG (g15) - -/* - * Define macros to handle section beginning and ends. - */ - - -#define BEGIN_CODE_DCL .text -#define END_CODE_DCL -#define BEGIN_DATA_DCL .data -#define END_DATA_DCL -#define BEGIN_CODE .text -#define END_CODE -#define BEGIN_DATA -#define END_DATA -#define BEGIN_BSS -#define END_BSS -#define END - -/* - * Following must be tailor 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) -#define EXTERN(sym) .globl SYM (sym) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/cpu/i960/cpu.c b/c/src/exec/score/cpu/i960/cpu.c deleted file mode 100644 index 68ecb0525c..0000000000 --- a/c/src/exec/score/cpu/i960/cpu.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Intel i960CA Dependent Source - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#if defined(__i960CA__) || defined(__i960_CA__) || defined(__i960CA) -#else -#warning "*** ENTIRE FILE IMPLEMENTED & TESTED FOR CA ONLY ***" -#warning "*** THIS FILE WILL NOT COMPILE ON ANOTHER FAMILY MEMBER ***" -#endif - -#include -#include -#include - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - address of disptaching routine - * - * OUTPUT PARAMETERS: NONE - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - _CPU_Table = *cpu_table; - -} - -/* _CPU__ISR_Install_vector - * - * Install the RTEMS vector wrapper in the CPU's interrupt table. - * - * 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 - * - */ - -#define _Is_vector_caching_enabled( _prcb ) \ - ((_prcb)->control_tbl->icon & 0x2000) - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -) -{ - i960ca_PRCB *prcb = _CPU_Table.Prcb; - proc_ptr *cached_intr_tbl = NULL; - -/* The i80960CA does not support vectors 0-7. The first 9 entries - * in the Interrupt Table are used to manage pending interrupts. - * Thus vector 8, the first valid vector number, is actually in - * slot 9 in the table. - */ - - *old_handler = _ISR_Vector_table[ vector ]; - - _ISR_Vector_table[ vector ] = new_handler; - - prcb->intr_tbl[ vector + 1 ] = _ISR_Handler; - if ( _Is_vector_caching_enabled( prcb ) ) - if ( (vector & 0xf) == 0x2 ) /* cacheable? */ - cached_intr_tbl[ vector >> 4 ] = _ISR_Handler; -} - -/*PAGE - * - * _CPU_Install_interrupt_stack - */ - -#define soft_reset( prcb ) \ - { register i960ca_PRCB *_prcb = (prcb); \ - register unsigned32 *_next=0; \ - register unsigned32 _cmd = 0x30000; \ - asm volatile( "lda next,%1; \ - sysctl %0,%1,%2; \ - next: mov g0,g0" \ - : "=d" (_cmd), "=d" (_next), "=d" (_prcb) \ - : "0" (_cmd), "1" (_next), "2" (_prcb) ); \ - } - -void _CPU_Install_interrupt_stack( void ) -{ - i960ca_PRCB *prcb = _CPU_Table.Prcb; - unsigned32 level; - - /* - * Set the Interrupt Stack in the PRCB and force a reload of it. - * Interrupts are disabled for safety. - */ - - _CPU_ISR_Disable( level ); - - prcb->intr_stack = _CPU_Interrupt_stack_low; - - soft_reset( prcb ); - - _CPU_ISR_Enable( level ); -} diff --git a/c/src/exec/score/cpu/i960/cpu.h b/c/src/exec/score/cpu/i960/cpu.h deleted file mode 100644 index 71a3341702..0000000000 --- a/c/src/exec/score/cpu/i960/cpu.h +++ /dev/null @@ -1,424 +0,0 @@ -/* cpu.h - * - * This include file contains information pertaining to the Intel - * i960 processor family. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __CPU_h -#define __CPU_h - -#ifdef __cplusplus -extern "C" { -#endif - -#pragma align 4 /* for GNU C structure alignment */ - -#include - -#define CPU_INLINE_ENABLE_DISPATCH FALSE -#define CPU_UNROLL_ENQUEUE_PRIORITY FALSE - -/* - * Use the i960's hardware interrupt stack support and have the - * interrupt manager allocate the memory for it. - */ - -#define CPU_HAS_SOFTWARE_INTERRUPT_STACK FALSE -#define CPU_HAS_HARDWARE_INTERRUPT_STACK TRUE -#define CPU_ALLOCATE_INTERRUPT_STACK TRUE - -/* - * Some family members have no FP (SA/KA/CA/CF), others have it built in - * (KB/MC/MX). There does not appear to be an external coprocessor - * for this family. - */ - -#if ( I960_HAS_FPU == 1 ) -#define CPU_HARDWARE_FP TRUE -#error "Floating point support for i960 family has been implemented!!!" -#else -#define CPU_HARDWARE_FP FALSE -#endif - -#define CPU_ALL_TASKS_ARE_FP FALSE -#define CPU_IDLE_TASK_IS_FP FALSE -#define CPU_USE_DEFERRED_FP_SWITCH TRUE - -#define CPU_PROVIDES_IDLE_THREAD_BODY FALSE -#define CPU_STACK_GROWS_UP TRUE -#define CPU_STRUCTURE_ALIGNMENT __attribute__ ((aligned (16))) - -/* structures */ - -/* - * Basic integer context for the i960 family. - */ - -typedef struct { - void *r0_pfp; /* (r0) Previous Frame Pointer */ - void *r1_sp; /* (r1) Stack Pointer */ - unsigned32 pc; /* (pc) Processor Control */ - void *g8; /* (g8) Global Register 8 */ - void *g9; /* (g9) Global Register 9 */ - void *g10; /* (g10) Global Register 10 */ - void *g11; /* (g11) Global Register 11 */ - void *g12; /* (g12) Global Register 12 */ - void *g13; /* (g13) Global Register 13 */ - unsigned32 g14; /* (g14) Global Register 14 */ - void *g15_fp; /* (g15) Frame Pointer */ -} Context_Control; - -/* - * FP context save area for the i960 Numeric Extension - */ - -typedef struct { - unsigned32 fp0_1; /* (fp0) first word */ - unsigned32 fp0_2; /* (fp0) second word */ - unsigned32 fp0_3; /* (fp0) third word */ - unsigned32 fp1_1; /* (fp1) first word */ - unsigned32 fp1_2; /* (fp1) second word */ - unsigned32 fp1_3; /* (fp1) third word */ - unsigned32 fp2_1; /* (fp2) first word */ - unsigned32 fp2_2; /* (fp2) second word */ - unsigned32 fp2_3; /* (fp2) third word */ - unsigned32 fp3_1; /* (fp3) first word */ - unsigned32 fp3_2; /* (fp3) second word */ - unsigned32 fp3_3; /* (fp3) third word */ -} Context_Control_fp; - -/* - * The following structure defines the set of information saved - * on the current stack by RTEMS upon receipt of each interrupt. - */ - -typedef struct { - unsigned32 TBD; /* XXX Fix for this CPU */ -} CPU_Interrupt_frame; - -/* - * Call frame for the i960 family. - */ - -typedef struct { - void *r0_pfp; /* (r0) Previous Frame Pointer */ - void *r1_sp; /* (r1) Stack Pointer */ - void *r2_rip; /* (r2) Return Instruction Pointer */ - void *r3; /* (r3) Local Register 3 */ - void *r4; /* (r4) Local Register 4 */ - void *r5; /* (r5) Local Register 5 */ - void *r6; /* (r6) Local Register 6 */ - void *r7; /* (r7) Local Register 7 */ - void *r8; /* (r8) Local Register 8 */ - void *r9; /* (r9) Local Register 9 */ - void *r10; /* (r10) Local Register 10 */ - void *r11; /* (r11) Local Register 11 */ - void *r12; /* (r12) Local Register 12 */ - void *r13; /* (r13) Local Register 13 */ - void *r14; /* (r14) Local Register 14 */ - void *r15; /* (r15) Local Register 15 */ - /* XXX Looks like sometimes there is FP stuff here (MC manual)? */ -} CPU_Call_frame; - -/* - * The following table contains the information required to configure - * the i960 specific parameters. - */ - -typedef struct { - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 interrupt_stack_size; - unsigned32 extra_system_initialization_stack; -#if defined(__i960CA__) || defined(__i960_CA__) || defined(__i960CA) - i960ca_PRCB *Prcb; -#endif -} rtems_cpu_table; - -/* variables */ - -EXTERN void *_CPU_Interrupt_stack_low; -EXTERN void *_CPU_Interrupt_stack_high; - -/* constants */ - -/* - * This defines the number of levels and the mask used to pick those - * bits out of a thread mode. - */ - -#define CPU_MODES_INTERRUPT_LEVEL 0x0000001f /* interrupt level in mode */ -#define CPU_MODES_INTERRUPT_MASK 0x0000001f /* interrupt level in mode */ - -/* - * context size area for floating point - */ - -#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp ) - -/* - * extra stack required by system initialization thread - * - * NOTE: Make sure this stays positive ... - */ - -#define CPU_SYSTEM_INITIALIZATION_THREAD_EXTRA_STACK \ - (4096 - CPU_STACK_MINIMUM_SIZE) - -/* - * i960 family supports 256 distinct vectors. - */ - -#define CPU_INTERRUPT_NUMBER_OF_VECTORS 256 - -/* - * Minimum size of a thread's stack. - * - * NOTE: See CPU_SYSTEM_INITIALIZATION_THREAD_EXTRA_STACK - */ - -#define CPU_STACK_MINIMUM_SIZE 1024 - -/* - * i960 is pretty tolerant of alignment. Just put things on 4 byte boundaries. - */ - -#define CPU_ALIGNMENT 4 -#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT -#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT - -/* - * i960ca stack requires 16 byte alignment - * - * NOTE: This factor may need to be family member dependent. - */ - -#define CPU_STACK_ALIGNMENT 16 - -/* macros */ - -/* - * ISR handler macros - * - * These macros perform the following functions: - * + disable all maskable CPU interrupts - * + restore previous interrupt level (enable) - * + temporarily restore interrupts (flash) - * + set a particular level - */ - -#define _CPU_ISR_Disable( _level ) i960_disable_interrupts( _level ) -#define _CPU_ISR_Enable( _level ) i960_enable_interrupts( _level ) -#define _CPU_ISR_Flash( _level ) i960_flash_interrupts( _level ) - -#define _CPU_ISR_Set_level( newlevel ) \ - { \ - unsigned32 _mask, _level=(newlevel); \ - \ - __asm__ volatile ( "ldconst 0x1f0000,%0; \ - modpc 0,%0,%1" : "=d" (_mask), "=d" (_level) \ - : "0" (_mask), "1" (_level) \ - ); \ - } - -/* ISR handler section macros */ - -/* - * Context handler macros - * - * These macros perform the following functions: - * + initialize a context area - * + restart the current thread - * + calculate the initial pointer into a FP context area - * + initialize an FP context area - */ - -#define _CPU_Context_Initialize( _the_context, _stack_base, _size, \ - _isr, _entry ) \ - { CPU_Call_frame *_texit_frame; \ - unsigned32 _mask; \ - unsigned32 _base_pc; \ - unsigned32 _stack_tmp; \ - void *_stack; \ - \ - _stack_tmp = (unsigned32)(_stack_base) + CPU_STACK_ALIGNMENT; \ - _stack_tmp &= ~(CPU_STACK_ALIGNMENT - 1); \ - _stack = (void *) _stack_tmp; \ - \ - __asm__ volatile ( "flushreg" : : ); /* flush register cache */ \ - \ - (_the_context)->r0_pfp = _stack; \ - (_the_context)->g15_fp = _stack + (1 * sizeof(CPU_Call_frame)); \ - (_the_context)->r1_sp = _stack + (2 * sizeof(CPU_Call_frame)); \ - __asm__ volatile ( "ldconst 0x1f0000,%0 ; " \ - "modpc 0,0,%1 ; " \ - "andnot %0,%1,%1 ; " \ - : "=d" (_mask), "=d" (_base_pc) : ); \ - (_the_context)->pc = _base_pc | ((_isr) << 16); \ - (_the_context)->g14 = 0; \ - \ - _texit_frame = (CPU_Call_frame *)_stack; \ - _texit_frame->r0_pfp = NULL; \ - _texit_frame->r1_sp = (_the_context)->g15_fp; \ - _texit_frame->r2_rip = (_entry); \ - } - -#define _CPU_Context_Restart_self( _the_context ) \ - _CPU_Context_restore( (_the_context) ); - -#define _CPU_Context_Fp_start( _base, _offset ) NULL - -#define _CPU_Context_Initialize_fp( _fp_area ) - -/* end of Context handler macros */ - -/* - * Fatal Error manager macros - * - * These macros perform the following functions: - * + disable interrupts and halt the CPU - */ - -#define _CPU_Fatal_halt( _errorcode ) \ - { unsigned32 _mask, _level; \ - unsigned32 _error = (_errorcode); \ - \ - __asm__ volatile ( "ldconst 0x1f0000,%0 ; \ - mov %0,%1 ; \ - modpc 0,%0,%1 ; \ - mov %2,g0 ; \ - self: b self " \ - : "=d" (_mask), "=d" (_level), "=d" (_error) : ); \ - } - -/* end of Fatal Error Manager macros */ - -/* - * Bitfield handler macros - * - * These macros perform the following functions: - * + scan for the highest numbered (MSB) set in a 16 bit bitfield - */ - -#define _CPU_Bitfield_Find_first_bit( _value, _output ) \ - { unsigned32 _search = (_value); \ - \ - __asm__ volatile ( "scanbit %0,%1 " \ - : "=d" (_search), "=d" (_output) \ - : "0" (_search), "1" (_output) ); \ - } - -/* end of Bitfield handler macros */ - -/* - * Priority handler macros - * - * These macros perform the following functions: - * + return a mask with the bit for this major/minor portion of - * of thread priority set. - * + translate the bit number returned by "Bitfield_find_first_bit" - * into an index into the thread ready chain bit maps - */ - -#define _CPU_Priority_Mask( _bit_number ) \ - ( 0x8000 >> (_bit_number) ) - -#define _CPU_Priority_Bits_index( _priority ) \ - ( 15 - (_priority) ) - -/* end of Priority handler macros */ - -/* functions */ - -/* - * _CPU_Initialize - * - * This routine performs CPU dependent initialization. - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) -); - -/* - * _CPU_ISR_install_vector - * - * This routine installs an interrupt vector. - */ - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -); - -/* - * _CPU_Install_interrupt_stack - * - * This routine installs the hardware interrupt stack pointer. - */ - -void _CPU_Install_interrupt_stack( void ); - -/* - * _CPU_Context_switch - * - * This routine switches from the run context to the heir context. - */ - -void _CPU_Context_switch( - Context_Control *run, - Context_Control *heir -); - -/* - * _CPU_Context_restore - * - * This routine is generallu used only to restart self in an - * efficient manner and avoid stack conflicts. - */ - -void _CPU_Context_restore( - Context_Control *new_context -); - -/* - * _CPU_Context_save_fp - * - * This routine saves the floating point context passed to it. - */ - -void _CPU_Context_save_fp( - void **fp_context_ptr -); - -/* - * _CPU_Context_restore_fp - * - * This routine restores the floating point context passed to it. - */ - -void _CPU_Context_restore_fp( - void **fp_context_ptr -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/cpu/i960/cpu_asm.s b/c/src/exec/score/cpu/i960/cpu_asm.s deleted file mode 100644 index eb11e14760..0000000000 --- a/c/src/exec/score/cpu/i960/cpu_asm.s +++ /dev/null @@ -1,199 +0,0 @@ -/* cpu_asm.s - * - * This file contains all assembly code for the i960CA implementation - * of RTEMS. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - .text -/* - * Format of i960ca Register structure - */ - -.set REG_R0_PFP , 0 # (r0) Previous Frame Pointer -.set REG_R1_SP , REG_R0_PFP+4 # (r1) Stack Pointer -.set REG_PC , REG_R1_SP+4 # (pc) Processor Controls -.set REG_G8 , REG_PC+4 # (g8) Global Register 8 -.set REG_G9 , REG_G8+4 # (g9) Global Register 9 -.set REG_G10 , REG_G9+4 # (g10) Global Register 10 -.set REG_G11 , REG_G10+4 # (g11) Global Register 11 -.set REG_G12 , REG_G11+4 # (g12) Global Register 12 -.set REG_G13 , REG_G12+4 # (g13) Global Register 13 -.set REG_G14 , REG_G13+4 # (g14) Global Register 14 -.set REG_G15_FP , REG_G14+4 # (g15) Global Register 15 -.set SIZE_REGS , REG_G15_FP+4 # size of cpu_context_registers - # structure - -/* - * void _CPU_Context_switch( run_context, heir_context ) - * - * This routine performs a normal non-FP context. - */ - .align 4 - .globl __CPU_Context_switch - -__CPU_Context_switch: - modpc 0,0,g2 # get old intr level (PC) - st g2,REG_PC(g0) # save pc - stq g8,REG_G8(g0) # save g8-g11 - stq g12,REG_G12(g0) # save g12-g15 - stl pfp,REG_R0_PFP(g0) # save pfp, sp - -restore: flushreg # flush register cache - ldconst 0x001f0000,g2 # g2 = PC mask - ld REG_PC(g1),g3 # thread->Regs.pc = pc; - ldq REG_G12(g1),g12 # restore g12-g15 - ldl REG_R0_PFP(g1),pfp # restore pfp, sp - ldq REG_G8(g1),g8 # restore g8-g11 - modpc 0,g2,g3 # restore PC register - ret - -/* - * void _CPU_Context_restore( new_context ) - * - * This routine performs a normal non-FP context. - */ - - .globl __CPU_Context_restore -__CPU_Context_restore: - mov g0,g1 # g0 = _Thread_executing - b restore - -/*PAGE - * void _CPU_Context_save_fp_context( &fp_context_ptr ) - * void _CPU_Context_restore_fp_context( &fp_context_ptr ) - * - * There is currently no hardware floating point for the i960. - */ - - .globl __CPU_Context_save_fp - .globl __CPU_Context_restore_fp -__CPU_Context_save_fp: -__CPU_Context_restore_fp: -#if ( I960_HAS_FPU == 1 ) -#error "Floating point support for i960 family has been implemented!!!" -#endif - ret - -/*PAGE - * void __ISR_Handler() - * - * This routine provides the RTEMS interrupt management. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * NOTE: - * Upon entry, the supervisor stack will contain a stack frame - * back to the interrupted thread and the interrupt stack will contain - * an interrupt stack frame. If dispatching is enabled, this - * is the outer most interrupt, and (a context switch is necessary or - * the current thread has signals), then set up the supervisor stack to - * transfer control to the interrupt dispatcher. - */ - - .globl __ISR_Handler -__ISR_Handler: - #ldconst 1,r8 - #modpc 0,r8,r8 # enable tracing - - # r4 = &_Thread_Dispatch_disable_level - ld __Thread_Dispatch_disable_level,r4 - movl g0,r8 # save g0-g1 - - ld -16+8(fp),g0 # g0 = vector number - movl g2,r10 # save g2-g3 - - ld __ISR_Nest_level,r5 # r5 = &_Isr_nest_level - mov g14,r7 # save g14 - - lda 0,g14 # NOT Branch and Link - movl g4,r12 # save g4-g5 - - lda 1(r4),r4 # increment dispatch disable level - movl g6,r14 # save g6-g7 - - ld __ISR_Vector_table[g0*4],g1 # g1 = Users handler - addo 1,r5,r5 # increment ISR level - - st r4,__Thread_Dispatch_disable_level - # one ISR nest level deeper - subo 1,r4,r4 # decrement dispatch disable level - - st r5,__ISR_Nest_level # disable multitasking - subo 1,r5,r5 # decrement ISR nest level - - callx (g1) # invoke user ISR - - st r4,__Thread_Dispatch_disable_level - # unnest multitasking - st r5,__ISR_Nest_level # one less ISR nest level - cmpobne.f 0,r4,exit # If dispatch disabled, exit - ldl -16(fp),g0 # g0 = threads PC reg - # g1 = threads AC reg - ld __Context_Switch_necessary,r6 - # r6 = Is thread switch necessary? - bbs.f 13,g0,exit # not outer level, then exit - cmpobne.f 0,r6,bframe # Switch necessary? - - ld __ISR_Signals_to_thread_executing,g2 - # signals sent to Run_thread - # while in interrupt handler? - cmpobe.f 0,g2,exit # No, then exit - -bframe: mov 0,g2 - st g2,__ISR_Signals_to_thread_executing - - ldconst 0x1f0000,g2 # g2 = intr disable mask - mov g2,g3 # g3 = new intr level - modpc 0,g2,g3 # set new level - - andnot 7,pfp,r4 # r4 = pfp without ret type - flushreg # flush registers - # push _Isr_dispatch ret frame - # build ISF in r4-r6 - ldconst 64,g2 # g2 = size of stack frame - ld 4(r4),g3 # g3 = previous sp - addo g2,g3,r5 # r5 = _Isr_dispatch SP - lda __ISR_Dispatch,r6 # r6 = _Isr_dispatch entry - stt r4,(g3) # set _Isr_dispatch ret info - st g1,16(g3) # set r4 = AC for ISR disp - or 7,g3,pfp # pfp to _Isr_dispatch - -exit: mov r7,g14 # restore g14 - movq r8,g0 # restore g0-g3 - movq r12,g4 # restore g4-g7 - ret - - -/*PAGE - * - * void __ISR_Dispatch() - * - * Entry point from the outermost interrupt service routine exit. - * The current stack is the supervisor mode stack. - */ - -__ISR_Dispatch: - mov g14,r7 - mov 0,g14 - movq g0,r8 - movq g4,r12 - call __Thread_Dispatch - - ldconst -1,r5 # r5 = reload mask - modac r5,r4,r4 # restore threads AC register - mov r7,g14 - movq r8,g0 - movq r12,g4 - ret diff --git a/c/src/exec/score/cpu/i960/i960.h b/c/src/exec/score/cpu/i960/i960.h deleted file mode 100644 index fe7e68e95f..0000000000 --- a/c/src/exec/score/cpu/i960/i960.h +++ /dev/null @@ -1,289 +0,0 @@ -/* i960.h - * - * This include file contains information pertaining to the Intel - * i960 processor family. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __i960_h -#define __i960_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following define the CPU Family and Model within the family - * - * NOTE: The string "REPLACE_THIS_WITH_THE_CPU_MODEL" is replaced - * with the name of the appropriate macro for this target CPU. - */ - -#define i960 -#define REPLACE_THIS_WITH_THE_CPU_MODEL -#define REPLACE_THIS_WITH_THE_BSP - -/* - * This file contains the information required to build - * RTEMS for a particular member of the Intel i960 - * family. It does this by setting variables to indicate - * which implementation dependent features are present - * in a particular member of the family. - * - * NOTE: For now i960 is really the i960ca. eventually need - * to put in at least support for FPU. - */ - -#if defined(i960ca) - -#define RTEMS_MODEL_NAME "i960ca" -#define I960_HAS_FPU 0 - -#else - -#error "Unsupported CPU Model" - -#endif - -/* - * Define the name of the CPU family. - */ - -#define CPU_NAME "Intel i960" - -#ifndef ASM - -/* - * This section defines the basic types for this processor. - */ - -typedef unsigned char unsigned8; /* 8-bit unsigned integer */ -typedef unsigned short unsigned16; /* 16-bit unsigned integer */ -typedef unsigned int unsigned32; /* 32-bit unsigned integer */ -typedef unsigned long long unsigned64; /* 64-bit unsigned integer */ - -typedef unsigned32 Priority_Bit_map_control; - -typedef char signed8; /* 8-bit signed integer */ -typedef short signed16; /* 16-bit signed integer */ -typedef int signed32; /* 32-bit signed integer */ -typedef long long signed64; /* 64-bit signed integer */ - -typedef unsigned32 boolean; /* Boolean value */ - -typedef float single_precision; /* single precision float */ -typedef double double_precision; /* double precision float */ - -/* - * XXX should have an ifdef here and have stuff for the other - * XXX family members... - */ - -#if defined(__i960CA__) || defined(__i960_CA__) || defined(__i960CA) - -/* i960CA control structures */ - -/* Intel i960CA Control Table */ - -typedef struct { - /* Control Group 0 */ - unsigned int ipb0; /* IP breakpoint 0 */ - unsigned int ipb1; /* IP breakpoint 1 */ - unsigned int dab0; /* data address breakpoint 0 */ - unsigned int dab1; /* data address breakpoint 1 */ - /* Control Group 1 */ - unsigned int imap0; /* interrupt map 0 */ - unsigned int imap1; /* interrupt map 1 */ - unsigned int imap2; /* interrupt map 2 */ - unsigned int icon; /* interrupt control */ - /* Control Group 2 */ - unsigned int mcon0; /* memory region 0 configuration */ - unsigned int mcon1; /* memory region 1 configuration */ - unsigned int mcon2; /* memory region 2 configuration */ - unsigned int mcon3; /* memory region 3 configuration */ - /* Control Group 3 */ - unsigned int mcon4; /* memory region 4 configuration */ - unsigned int mcon5; /* memory region 5 configuration */ - unsigned int mcon6; /* memory region 6 configuration */ - unsigned int mcon7; /* memory region 7 configuration */ - /* Control Group 4 */ - unsigned int mcon8; /* memory region 8 configuration */ - unsigned int mcon9; /* memory region 9 configuration */ - unsigned int mcon10; /* memory region 10 configuration */ - unsigned int mcon11; /* memory region 11 configuration */ - /* Control Group 5 */ - unsigned int mcon12; /* memory region 12 configuration */ - unsigned int mcon13; /* memory region 13 configuration */ - unsigned int mcon14; /* memory region 14 configuration */ - unsigned int mcon15; /* memory region 15 configuration */ - /* Control Group 6 */ - unsigned int bpcon; /* breakpoint control */ - unsigned int tc; /* trace control */ - unsigned int bcon; /* bus configuration control */ - unsigned int reserved; /* reserved */ -} i960ca_control_table; - -/* Intel i960CA Processor Control Block */ - -typedef struct { - unsigned int *fault_tbl; /* fault table base address */ - i960ca_control_table - *control_tbl; /* control table base address */ - unsigned int initial_ac; /* AC register initial value */ - unsigned int fault_config; /* fault configuration word */ - void **intr_tbl; /* interrupt table base address */ - void *sys_proc_tbl; /* system procedure table - base address */ - unsigned int reserved; /* reserved */ - unsigned int *intr_stack; /* interrupt stack pointer */ - unsigned int ins_cache_cfg; /* instruction cache - configuration word */ - unsigned int reg_cache_cfg; /* register cache configuration word */ -} i960ca_PRCB; - -#endif - -typedef void ( *i960_isr )( void ); - -#define i960_disable_interrupts( oldlevel ) \ - { (oldlevel) = 0x1f0000; \ - asm volatile ( "modpc 0,%1,%1" \ - : "=d" ((oldlevel)) \ - : "0" ((oldlevel)) ); \ - } - -#define i960_enable_interrupts( oldlevel ) \ - { unsigned int _mask = 0x1f0000; \ - asm volatile ( "modpc 0,%0,%1" \ - : "=d" (_mask), "=d" ((oldlevel)) \ - : "0" (_mask), "1" ((oldlevel)) ); \ - } - -#define i960_flash_interrupts( oldlevel ) \ - { unsigned int _mask = 0x1f0000; \ - asm volatile ( "modpc 0,%0,%1 ; \ - mov %0,%1 ; \ - modpc 0,%0,%1" \ - : "=d" (_mask), "=d" ((oldlevel)) \ - : "0" (_mask), "1" ((oldlevel)) ); \ - } - -#define i960_atomic_modify( mask, addr, prev ) \ - { register unsigned int _mask = (mask); \ - register unsigned int *_addr = (unsigned int *)(addr); \ - asm volatile( "atmod %0,%1,%1" \ - : "=d" (_addr), "=d" (_mask) \ - : "0" (_addr), "1" (_mask) ); \ - (prev) = _mask; \ - } - - -#define atomic_modify( _mask, _address, _previous ) \ - i960_atomic_modify( _mask, _address, _previous ) - -#define i960_enable_tracing() \ - { register unsigned32 _pc = 0x1; \ - asm volatile( "modpc 0,%0,%0" : "=d" (_pc) : "0" (_pc) ); \ - } - -#define i960_unmask_intr( xint ) \ - { register unsigned32 _mask= (1<<(xint)); \ - asm volatile( "or sf1,%0,sf1" : "=d" (_mask) : "0" (_mask) ); \ - } - -#define i960_mask_intr( xint ) \ - { register unsigned32 _mask= (1<<(xint)); \ - asm volatile( "andnot %0,sf1,sf1" : "=d" (_mask) : "0" (_mask) ); \ - } - -#define i960_clear_intr( xint ) \ - { register unsigned32 _xint=(xint); \ - asm volatile( "loop_til_cleared: - clrbit %0,sf0,sf0 ; \ - bbs %0,sf0,loop_til_cleared" \ - : "=d" (_xint) : "0" (_xint) ); \ - } - -#define i960_reload_ctl_group( group ) \ - { register int _cmd = ((group)|0x400) ; \ - asm volatile( "sysctl %0,%0,%0" : "=d" (_cmd) : "0" (_cmd) ); \ - } - -#define i960_cause_intr( intr ) \ - { register int _intr = (intr); \ - asm volatile( "sysctl %0,%0,%0" : "=d" (_intr) : "0" (_intr) ); \ - } - -#define i960_soft_reset( prcb ) \ - { register i960ca_PRCB *_prcb = (prcb); \ - register unsigned32 *_next=0; \ - register unsigned32 _cmd = 0x30000; \ - asm volatile( "lda next,%1; \ - sysctl %0,%1,%2; \ - next: mov g0,g0" \ - : "=d" (_cmd), "=d" (_next), "=d" (_prcb) \ - : "0" (_cmd), "1" (_next), "2" (_prcb) ); \ - } - -static inline unsigned32 i960_pend_intrs() -{ register unsigned32 _intr=0; - asm volatile( "mov sf0,%0" : "=d" (_intr) : "0" (_intr) ); - return ( _intr ); -} - -static inline unsigned32 i960_mask_intrs() -{ register unsigned32 _intr=0; - asm volatile( "mov sf1,%0" : "=d" (_intr) : "0" (_intr) ); - return( _intr ); -} - -static inline unsigned32 i960_get_fp() -{ register unsigned32 _fp=0; - asm volatile( "mov fp,%0" : "=d" (_fp) : "0" (_fp) ); - return ( _fp ); -} - -/* - * The following routine swaps the endian format of an unsigned int. - * It must be static because it is referenced indirectly. - * - * This version is based on code presented in Vol. 4, No. 4 of - * Insight 960. It is certainly something you wouldn't think - * of on your own. - */ - -static inline unsigned int CPU_swap_u32( - unsigned int value -) -{ - register unsigned int to_swap = value; - register unsigned int temp = 0xFF00FF00; - register unsigned int swapped = 0; - - /* to_swap swapped */ - asm volatile ( "rotate 16,%0,%2 ;" /* 0x12345678 0x56781234 */ - "modify %1,%0,%2 ;" /* 0x12345678 0x12785634 */ - "rotate 8,%2,%2" /* 0x12345678 0x78563412 */ - : "=r" (to_swap), "=r" (temp), "=r" (swapped) - : "0" (to_swap), "1" (temp), "2" (swapped) - ); - return( swapped ); -} - -#ifdef __cplusplus -} -#endif - -#endif /* !ASM */ - -#endif -/* end of include file */ diff --git a/c/src/exec/score/cpu/i960/rtems.s b/c/src/exec/score/cpu/i960/rtems.s deleted file mode 100644 index 8abf47a276..0000000000 --- a/c/src/exec/score/cpu/i960/rtems.s +++ /dev/null @@ -1,25 +0,0 @@ -/* rtems.s - * - * This file contains the single entry point code for - * the i960 implementation of RTEMS. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - .text - - .align 4 - .globl RTEMS - -RTEMS: - ld __Entry_points[g7*4],r4 - bx (r4) - diff --git a/c/src/exec/score/cpu/m68k/asm.h b/c/src/exec/score/cpu/m68k/asm.h deleted file mode 100644 index 068c58058c..0000000000 --- a/c/src/exec/score/cpu/m68k/asm.h +++ /dev/null @@ -1,127 +0,0 @@ -/* asm.h - * - * 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. - * On-Line Applications Research Corporation (OAR). - * - * $Id$ - */ - -#ifndef __M68k_ASM_h -#define __M68k_ASM_h - -/* - * Indicate we are in an assembly file and get the basic CPU definitions. - */ - -#define ASM -#include - -/* - * 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. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* 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 d0 REG (d0) -#define d1 REG (d1) -#define d2 REG (d2) -#define d3 REG (d3) -#define d4 REG (d4) -#define d5 REG (d5) -#define d6 REG (d6) -#define d7 REG (d7) -#define a0 REG (a0) -#define a1 REG (a1) -#define a2 REG (a2) -#define a3 REG (a3) -#define a4 REG (a4) -#define a5 REG (a5) -#define a6 REG (a6) -#define a7 REG (a7) - -#define msp REG (msp) -#define usp REG (usp) -#define isp REG (isp) -#define sr REG (sr) - -#define fp0 REG (fp0) -#define fp1 REG (fp1) -#define fp2 REG (fp2) -#define fp3 REG (fp3) -#define fp4 REG (fp4) -#define fp5 REG (fp5) -#define fp6 REG (fp6) -#define fp7 REG (fp7) - -#define fpc REG (fpc) -#define fpi REG (fpi) -#define fps REG (fps) - -/* - * Define macros to handle section beginning and ends. - */ - - -#define BEGIN_CODE_DCL .text -#define END_CODE_DCL -#define BEGIN_DATA_DCL .data -#define END_DATA_DCL -#define BEGIN_CODE .text -#define END_CODE -#define BEGIN_DATA -#define END_DATA -#define BEGIN_BSS -#define END_BSS -#define END - -/* - * Following must be tailor 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) -#define EXTERN(sym) .globl SYM (sym) - -#endif -/* end of include file */ - - diff --git a/c/src/exec/score/cpu/m68k/cpu.c b/c/src/exec/score/cpu/m68k/cpu.c deleted file mode 100644 index 45484da1f4..0000000000 --- a/c/src/exec/score/cpu/m68k/cpu.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Motorola MC68020 Dependent Source - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - entry pointer to thread dispatcher - * - * OUTPUT PARAMETERS: NONE - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - _CPU_Table = *cpu_table; - -} - -/* _CPU_ISR_install_vector - * - * This kernel routine installs the RTEMS handler for the - * specified vector. - * - * Input parameters: - * vector - interrupt vector number - * new_handler - replacement ISR for this vector number - * old_handler - former ISR for this vector number - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -) -{ - proc_ptr *interrupt_table = NULL; - - m68k_get_vbr( interrupt_table ); - - *old_handler = _ISR_Vector_table[ vector ]; - - _ISR_Vector_table[ vector ] = new_handler; - interrupt_table[ vector ] = _ISR_Handler; -} - - -/*PAGE - * - * _CPU_Install_interrupt_stack - */ - -void _CPU_Install_interrupt_stack( void ) -{ -#if ( M68K_HAS_SEPARATE_STACKS == 1 ) - void *isp = _CPU_Interrupt_stack_high; - - asm volatile ( "movec %0,%%isp" : "=r" (isp) : "0" (isp) ); -#else -#warning "FIX ME... HOW DO I INSTALL THE INTERRUPT STACK!!!" -#endif -} - diff --git a/c/src/exec/score/cpu/m68k/cpu.h b/c/src/exec/score/cpu/m68k/cpu.h deleted file mode 100644 index a1dd27db57..0000000000 --- a/c/src/exec/score/cpu/m68k/cpu.h +++ /dev/null @@ -1,412 +0,0 @@ -/* cpu.h - * - * This include file contains information pertaining to the Motorola - * m68xxx processor family. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __CPU_h -#define __CPU_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * If defined, this causes some of the macros to initialize their - * variables to zero before doing inline assembly. This gets rid - * of compile time warnings at the cost of a little execution time - * in some time critical routines. - */ - -#define NO_UNINITIALIZED_WARNINGS - -#include - -/* conditional compilation parameters */ - -#define CPU_INLINE_ENABLE_DISPATCH TRUE -#define CPU_UNROLL_ENQUEUE_PRIORITY FALSE - -/* - * Use the m68k's hardware interrupt stack support and have the - * interrupt manager allocate the memory for it. - */ - -#define CPU_HAS_SOFTWARE_INTERRUPT_STACK FALSE -#define CPU_HAS_HARDWARE_INTERRUPT_STACK TRUE -#define CPU_ALLOCATE_INTERRUPT_STACK TRUE - -/* - * Some family members have no FP, some have an FPU such as the - * MC68881/MC68882 for the MC68020, others have it built in (MC68030, 040). - */ - -#if ( M68K_HAS_FPU == 1 ) -#define CPU_HARDWARE_FP TRUE -#else -#define CPU_HARDWARE_FP FALSE -#endif - -/* - * All tasks are not by default floating point tasks on this CPU. - * The IDLE task does not have a floating point context on this CPU. - * It is safe to use the deferred floating point context switch - * algorithm on this CPU. - */ - -#define CPU_ALL_TASKS_ARE_FP FALSE -#define CPU_IDLE_TASK_IS_FP FALSE -#define CPU_USE_DEFERRED_FP_SWITCH TRUE - -#define CPU_PROVIDES_IDLE_THREAD_BODY FALSE -#define CPU_STACK_GROWS_UP FALSE -#define CPU_STRUCTURE_ALIGNMENT - -/* structures */ - -/* - * Basic integer context for the m68k family. - */ - -typedef struct { - unsigned32 sr; /* (sr) status register */ - unsigned32 d2; /* (d2) data register 2 */ - unsigned32 d3; /* (d3) data register 3 */ - unsigned32 d4; /* (d4) data register 4 */ - unsigned32 d5; /* (d5) data register 5 */ - unsigned32 d6; /* (d6) data register 6 */ - unsigned32 d7; /* (d7) data register 7 */ - void *a2; /* (a2) address register 2 */ - void *a3; /* (a3) address register 3 */ - void *a4; /* (a4) address register 4 */ - void *a5; /* (a5) address register 5 */ - void *a6; /* (a6) address register 6 */ - void *a7_msp; /* (a7) master stack pointer */ -} Context_Control; - -/* - * FP context save area for the M68881/M68882 numeric coprocessors. - */ - -typedef struct { - unsigned8 fp_save_area[332]; /* 216 bytes for FSAVE/FRESTORE */ - /* 96 bytes for FMOVEM FP0-7 */ - /* 12 bytes for FMOVEM CREGS */ - /* 4 bytes for non-null flag */ -} Context_Control_fp; - -/* - * The following structure defines the set of information saved - * on the current stack by RTEMS upon receipt of each interrupt. - */ - -typedef struct { - unsigned32 TBD; /* XXX Fix for this CPU */ -} CPU_Interrupt_frame; - -/* - * The following table contains the information required to configure - * the m68k specific parameters. - */ - -typedef struct { - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 interrupt_stack_size; - unsigned32 extra_system_initialization_stack; - m68k_isr *interrupt_vector_table; -} rtems_cpu_table; - -/* variables */ - -EXTERN void *_CPU_Interrupt_stack_low; -EXTERN void *_CPU_Interrupt_stack_high; - -/* constants */ - -/* - * This defines the number of levels and the mask used to pick those - * bits out of a thread mode. - */ - -#define CPU_MODES_INTERRUPT_LEVEL 0x00000007 /* interrupt level in mode */ -#define CPU_MODES_INTERRUPT_MASK 0x00000007 /* interrupt level in mode */ - -/* - * context size area for floating point - */ - -#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp ) - -/* - * extra stack required by system initialization thread - */ - -#define CPU_SYSTEM_INITIALIZATION_THREAD_EXTRA_STACK 1024 - -/* - * m68k family supports 256 distinct vectors. - */ - -#define CPU_INTERRUPT_NUMBER_OF_VECTORS 256 - -/* - * Minimum size of a thread's stack. - * - * NOTE: 256 bytes is probably too low in most cases. - */ - -#define CPU_STACK_MINIMUM_SIZE 256 - -/* - * m68k is pretty tolerant of alignment. Just put things on 4 byte boundaries. - */ - -#define CPU_ALIGNMENT 4 -#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT -#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT - -/* - * On m68k thread stacks require no further alignment after allocation - * from the Workspace. - */ - -#define CPU_STACK_ALIGNMENT 0 - -/* macros */ - -/* - * ISR handler macros - * - * These macros perform the following functions: - * + disable all maskable CPU interrupts - * + restore previous interrupt level (enable) - * + temporarily restore interrupts (flash) - * + set a particular level - */ - -#define _CPU_ISR_Disable( _level ) \ - m68k_disable_interrupts( _level ) - -#define _CPU_ISR_Enable( _level ) \ - m68k_enable_interrupts( _level ) - -#define _CPU_ISR_Flash( _level ) \ - m68k_flash_interrupts( _level ) - -#define _CPU_ISR_Set_level( _newlevel ) \ - m68k_set_interrupt_level( _newlevel ) - -/* end of ISR handler macros */ - -/* - * Context handler macros - * - * These macros perform the following functions: - * + initialize a context area - * + restart the current thread - * + calculate the initial pointer into a FP context area - * + initialize an FP context area - */ - -#define _CPU_Context_Initialize( _the_context, _stack_base, _size, \ - _isr, _entry_point ) \ - do { \ - void *_stack; \ - \ - (_the_context)->sr = 0x3000 | ((_isr) << 8); \ - _stack = (void *)(_stack_base) + (_size) - 4; \ - (_the_context)->a7_msp = _stack; \ - *(void **)_stack = (_entry_point); \ - } while ( 0 ) - -#define _CPU_Context_Restart_self( _the_context ) \ - { asm volatile( "movew %0,%%sr ; " \ - "moval %1,%%a7 ; " \ - "rts" \ - : "=d" ((_the_context)->sr), "=d" ((_the_context)->a7_msp) \ - : "0" ((_the_context)->sr), "1" ((_the_context)->a7_msp) ); \ - } - -#define _CPU_Context_Fp_start( _base, _offset ) \ - ((void *) \ - _Addresses_Add_offset( \ - (_base), \ - (_offset) + CPU_CONTEXT_FP_SIZE - 4 \ - ) \ - ) - -#define _CPU_Context_Initialize_fp( _fp_area ) \ - { unsigned32 *_fp_context = (unsigned32 *)*(_fp_area); \ - \ - *(--(_fp_context)) = 0; \ - *(_fp_area) = (unsigned8 *)(_fp_context); \ - } - -/* end of Context handler macros */ - -/* - * Fatal Error manager macros - * - * These macros perform the following functions: - * + disable interrupts and halt the CPU - */ - -#define _CPU_Fatal_halt( _error ) \ - { asm volatile( "movl %0,%%d0; " \ - "orw #0x0700,%%sr; " \ - "stop #0x2700" : "=d" ((_error)) : "0" ((_error)) ); \ - } - -/* end of Fatal Error manager macros */ - -/* - * Bitfield handler macros - * - * These macros perform the following functions: - * + scan for the highest numbered (MSB) set in a 16 bit bitfield - * - * NOTE: - * - * It appears that on the M68020 bitfield are always 32 bits wide - * when in a register. This code forces the bitfield to be in - * memory (it really always is anyway). This allows us to - * have a real 16 bit wide bitfield which operates "correctly." - */ - -#if ( M68K_HAS_BFFFO == 1 ) -#ifdef NO_UNINITIALIZED_WARNINGS - -#define _CPU_Bitfield_Find_first_bit( _value, _output ) \ - { \ - register void *__base = (void *)&(_value); \ - \ - (_output) = 0; /* avoids warnings */ \ - asm volatile( "bfffo (%0),#0,#16,%1" \ - : "=a" (__base), "=d" ((_output)) \ - : "0" (__base), "1" ((_output)) ) ; \ - } -#else -#define _CPU_Bitfield_Find_first_bit( _value, _output ) \ - { \ - register void *__base = (void *)&(_value); \ - \ - asm volatile( "bfffo (%0),#0,#16,%1" \ - : "=a" (__base), "=d" ((_output)) \ - : "0" (__base), "1" ((_output)) ) ; \ - } -#endif - -#else - -#define _CPU_Bitfield_Find_first_bit( _value, _output ) \ - (_output) = 0 /* avoids warnings */ - -#warning "FIX ME... NEEDS A SOFTWARE BFFFO IMPLEMENTATION" -#warning "SEE no_cpu/cpu.h FOR POSSIBLE ALGORITHMS" - -#endif - -/* end of Bitfield handler macros */ - -/* - * Priority handler macros - * - * These macros perform the following functions: - * + return a mask with the bit for this major/minor portion of - * of thread priority set. - * + translate the bit number returned by "Bitfield_find_first_bit" - * into an index into the thread ready chain bit maps - */ - -#define _CPU_Priority_Mask( _bit_number ) \ - ( 0x8000 >> (_bit_number) ) - -#define _CPU_Priority_Bits_index( _priority ) \ - (_priority) - -/* end of Priority handler macros */ - -/* functions */ - -/* - * _CPU_Initialize - * - * This routine performs CPU dependent initialization. - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) -); - -/* - * _CPU_ISR_install_vector - * - * This routine installs an interrupt vector. - */ - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -); - -/* - * _CPU_Install_interrupt_stack - * - * This routine installs the hardware interrupt stack pointer. - */ - -void _CPU_Install_interrupt_stack( void ); - -/* - * _CPU_Context_switch - * - * This routine switches from the run context to the heir context. - */ - -void _CPU_Context_switch( - Context_Control *run, - Context_Control *heir -); - -/* - * _CPU_Context_save_fp - * - * This routine saves the floating point context passed to it. - */ - -void _CPU_Context_restore_fp( - void **fp_context_ptr -); - -/* - * _CPU_Context_restore_fp - * - * This routine restores the floating point context passed to it. - */ - -void _CPU_Context_save_fp( - void **fp_context_ptr -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/cpu/m68k/cpu_asm.s b/c/src/exec/score/cpu/m68k/cpu_asm.s deleted file mode 100644 index d8615627a0..0000000000 --- a/c/src/exec/score/cpu/m68k/cpu_asm.s +++ /dev/null @@ -1,202 +0,0 @@ -/* cpu_asm.s - * - * This file contains all assembly code for the MC68020 implementation - * of RTEMS. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - - .text - -/* void _CPU_Context_switch( run_context, heir_context ) - * - * This routine performs a normal non-FP context. - */ - - .align 4 - .global SYM (_CPU_Context_switch) - -.set RUNCONTEXT_ARG, 4 | save context argument -.set HEIRCONTEXT_ARG, 8 | restore context argument - -SYM (_CPU_Context_switch): - moval a7@(RUNCONTEXT_ARG),a0| a0 = running thread context - movw sr,d1 | d1 = status register - movml d1-d7/a2-a7,a0@ | save context - - moval a7@(HEIRCONTEXT_ARG),a0| a0 = heir thread context -restore: movml a0@,d1-d7/a2-a7 | restore context - movw d1,sr | restore status register - rts - -/*PAGE - * void __CPU_Context_save_fp_context( &fp_context_ptr ) - * void __CPU_Context_restore_fp_context( &fp_context_ptr ) - * - * These routines are used to context switch a MC68881 or MC68882. - * - * NOTE: Context save and restore code is based upon the code shown - * on page 6-38 of the MC68881/68882 Users Manual (rev 1). - * - * CPU_FP_CONTEXT_SIZE is higher than expected to account for the - * -1 pushed at end of this sequence. - */ - -.set FPCONTEXT_ARG, 4 | save FP context argument - - .align 4 - .global SYM (_CPU_Context_save_fp) -SYM (_CPU_Context_save_fp): -#if ( M68K_HAS_FPU == 1 ) - moval a7@(FPCONTEXT_ARG),a1 | a1 = &ptr to context area - moval a1@,a0 | a0 = Save context area - fsave a0@- | save 68881/68882 state frame - tstb a0@ | check for a null frame - beq nosv | Yes, skip save of user model - fmovem fp0-fp7,a0@- | save data registers (fp0-fp7) - fmovem fpc/fps/fpi,a0@- | and save control registers - movl #-1,a0@- | place not-null flag on stack -nosv: movl a0,a1@ | save pointer to saved context -#endif - rts - - .align 4 - .global SYM (_CPU_Context_restore_fp) -SYM (_CPU_Context_restore_fp): -#if ( M68K_HAS_FPU == 1 ) - moval a7@(FPCONTEXT_ARG),a1 | a1 = &ptr to context area - moval a1@,a0 | a0 = address of saved context - tstb a0@ | Null context frame? - beq norst | Yes, skip fp restore - addql #4,a0 | throwaway non-null flag - fmovem a0@+,fpc/fps/fpi | restore control registers - fmovem a0@+,fp0-fp7 | restore data regs (fp0-fp7) -norst: frestore a0@+ | restore the fp state frame - movl a0,a1@ | save pointer to saved context -#endif - rts - -/*PAGE - * void _ISR_Handler() - * - * This routine provides the RTEMS interrupt management. - * - * NOTE: - * Upon entry, the master stack will contain an interrupt stack frame - * back to the interrupted thread and the interrupt stack will contain - * a throwaway interrupt stack frame. If dispatching is enabled, this - * is the outer most interrupt, and (a context switch is necessary or - * the current thread has signals), then set up the master stack to - * transfer control to the interrupt dispatcher. - */ - -.set SR_OFFSET, 0 | Status register offset -.set PC_OFFSET, 2 | Program Counter offset -.set FVO_OFFSET, 6 | Format/vector offset - -.set SAVED, 16 | space for saved registers - - .align 4 - .global SYM (_ISR_Handler) - -SYM (_ISR_Handler): - moveml d0-d1/a0-a1,a7@- | save d0-d1,a0-a1 - addql #1,SYM (_ISR_Nest_level) | one nest level deeper - addql #1,SYM (_Thread_Dispatch_disable_level) - | disable multitasking - movew a7@(SAVED+FVO_OFFSET),d0 | d0 = F/VO - andl #0x0fff,d0 | d0 = vector offset in vbr - -#if ( M68K_HAS_PREINDEXING == 1 ) - movel @( SYM (_ISR_Vector_table),d0:w:1),a0| fetch the ISR -#else - movel # SYM (_ISR_Vector_table),a0 | a0 = base of RTEMS table - addal d0,a0 | a0 = address of vector - movel @(a0),a0 | a0 = address of user routine -#warning "UNTESTED CODE!!!" -#endif - - lsrl #2,d0 | d0 = vector number - movel d0,a7@- | push vector number - jbsr a0@ | invoke the user ISR - addql #4,a7 | remove vector number - - subql #1,SYM (_ISR_Nest_level) | one less nest level - subql #1,SYM (_Thread_Dispatch_disable_level) - | unnest multitasking - bne exit | If dispatch disabled, exit - - movew #0xf000,d0 | isolate format nibble - andw a7@(SAVED+FVO_OFFSET),d0 | get F/VO - cmpiw #0x1000,d0 | is it a throwaway isf? - bne exit | NOT outer level, so branch - - tstl SYM (_Context_Switch_necessary) - | Is thread switch necessary? - bne bframe | Yes, invoke dispatcher - - tstl SYM (_ISR_Signals_to_thread_executing) - | signals sent to Run_thread - | while in interrupt handler? - beq exit | No, then exit - - -bframe: clrl SYM (_ISR_Signals_to_thread_executing) - | If sent, will be processed -#if ( M68K_HAS_SEPARATE_STACKS == 1 ) - movec msp,a0 | a0 = master stack pointer - movew #0,a0@- | push format word - movel # SYM (_ISR_Dispatch),a0@- | push return addr - movew a0@(6+SR_OFFSET),a0@- | push thread sr - movec a0,msp | set master stack pointer -#else -#warning "FIX ME ... HOW DO I DISPATCH FROM AN INTERRUPT?" -/* probably will simply need to push the _ISR_Dispatch frame */ -#endif - -exit: moveml a7@+,d0-d1/a0-a1 | restore d0-d1,a0-a1 - rte | return to thread - | OR _Isr_dispatch - -/*PAGE - * void _ISR_Dispatch() - * - * Entry point from the outermost interrupt service routine exit. - * The current stack is the supervisor mode stack if this processor - * has separate stacks. - * - * 1. save all registers not preserved across C calls. - * 2. invoke the _Thread_Dispatch routine to switch tasks - * or a signal to the currently executing task. - * 3. restore all registers not preserved across C calls. - * 4. return from interrupt - */ - - .global SYM (_ISR_Dispatch) -SYM (_ISR_Dispatch): - movml d0-d1/a0-a1,a7@- - jsr SYM (_Thread_Dispatch) - movml a7@+,d0-d1/a0-a1 - rte - - - - - - - - - - - diff --git a/c/src/exec/score/cpu/m68k/m68k.h b/c/src/exec/score/cpu/m68k/m68k.h deleted file mode 100644 index 3a62b7553b..0000000000 --- a/c/src/exec/score/cpu/m68k/m68k.h +++ /dev/null @@ -1,282 +0,0 @@ -/* m68k.h - * - * This include file contains information pertaining to the Motorola - * m68xxx processor family. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __M68k_h -#define __M68k_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following define the CPU Family and Model within the family - * - * NOTE: The string "REPLACE_THIS_WITH_THE_CPU_MODEL" is replaced - * with the name of the appropriate macro for this target CPU. - */ - -#define m68k -#define REPLACE_THIS_WITH_THE_CPU_MODEL -#define REPLACE_THIS_WITH_THE_BSP - -/* - * This section contains the information required to build - * RTEMS for a particular member of the Motorola MC68xxx - * family. It does this by setting variables to indicate - * which implementation dependent features are present in - * a particular member of the family. - * - * Currently recognized: - * m68000 (no FP) - * m68020 (implies FP) - * m68020_nofp (no FP) - * m68030 (implies FP) - * m68040 (implies FP) - * m68lc040 (no FP) - * m68ec040 (no FP) - * - * Primary difference (for RTEMS) between m68040, m680lc040, and - * m68ec040 is the presence or abscense of the FPU. - * - * Here is some information on the 040 variants (courtesy of Doug McBride, - * mcbride@rodin.colorado.edu): - * - * "The 68040 is a superset of the 68EC040 and the 68LC040. The - * 68EC040 and 68LC040 do not have FPU's. The 68LC040 and the - * 68EC040 have renamed the DLE pin as JS0 which must be tied to - * Gnd or Vcc. The 68EC040 has renamed the MDIS pin as JS1. The - * 68EC040 has access control units instead of memory management units. - * The 68EC040 should not have the PFLUSH or PTEST instructions executed - * (cause an indeterminate result). The 68EC040 and 68LC040 do not - * implement the DLE or multiplexed bus modes. The 68EC040 does not - * implement the output buffer impedance selection mode of operation." - */ - -#if defined(m68000) - -#define RTEMS_MODEL_NAME "m68000" -#define M68K_HAS_VBR 0 -#define M68K_HAS_SEPARATE_STACKS 0 -#define M68K_HAS_FPU 0 -#define M68K_HAS_BFFFO 0 -#define M68K_HAS_PREINDEXING 0 - -#elif defined(m68020) - -#define RTEMS_MODEL_NAME "m68020" -#define M68K_HAS_VBR 1 -#define M68K_HAS_SEPARATE_STACKS 1 -#define M68K_HAS_FPU 1 -#define M68K_HAS_BFFFO 1 -#define M68K_HAS_PREINDEXING 1 - -#elif defined(m68020_nofp) - -#define RTEMS_MODEL_NAME "m68020 w/o fp" -#define M68K_HAS_VBR 1 -#define M68K_HAS_SEPARATE_STACKS 1 -#define M68K_HAS_FPU 0 -#define M68K_HAS_BFFFO 1 -#define M68K_HAS_PREINDEXING 1 - -#elif defined(m68030) - -#define RTEMS_MODEL_NAME "m68030" -#define M68K_HAS_VBR 1 -#define M68K_HAS_SEPARATE_STACKS 1 -#define M68K_HAS_FPU 1 -#define M68K_HAS_BFFFO 1 -#define M68K_HAS_PREINDEXING 1 - -#elif defined(m68040) - -#define RTEMS_MODEL_NAME "m68040" -#define M68K_HAS_VBR 1 -#define M68K_HAS_SEPARATE_STACKS 1 -#define M68K_HAS_FPU 1 -#define M68K_HAS_BFFFO 1 -#define M68K_HAS_PREINDEXING 1 - -#elif defined(m68lc040) - -#define RTEMS_MODEL_NAME "m68lc040" -#define M68K_HAS_VBR 1 -#define M68K_HAS_SEPARATE_STACKS 1 -#define M68K_HAS_FPU 0 -#define M68K_HAS_BFFFO 1 -#define M68K_HAS_PREINDEXING 1 - -#elif defined(m68ec040) - -#define RTEMS_MODEL_NAME "m68ec040" -#define M68K_HAS_VBR 1 -#define M68K_HAS_SEPARATE_STACKS 1 -#define M68K_HAS_FPU 0 -#define M68K_HAS_BFFFO 1 -#define M68K_HAS_PREINDEXING 1 - -#else - -#error "Unsupported CPU Model" - -#endif - -/* - * If defined, this causes some of the macros to initialize their - * variables to zero before doing inline assembly. This gets rid - * of compile time warnings at the cost of a little execution time - * in some time critical routines. - */ - -#define NO_UNINITIALIZED_WARNINGS - -/* - * Define the name of the CPU family. - */ - -#define CPU_NAME "Motorola MC68xxx" - -#ifndef ASM - -/* - * This section defines the basic types for this processor. - */ - -typedef unsigned char unsigned8; /* unsigned 8-bit integer */ -typedef unsigned short unsigned16; /* unsigned 16-bit integer */ -typedef unsigned int unsigned32; /* unsigned 32-bit integer */ -typedef unsigned long long unsigned64; /* unsigned 64-bit integer */ - -typedef unsigned16 Priority_Bit_map_control; - -typedef char signed8; /* signed 8-bit integer */ -typedef short signed16; /* signed 16-bit integer */ -typedef int signed32; /* signed 32-bit integer */ -typedef long long signed64; /* signed 64-bit integer */ - -typedef unsigned32 boolean; /* Boolean value */ - -typedef float single_precision; /* single precision float */ -typedef double double_precision; /* double precision float */ - -/* - * - */ - -typedef void ( *m68k_isr )( void ); - -#ifdef NO_UNINITIALIZED_WARNINGS -#define m68k_disable_interrupts( _level ) \ - { \ - (_level) = 0; /* avoids warnings */ \ - asm volatile ( "movew %%sr,%0 ; \ - orw #0x0700,%%sr" \ - : "=d" ((_level)) : "0" ((_level)) \ - ); \ - } -#else -#define m68k_disable_interrupts( _level ) \ - { \ - asm volatile ( "movew %%sr,%0 ; \ - orw #0x0700,%%sr" \ - : "=d" ((_level)) : "0" ((_level)) \ - ); \ - } -#endif - -#define m68k_enable_interrupts( _level ) \ - { \ - asm volatile ( "movew %0,%%sr " \ - : "=d" ((_level)) : "0" ((_level)) \ - ); \ - } - -#define m68k_flash_interrupts( _level ) \ - { \ - asm volatile ( "movew %0,%%sr ; \ - orw #0x0700,%%sr" \ - : "=d" ((_level)) : "0" ((_level)) \ - ); \ - } - -#define m68k_set_interrupt_level( _newlevel ) \ - { \ - register unsigned32 _tmpsr = 0; \ - \ - asm volatile( "movw %%sr,%0" \ - : "=d" (_tmpsr) : "0" (_tmpsr) \ - ); \ - \ - _tmpsr = (_tmpsr & 0xf8ff) | ((_newlevel) << 8); \ - \ - asm volatile( "movw %0,%%sr" \ - : "=d" (_tmpsr) : "0" (_tmpsr) \ - ); \ - } - -#if ( M68K_HAS_VBR == 1 ) -#define m68k_get_vbr( vbr ) \ - { (vbr) = 0; \ - asm volatile ( "movec %%vbr,%0 " \ - : "=r" (vbr) : "0" (vbr) ); \ - } - -#define m68k_set_vbr( vbr ) \ - { register m68k_isr *_vbr= (m68k_isr *)(vbr); \ - asm volatile ( "movec %0,%%vbr " \ - : "=a" (_vbr) : "0" (_vbr) ); \ - } -#else -#define m68k_get_vbr( _vbr ) _vbr = 0 -#define m68k_set_vbr( _vbr ) -#endif - -/* - * The following routine swaps the endian format of an unsigned int. - * It must be static because it is referenced indirectly. - */ - -static inline unsigned int m68k_swap_u32( - unsigned int value -) -{ - unsigned int swapped = value; - - asm volatile( "rorw #8,%0" : "=d" (swapped) : "0" (swapped) ); - asm volatile( "swap %0" : "=d" (swapped) : "0" (swapped) ); - asm volatile( "rorw #8,%0" : "=d" (swapped) : "0" (swapped) ); - - return( swapped ); -} - -/* XXX this is only valid for some m68k family members and should be fixed */ - -#define m68k_enable_caching() \ - { register unsigned32 _ctl=0x01; \ - asm volatile ( "movec %0,%%cacr" \ - : "=d" (_ctl) : "0" (_ctl) ); \ - } - -#define CPU_swap_u32( value ) m68k_swap_u32( value ) - -#ifdef __cplusplus -} -#endif - -#endif /* !ASM */ - -#endif -/* end of include file */ diff --git a/c/src/exec/score/cpu/m68k/rtems.s b/c/src/exec/score/cpu/m68k/rtems.s deleted file mode 100644 index faae97e487..0000000000 --- a/c/src/exec/score/cpu/m68k/rtems.s +++ /dev/null @@ -1,46 +0,0 @@ -/* rtems.s - * - * This file contains the single entry point code for - * the m68k implementation of RTEMS. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -/* - * There seems to be no reason to have two versions of this. - * The following version should work across the entire family. - * The worst assumption is that gcc will put entry in a scratch - * register and not screw up the stack. - * - * NOTE: This is a 68020 version: - * - * jmpl @(%%d0:l:4)@(__Entry_points) - */ - - EXTERN (_Entry_points) - - BEGIN_CODE - - .align 4 - .global SYM (RTEMS) - -SYM (RTEMS): - moveal SYM (_Entry_points), a0 - lsll #2, d0 - addal d0, a0 - moveal @(a0),a0 - jmpl @(a0) - - END_CODE -END diff --git a/c/src/exec/score/cpu/no_cpu/asm.h b/c/src/exec/score/cpu/no_cpu/asm.h deleted file mode 100644 index 69b1f0f825..0000000000 --- a/c/src/exec/score/cpu/no_cpu/asm.h +++ /dev/null @@ -1,98 +0,0 @@ -/* asm.h - * - * 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. - * On-Line Applications Research Corporation (OAR). - * - * $Id$ - */ - -#ifndef __NO_CPU_ASM_h -#define __NO_CPU_ASM_h - -/* - * Indicate we are in an assembly file and get the basic CPU definitions. - */ - -#define ASM -#include - -/* - * 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. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* 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. - */ - - -#define BEGIN_CODE_DCL .text -#define END_CODE_DCL -#define BEGIN_DATA_DCL .data -#define END_DATA_DCL -#define BEGIN_CODE .text -#define END_CODE -#define BEGIN_DATA -#define END_DATA -#define BEGIN_BSS -#define END_BSS -#define END - -/* - * Following must be tailor 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) -#define EXTERN(sym) .globl SYM (sym) - -#endif -/* end of include file */ - - diff --git a/c/src/exec/score/cpu/no_cpu/cpu.c b/c/src/exec/score/cpu/no_cpu/cpu.c deleted file mode 100644 index f09d935c2d..0000000000 --- a/c/src/exec/score/cpu/no_cpu/cpu.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * XXX CPU Dependent Source - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - address of disptaching routine - */ - - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - /* - * The thread_dispatch argument is the address of the entry point - * for the routine called at the end of an ISR once it has been - * decided a context switch is necessary. On some compilation - * systems it is difficult to call a high-level language routine - * from assembly. This allows us to trick these systems. - * - * If you encounter this problem save the entry point in a CPU - * dependent variable. - */ - - _CPU_Thread_dispatch_pointer = thread_dispatch; - - /* - * XXX; 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. - */ - - /* XXX: FP context initialization support */ - - _CPU_Table = *cpu_table; -} - -/* _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 - * - */ - - -void _CPU_ISR_install_vector( - unsigned32 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. - */ - - /* - * 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 - */ - -void _CPU_Install_interrupt_stack( void ) -{ -} - -/*PAGE - * - * _CPU_Internal_threads_Idle_thread_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. - */ - -void _CPU_Internal_threads_Idle_thread_body( void ) -{ - - for( ; ; ) - /* insert your "halt" instruction here */ ; -} diff --git a/c/src/exec/score/cpu/no_cpu/cpu.h b/c/src/exec/score/cpu/no_cpu/cpu.h deleted file mode 100644 index cf38b64a4d..0000000000 --- a/c/src/exec/score/cpu/no_cpu/cpu.h +++ /dev/null @@ -1,818 +0,0 @@ -/* cpu.h - * - * This include file contains information pertaining to the XXX - * processor. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __CPU_h -#define __CPU_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include /* pick up machine definitions */ - -/* conditional compilation parameters */ - -/* - * Should the calls to _Thread_Enable_dispatch be inlined? - * - * If TRUE, then they are inlined. - * If FALSE, then a subroutine call is made. - * - * Basically this is an example of the classic trade-off of size - * versus speed. Inlining the call (TRUE) typically increases the - * size of RTEMS while speeding up the enabling of dispatching. - * [NOTE: In general, the _Thread_Dispatch_disable_level will - * only be 0 or 1 unless you are in an interrupt handler and that - * interrupt handler invokes the executive.] When not inlined - * something calls _Thread_Enable_dispatch which in turns calls - * _Thread_Dispatch. If the enable dispatch is inlined, then - * one subroutine call is avoided entirely.] - */ - -#define CPU_INLINE_ENABLE_DISPATCH FALSE - -/* - * Should the body of the search loops in _Thread_queue_Enqueue_priority - * be unrolled one time? In unrolled each iteration of the loop examines - * two "nodes" on the chain being searched. Otherwise, only one node - * is examined per iteration. - * - * If TRUE, then the loops are unrolled. - * If FALSE, then the loops are not unrolled. - * - * The primary factor in making this decision is the cost of disabling - * and enabling interrupts (_ISR_Flash) versus the cost of rest of the - * body of the loop. On some CPUs, the flash is more expensive than - * one iteration of the loop body. In this case, it might be desirable - * to unroll the loop. It is important to note that on some CPUs, this - * code is the longest interrupt disable period in RTEMS. So it is - * necessary to strike a balance when setting this parameter. - */ - -#define CPU_UNROLL_ENQUEUE_PRIORITY TRUE - -/* - * Does RTEMS manage a dedicated interrupt stack in software? - * - * If TRUE, then a stack is allocated in _Interrupt_Manager_initialization. - * If FALSE, nothing is done. - * - * If the CPU supports a dedicated interrupt stack in hardware, - * then it is generally the responsibility of the BSP to allocate it - * and set it up. - * - * If the CPU does not support a dedicated interrupt stack, then - * the porter has two options: (1) execute interrupts on the - * stack of the interrupted task, and (2) have RTEMS manage a dedicated - * interrupt stack. - * - * If this is TRUE, CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE. - * - * Only one of CPU_HAS_SOFTWARE_INTERRUPT_STACK and - * CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is - * possible that both are FALSE for a particular CPU. Although it - * is unclear what that would imply about the interrupt processing - * procedure on that CPU. - */ - -#define CPU_HAS_SOFTWARE_INTERRUPT_STACK FALSE - -/* - * Does this CPU have hardware support for a dedicated interrupt stack? - * - * If TRUE, then it must be installed during initialization. - * If FALSE, then no installation is performed. - * - * If this is TRUE, CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE. - * - * Only one of CPU_HAS_SOFTWARE_INTERRUPT_STACK and - * CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is - * possible that both are FALSE for a particular CPU. Although it - * is unclear what that would imply about the interrupt processing - * procedure on that CPU. - */ - -#define CPU_HAS_HARDWARE_INTERRUPT_STACK TRUE - -/* - * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager? - * - * If TRUE, then the memory is allocated during initialization. - * If FALSE, then the memory is allocated during initialization. - * - * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE - * or CPU_INSTALL_HARDWARE_INTERRUPT_STACK is TRUE. - */ - -#define CPU_ALLOCATE_INTERRUPT_STACK TRUE - -/* - * Does the CPU have hardware floating point? - * - * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported. - * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored. - * - * If there is a FP coprocessor such as the i387 or mc68881, then - * the answer is TRUE. - * - * The macro name "NO_CPU_HAS_FPU" should be made CPU specific. - * It indicates whether or not this CPU model has FP support. For - * example, it would be possible to have an i386_nofp CPU model - * which set this to false to indicate that you have an i386 without - * an i387 and wish to leave floating point support out of RTEMS. - */ - -#if ( NO_CPU_HAS_FPU == 1 ) -#define CPU_HARDWARE_FP TRUE -#else -#define CPU_HARDWARE_FP FALSE -#endif - -/* - * Are all tasks RTEMS_FLOATING_POINT tasks implicitly? - * - * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed. - * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed. - * - * So far, the only CPU in which this option has been used is the - * HP PA-RISC. The HP C compiler and gcc both implicitly use the - * floating point registers to perform integer multiplies. If - * a function which you would not think utilize the FP unit DOES, - * then one can not easily predict which tasks will use the FP hardware. - * In this case, this option should be TRUE. - * - * If CPU_HARDWARE_FP is FALSE, then this should be FALSE as well. - */ - -#define CPU_ALL_TASKS_ARE_FP TRUE - -/* - * Should the IDLE task have a floating point context? - * - * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task - * and it has a floating point context which is switched in and out. - * If FALSE, then the IDLE task does not have a floating point context. - * - * Setting this to TRUE negatively impacts the time required to preempt - * the IDLE task from an interrupt because the floating point context - * must be saved as part of the preemption. - */ - -#define CPU_IDLE_TASK_IS_FP FALSE - -/* - * Should the saving of the floating point registers be deferred - * until a context switch is made to another different floating point - * task? - * - * If TRUE, then the floating point context will not be stored until - * necessary. It will remain in the floating point registers and not - * disturned until another floating point task is switched to. - * - * If FALSE, then the floating point context is saved when a floating - * point task is switched out and restored when the next floating point - * task is restored. The state of the floating point registers between - * those two operations is not specified. - * - * If the floating point context does NOT have to be saved as part of - * interrupt dispatching, then it should be safe to set this to TRUE. - * - * Setting this flag to TRUE results in using a different algorithm - * for deciding when to save and restore the floating point context. - * The deferred FP switch algorithm minimizes the number of times - * the FP context is saved and restored. The FP context is not saved - * until a context switch is made to another, different FP task. - * Thus in a system with only one FP task, the FP context will never - * be saved or restored. - */ - -#define CPU_USE_DEFERRED_FP_SWITCH TRUE - -/* - * Does this port provide a CPU dependent IDLE task implementation? - * - * If TRUE, then the routine _CPU_Internal_threads_Idle_thread_body - * must be provided and is the default IDLE thread body instead of - * _Internal_threads_Idle_thread_body. - * - * If FALSE, then use the generic IDLE thread body if the BSP does - * not provide one. - * - * This is intended to allow for supporting processors which have - * a low power or idle mode. When the IDLE thread is executed, then - * the CPU can be powered down. - * - * The order of precedence for selecting the IDLE thread body is: - * - * 1. BSP provided - * 2. CPU dependent (if provided) - * 3. generic (if no BSP and no CPU dependent) - */ - -#define CPU_PROVIDES_IDLE_THREAD_BODY TRUE - -/* - * Does the stack grow up (toward higher addresses) or down - * (toward lower addresses)? - * - * If TRUE, then the grows upward. - * If FALSE, then the grows toward smaller addresses. - */ - -#define CPU_STACK_GROWS_UP TRUE - -/* - * The following is the variable attribute used to force alignment - * of critical RTEMS structures. On some processors it may make - * sense to have these aligned on tighter boundaries than - * the minimum requirements of the compiler in order to have as - * much of the critical data area as possible in a cache line. - * - * The placement of this macro in the declaration of the variables - * is based on the syntactically requirements of the GNU C - * "__attribute__" extension. For example with GNU C, use - * the following to force a structures to a 32 byte boundary. - * - * __attribute__ ((aligned (32))) - * - * NOTE: Currently only the Priority Bit Map table uses this feature. - * To benefit from using this, the data must be heavily - * used so it will stay in the cache and used frequently enough - * in the executive to justify turning this on. - */ - -#define CPU_STRUCTURE_ALIGNMENT - -/* - * The following defines the number of bits actually used in the - * interrupt field of the task mode. How those bits map to the - * CPU interrupt levels is defined by the routine _CPU_ISR_Set_level(). - */ - -#define CPU_MODES_INTERRUPT_MASK 0x00000001 - -/* - * Processor defined structures - * - * Examples structures include the descriptor tables from the i386 - * and the processor control structure on the i960ca. - */ - -/* may need to put some structures here. */ - -/* - * Contexts - * - * Generally there are 2 types of context to save. - * 1. Interrupt registers to save - * 2. Task level registers to save - * - * This means we have the following 3 context items: - * 1. task level context stuff:: Context_Control - * 2. floating point task stuff:: Context_Control_fp - * 3. special interrupt level context :: Context_Control_interrupt - * - * On some processors, it is cost-effective to save only the callee - * preserved registers during a task context switch. This means - * that the ISR code needs to save those registers which do not - * persist across function calls. It is not mandatory to make this - * distinctions between the caller/callee saves registers for the - * purpose of minimizing context saved during task switch and on interrupts. - * If the cost of saving extra registers is minimal, simplicity is the - * choice. Save the same context on interrupt entry as for tasks in - * this case. - * - * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then - * care should be used in designing the context area. - * - * On some CPUs with hardware floating point support, the Context_Control_fp - * structure will not be used or it simply consist of an array of a - * fixed number of bytes. This is done when the floating point context - * is dumped by a "FP save context" type instruction and the format - * is not really defined by the CPU. In this case, there is no need - * to figure out the exact format -- only the size. Of course, although - * this is enough information for RTEMS, it is probably not enough for - * a debugger such as gdb. But that is another problem. - */ - -typedef struct { - unsigned32 some_integer_register; - unsigned32 some_system_register; -} Context_Control; - -typedef struct { - double some_float_register; -} Context_Control_fp; - -typedef struct { - unsigned32 special_interrupt_register; -} CPU_Interrupt_frame; - - -/* - * The following table contains the information required to configure - * the XXX processor specific parameters. - * - * NOTE: The interrupt_stack_size field is required if - * CPU_ALLOCATE_INTERRUPT_STACK is defined as TRUE. - * - * The pretasking_hook, predriver_hook, and postdriver_hook, - * and the do_zero_of_workspace fields are required on ALL CPUs. - */ - -typedef struct { - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 interrupt_stack_size; - unsigned32 extra_system_initialization_stack; - unsigned32 some_other_cpu_dependent_info; -} rtems_cpu_table; - -/* - * This variable is optional. It is used on CPUs on which it is difficult - * to generate an "uninitialized" FP context. It is filled in by - * _CPU_Initialize and copied into the task's FP context area during - * _CPU_Context_Initialize. - */ - -EXTERN Context_Control_fp _CPU_Null_fp_context; - -/* - * On some CPUs, RTEMS supports a software managed interrupt stack. - * This stack is allocated by the Interrupt Manager and the switch - * is performed in _ISR_Handler. These variables contain pointers - * to the lowest and highest addresses in the chunk of memory allocated - * for the interrupt stack. Since it is unknown whether the stack - * grows up or down (in general), this give the CPU dependent - * code the option of picking the version it wants to use. - * - * NOTE: These two variables are required if the macro - * CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE. - */ - -EXTERN void *_CPU_Interrupt_stack_low; -EXTERN void *_CPU_Interrupt_stack_high; - -/* - * With some compilation systems, it is difficult if not impossible to - * call a high-level language routine from assembly language. This - * is especially true of commercial Ada compilers and name mangling - * C++ ones. This variable can be optionally defined by the CPU porter - * and contains the address of the routine _Thread_Dispatch. This - * can make it easier to invoke that routine at the end of the interrupt - * sequence (if a dispatch is necessary). - */ - -EXTERN void (*_CPU_Thread_dispatch_pointer)(); - -/* - * Nothing prevents the porter from declaring more CPU specific variables. - */ - -/* XXX: if needed, put more variables here */ - -/* - * The size of the floating point context area. On some CPUs this - * will not be a "sizeof" because the format of the floating point - * area is not defined -- only the size is. This is usually on - * CPUs with a "floating point save context" instruction. - */ - -#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp ) - -/* - * Amount of extra stack (above minimum stack size) required by - * system initialization thread. Remember that in a multiprocessor - * system the system intialization thread becomes the MP server thread. - */ - -#define CPU_SYSTEM_INITIALIZATION_THREAD_EXTRA_STACK 0 - -/* - * This defines the number of entries in the ISR_Vector_table managed - * by RTEMS. - */ - -#define CPU_INTERRUPT_NUMBER_OF_VECTORS 32 - -/* - * Should be large enough to run all RTEMS tests. This insures - * that a "reasonable" small application should not have any problems. - */ - -#define CPU_STACK_MINIMUM_SIZE (1024*4) - -/* - * CPU's worst alignment requirement for data types on a byte boundary. This - * alignment does not take into account the requirements for the stack. - */ - -#define CPU_ALIGNMENT 8 - -/* - * This number corresponds to the byte alignment requirement for the - * heap handler. This alignment requirement may be stricter than that - * for the data types alignment specified by CPU_ALIGNMENT. It is - * common for the heap to follow the same alignment requirement as - * CPU_ALIGNMENT. If the CPU_ALIGNMENT is strict enough for the heap, - * then this should be set to CPU_ALIGNMENT. - * - * NOTE: This does not have to be a power of 2. It does have to - * be greater or equal to than CPU_ALIGNMENT. - */ - -#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT - -/* - * This number corresponds to the byte alignment requirement for memory - * buffers allocated by the partition manager. This alignment requirement - * may be stricter than that for the data types alignment specified by - * CPU_ALIGNMENT. It is common for the partition to follow the same - * alignment requirement as CPU_ALIGNMENT. If the CPU_ALIGNMENT is strict - * enough for the partition, then this should be set to CPU_ALIGNMENT. - * - * NOTE: This does not have to be a power of 2. It does have to - * be greater or equal to than CPU_ALIGNMENT. - */ - -#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT - -/* - * This number corresponds to the byte alignment requirement for the - * stack. This alignment requirement may be stricter than that for the - * data types alignment specified by CPU_ALIGNMENT. If the CPU_ALIGNMENT - * is strict enough for the stack, then this should be set to 0. - * - * NOTE: This must be a power of 2 either 0 or greater than CPU_ALIGNMENT. - */ - -#define CPU_STACK_ALIGNMENT 0 - -/* ISR handler macros */ - -/* - * Disable all interrupts for an RTEMS critical section. The previous - * level is returned in _level. - */ - -#define _CPU_ISR_Disable( _isr_cookie ) \ - { \ - (_isr_cookie) = 0; /* do something to prevent warnings */ \ - } - -/* - * Enable interrupts to the previous level (returned by _CPU_ISR_Disable). - * This indicates the end of an RTEMS critical section. The parameter - * _level is not modified. - */ - -#define _CPU_ISR_Enable( _isr_cookie ) \ - { \ - } - -/* - * This temporarily restores the interrupt to _level before immediately - * disabling them again. This is used to divide long RTEMS critical - * sections into two or more parts. The parameter _level is not - * modified. - */ - -#define _CPU_ISR_Flash( _isr_cookie ) \ - { \ - } - -/* - * Map interrupt level in task mode onto the hardware that the CPU - * actually provides. Currently, interrupt levels which do not - * map onto the CPU in a generic fashion are undefined. Someday, - * it would be nice if these were "mapped" by the application - * via a callout. For example, m68k has 8 levels 0 - 7, levels - * 8 - 255 would be available for bsp/application specific meaning. - * This could be used to manage a programmable interrupt controller - * via the rtems_task_mode directive. - */ - -#define _CPU_ISR_Set_level( new_level ) \ - { \ - } - -/* end of ISR handler macros */ - -/* Context handler macros */ - -/* - * Initialize the context to a state suitable for starting a - * task after a context restore operation. Generally, this - * involves: - * - * - setting a starting address - * - preparing the stack - * - preparing the stack and frame pointers - * - setting the proper interrupt level in the context - * - initializing the floating point context - * - * This routine generally does not set any unnecessary register - * in the context. The state of the "general data" registers is - * undefined at task start time. - */ - -#define _CPU_Context_Initialize( _the_context, _stack_base, _size, \ - _isr, _entry_point ) \ - { \ - } - -/* - * This routine is responsible for somehow restarting the currently - * executing task. If you are lucky, then all that is necessary - * is restoring the context. Otherwise, there will need to be - * a special assembly routine which does something special in this - * case. Context_Restore should work most of the time. It will - * not work if restarting self conflicts with the stack frame - * assumptions of restoring a context. - */ - -#define _CPU_Context_Restart_self( _the_context ) \ - _CPU_Context_restore( (_the_context) ); - -/* - * The purpose of this macro is to allow the initial pointer into - * a floating point context area (used to save the floating point - * context) to be at an arbitrary place in the floating point - * context area. - * - * This is necessary because some FP units are designed to have - * their context saved as a stack which grows into lower addresses. - * Other FP units can be saved by simply moving registers into offsets - * from the base of the context area. Finally some FP units provide - * a "dump context" instruction which could fill in from high to low - * or low to high based on the whim of the CPU designers. - */ - -#define _CPU_Context_Fp_start( _base, _offset ) \ - ( (void *) (_base) + (_offset) ) - -/* - * This routine initializes the FP context area passed to it to. - * There are a few standard ways in which to initialize the - * floating point context. The code included for this macro assumes - * that this is a CPU in which a "initial" FP context was saved into - * _CPU_Null_fp_context and it simply copies it to the destination - * context passed to it. - * - * Other models include (1) not doing anything, and (2) putting - * a "null FP status word" in the correct place in the FP context. - */ - -#define _CPU_Context_Initialize_fp( _destination ) \ - { \ - *((Context_Control_fp *) *((void **) _destination)) = _CPU_Null_fp_context; \ - } - -/* end of Context handler macros */ - -/* Fatal Error manager macros */ - -/* - * This routine copies _error into a known place -- typically a stack - * location or a register, optionally disables interrupts, and - * halts/stops the CPU. - */ - -#define _CPU_Fatal_halt( _error ) \ - { \ - } - -/* end of Fatal Error manager macros */ - -/* Bitfield handler macros */ - -/* - * This routine sets _output to the bit number of the first bit - * set in _value. _value is of CPU dependent type Priority_Bit_map_control. - * This type may be either 16 or 32 bits wide although only the 16 - * least significant bits will be used. - * - * There are a number of variables in using a "find first bit" type - * instruction. - * - * (1) What happens when run on a value of zero? - * (2) Bits may be numbered from MSB to LSB or vice-versa. - * (3) The numbering may be zero or one based. - * (4) The "find first bit" instruction may search from MSB or LSB. - * - * RTEMS guarantees that (1) will never happen so it is not a concern. - * (2),(3), (4) are handled by the macros _CPU_Priority_mask() and - * _CPU_Priority_Bits_index(). These three form a set of routines - * which must logically operate together. Bits in the _value are - * set and cleared based on masks built by _CPU_Priority_mask(). - * The basic major and minor values calculated by _Priority_Major() - * and _Priority_Minor() are "massaged" by _CPU_Priority_Bits_index() - * to properly range between the values returned by the "find first bit" - * instruction. This makes it possible for _Priority_Get_highest() to - * calculate the major and directly index into the minor table. - * This mapping is necessary to ensure that 0 (a high priority major/minor) - * is the first bit found. - * - * This entire "find first bit" and mapping process depends heavily - * on the manner in which a priority is broken into a major and minor - * components with the major being the 4 MSB of a priority and minor - * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest - * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next - * to the lowest priority. - * - * If your CPU does not have a "find first bit" instruction, then - * there are ways to make do without it. Here are a handful of ways - * to implement this in software: - * - * - a series of 16 bit test instructions - * - a "binary search using if's" - * - _number = 0 - * if _value > 0x00ff - * _value >>=8 - * _number = 8; - * - * if _value > 0x0000f - * _value >=8 - * _number += 4 - * - * _number += bit_set_table[ _value ] - * - * where bit_set_table[ 16 ] has values which indicate the first - * bit set - */ - -#define _CPU_Bitfield_Find_first_bit( _value, _output ) \ - { \ - (_output) = 0; /* do something to prevent warnings */ \ - } - -/* end of Bitfield handler macros */ - -/* - * This routine builds the mask which corresponds to the bit fields - * as searched by _CPU_Bitfield_Find_first_bit(). See the discussion - * for that routine. - */ - -#define _CPU_Priority_Mask( _bit_number ) \ - ( 1 << (_bit_number) ) - -/* - * This routine translates the bit numbers returned by - * _CPU_Bitfield_Find_first_bit() into something suitable for use as - * a major or minor component of a priority. See the discussion - * for that routine. - */ - -#define _CPU_Priority_Bits_index( _priority ) \ - (_priority) - -/* end of Priority handler macros */ - -/* functions */ - -/* - * _CPU_Initialize - * - * This routine performs CPU dependent initialization. - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) -); - -/* - * _CPU_ISR_install_vector - * - * This routine installs an interrupt vector. - */ - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -); - -/* - * _CPU_Install_interrupt_stack - * - * This routine installs the hardware interrupt stack pointer. - * - * NOTE: It need only be provided if CPU_HAS_HARDWARE_INTERRUPT_STACK - * is TRUE. - */ - -void _CPU_Install_interrupt_stack( void ); - -/* - * _CPU_Internal_threads_Idle_thread_body - * - * This routine is the CPU dependent IDLE thread body. - * - * NOTE: It need only be provided if CPU_PROVIDES_IDLE_THREAD_BODY - * is TRUE. - */ - -void _CPU_Internal_threads_Idle_thread_body( void ); - -/* - * _CPU_Context_switch - * - * This routine switches from the run context to the heir context. - */ - -void _CPU_Context_switch( - Context_Control *run, - Context_Control *heir -); - -/* - * _CPU_Context_restore - * - * This routine is generallu 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. - */ - -void _CPU_Context_restore( - Context_Control *new_context -); - -/* - * _CPU_Context_save_fp - * - * This routine saves the floating point context passed to it. - */ - -void _CPU_Context_save_fp( - void **fp_context_ptr -); - -/* - * _CPU_Context_restore_fp - * - * This routine restores the floating point context passed to it. - */ - -void _CPU_Context_restore_fp( - void **fp_context_ptr -); - -/* The following routine swaps the endian format of an unsigned int. - * It must be static because it is referenced indirectly. - * - * This version will work on any processor, but if there is a better - * way for your CPU PLEASE use it. The most common way to do this is to: - * - * swap least significant two bytes with 16-bit rotate - * swap upper and lower 16-bits - * swap most significant two bytes with 16-bit rotate - * - * Some CPUs have special instructions which swap a 32-bit quantity in - * a single instruction (e.g. i486). It is probably best to avoid - * an "endian swapping control bit" in the CPU. One good reason is - * that interrupts would probably have to be disabled to insure that - * an interrupt does not try to access the same "chunk" with the wrong - * endian. Another good reason is that on some CPUs, the endian bit - * endianness for ALL fetches -- both code and data -- so the code - * will be fetched incorrectly. - */ - -static inline unsigned int CPU_swap_u32( - unsigned int value -) -{ - unsigned32 byte1, byte2, byte3, byte4, swapped; - - byte4 = (value >> 24) & 0xff; - byte3 = (value >> 16) & 0xff; - byte2 = (value >> 8) & 0xff; - byte1 = value & 0xff; - - swapped = (byte1 << 24) | (byte2 << 16) | (byte3 << 8) | byte4; - return( swapped ); -} - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/c/src/exec/score/cpu/no_cpu/cpu_asm.c b/c/src/exec/score/cpu/no_cpu/cpu_asm.c deleted file mode 100644 index 26246a93c2..0000000000 --- a/c/src/exec/score/cpu/no_cpu/cpu_asm.c +++ /dev/null @@ -1,152 +0,0 @@ -/* cpu_asm.c ===> cpu_asm.S or cpu_asm.s - * - * 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, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $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> - */ - -#include -#include -/* #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. - */ - -void _CPU_Context_save_fp( - void **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. - */ - -void _CPU_Context_restore_fp( - void **fp_context_ptr -) -{ -} - -/* _CPU_Context_switch - * - * This routine performs a normal non-FP context switch. - */ - -void _CPU_Context_switch( - Context_Control *run, - Context_Control *heir -) -{ -} - -/* - * _CPU_Context_restore - * - * This routine is generallu 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. - */ - -void _CPU_Context_restore( - Context_Control *new_context -) -{ -} - -/* void __ISR_Handler() - * - * This routine provides the RTEMS interrupt management. - * - */ - -void _ISR_Handler() -{ - /* - * 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 ); - * - * if ( --__ISR_Nest_level == 0 ) { - * if ( _Context_Switch_necessary || _ISR_Signals_to_thread_executing ) - * call _Thread_Dispatch() or prepare to return to _ISR_Dispatch - * #if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE ) - * restore stack - * #endif - * } - * - * prepare to get out of interrupt - * return from interrupt - * - */ -} - diff --git a/c/src/exec/score/cpu/no_cpu/cpu_asm.h b/c/src/exec/score/cpu/no_cpu/cpu_asm.h deleted file mode 100644 index 0f4154a453..0000000000 --- a/c/src/exec/score/cpu/no_cpu/cpu_asm.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * cpu_asm.h - * - * 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, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - * - */ - -#ifndef __CPU_ASM_h -#define __CPU_ASM_h - -/* pull in the generated offsets */ - -#include - -/* - * 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 */ diff --git a/c/src/exec/score/cpu/no_cpu/no_cpu.h b/c/src/exec/score/cpu/no_cpu/no_cpu.h deleted file mode 100644 index ec973dadcf..0000000000 --- a/c/src/exec/score/cpu/no_cpu/no_cpu.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - * - */ - -#ifndef _INCLUDE_NO_CPU_h -#define _INCLUDE_NO_CPU_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following define the CPU Family and Model within the family - * - * NOTE: The string "REPLACE_THIS_WITH_THE_CPU_MODEL" is replaced - * with the name of the appropriate macro for this target CPU. - */ - -#define no_cpu -#define REPLACE_THIS_WITH_THE_CPU_MODEL - -/* - * This file contains the information required to build - * RTEMS for a particular member of the "no cpu" - * family when executing in protected mode. It does - * this by setting variables to indicate which implementation - * dependent features are present in a particular member - * of the family. - */ - -#if defined(no_cpu) - -#define RTEMS_MODEL_NAME "no_cpu" -#define NOCPU_HAS_FPU 1 - -#else - -#error "Unsupported CPU Model" - -#endif - -/* - * Define the name of the CPU family. - */ - -#define CPU_NAME "NO CPU" - -/* - * This section defines the basic types for this processor. - */ - -typedef unsigned char unsigned8; /* 8-bit unsigned integer */ -typedef unsigned short unsigned16; /* 16-bit unsigned integer */ -typedef unsigned int unsigned32; /* 32-bit unsigned integer */ -typedef unsigned long long unsigned64; /* 64-bit unsigned integer */ - -typedef unsigned16 Priority_Bit_map_control; - -typedef char signed8; /* 8-bit signed integer */ -typedef short signed16; /* 16-bit signed integer */ -typedef int signed32; /* 32-bit signed integer */ -typedef long long signed64; /* 64-bit signed integer */ - -typedef unsigned32 boolean; /* Boolean value */ - -typedef float single_precision; /* single precision float */ -typedef double double_precision; /* double precision float */ - -typedef void ( *no_cpu_isr_entry )( void ); - -#ifdef __cplusplus -} -#endif - -#endif /* ! _INCLUDE_NO_CPU_h */ -/* end of include file */ diff --git a/c/src/exec/score/cpu/no_cpu/rtems.c b/c/src/exec/score/cpu/no_cpu/rtems.c deleted file mode 100644 index 5415ae9852..0000000000 --- a/c/src/exec/score/cpu/no_cpu/rtems.c +++ /dev/null @@ -1,45 +0,0 @@ -/* rtems.c ===> rtems.S or rtems.s - * - * This file contains the single entry point code for - * the XXX implementation of RTEMS. - * - * NOTE: This is supposed to be a .S or .s file NOT a C file. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -/* - * This is supposed to be an assembly file. This means that system.h - * and cpu.h should not be included in a "real" rtems file. - */ - -#include -#include -/* #include "asm.h> */ - -/* - * RTEMS - * - * This routine jumps to the directive indicated in the - * CPU defined register. This routine is used when RTEMS is - * linked by itself and placed in ROM. This routine is the - * first address in the ROM space for RTEMS. The user "calls" - * this address with the directive arguments in the normal place. - * This routine then jumps indirectly to the correct directive - * preserving the arguments. The directive should not realize - * it has been "wrapped" in this way. The table "_Entry_points" - * is used to look up the directive. - */ - -void RTEMS() -{ -} - diff --git a/c/src/exec/score/cpu/unix/cpu.c b/c/src/exec/score/cpu/unix/cpu.c deleted file mode 100644 index ed94953d58..0000000000 --- a/c/src/exec/score/cpu/unix/cpu.c +++ /dev/null @@ -1,529 +0,0 @@ -/* - * HP PA-RISC CPU Dependent Source - * - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * $Id$ - */ - -#include -#include -#include -#include -/* - * In order to get the types and prototypes used in this file under - * Solaris 2.3, it is necessary to pull the following magic. - */ - -#if defined(solaris) -#warning "Ignore the undefining __STDC__ warning" -#undef __STDC__ -#define __STDC__ 0 -#undef _POSIX_C_SOURCE -#endif - -#include -#include -#include -#include -#include -#include - -extern void set_vector(proc_ptr, int, int); -extern void _Thread_Dispatch(void); - -extern unsigned32 _Thread_Dispatch_disable_level; -extern unsigned32 _SYSTEM_ID; -extern boolean _Context_Switch_necessary; - - -rtems_status_code signal_initialize(void); -void Stray_signal(int); -void signal_enable(unsigned32); -void signal_disable(unsigned32); -void interrupt_handler(); - -sigset_t UNIX_SIGNAL_MASK; -jmp_buf default_context; - -/* - * Which cpu are we? Used by libcpu and libbsp. - */ - -int cpu_number; - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - address of disptaching routine - */ - - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - unsigned32 i; - - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - /* - * The thread_dispatch argument is the address of the entry point - * for the routine called at the end of an ISR once it has been - * decided a context switch is necessary. On some compilation - * systems it is difficult to call a high-level language routine - * from assembly. This allows us to trick these systems. - * - * If you encounter this problem save the entry point in a CPU - * dependent variable. - */ - - _CPU_Thread_dispatch_pointer = thread_dispatch; - - /* - * XXX; 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. - */ - - /* XXX: FP context initialization support */ - - _CPU_Table = *cpu_table; - -#if defined(hppa1_1) && defined(RTEMS_UNIXLIB) - /* - * HACK - set the _SYSTEM_ID to 0x20c so that setjmp/longjmp - * will handle the full 32 floating point registers. - * - * NOTE: Is this a bug in HPUX9? - */ - - _SYSTEM_ID = 0x20c; -#endif - - /* - * get default values to use in _CPU_Context_Initialize() - */ - - setjmp(default_context); - - /* - * Block all the signals except SIGTRAP for the debugger - * and SIGABRT for fatal errors. - */ - - _CPU_ISR_Set_signal_level(1); - - sigfillset(&UNIX_SIGNAL_MASK); - sigdelset(&UNIX_SIGNAL_MASK, SIGTRAP); - sigdelset(&UNIX_SIGNAL_MASK, SIGABRT); - sigdelset(&UNIX_SIGNAL_MASK, SIGIOT); - sigdelset(&UNIX_SIGNAL_MASK, SIGCONT); - - sigprocmask(SIG_BLOCK, &UNIX_SIGNAL_MASK, 0); - - /* - * Set the handler for all signals to be signal_handler - * which will then vector out to the correct handler - * for whichever signal actually happened. Initially - * set the vectors to the stray signal handler. - */ - - for (i = 0; i < 32; i++) - (void)set_vector(Stray_signal, i, 1); - - signal_initialize(); -} - -/* _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 - * - */ - - -void _CPU_ISR_install_vector( - unsigned32 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. - */ - - /* - * 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 - */ - -void _CPU_Install_interrupt_stack( void ) -{ -} - -/*PAGE - * - * _CPU_Internal_threads_Idle_thread_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. - */ - -void _CPU_Internal_threads_Idle_thread_body( void ) -{ - while (1) - pause(); -} - -void _CPU_Context_Initialize( - Context_Control *_the_context, - unsigned32 *_stack_base, - unsigned32 _size, - unsigned32 _new_level, - proc_ptr *_entry_point -) -{ - unsigned32 *addr; - unsigned32 jmp_addr; - unsigned32 _stack; - unsigned32 _the_size; - - jmp_addr = (unsigned32) _entry_point; - - _stack = ((unsigned32)(_stack_base) + CPU_STACK_ALIGNMENT); - _stack &= ~(CPU_STACK_ALIGNMENT - 1); - - _the_size = _size & ~(CPU_STACK_ALIGNMENT - 1); - - /* - * Slam our jmp_buf template into the context we are creating - */ - - memcpy(_the_context, default_context, sizeof(jmp_buf)); - - addr = (unsigned32 *)_the_context; - -#if defined(hppa1_1) - *(addr + RP_OFF) = jmp_addr; - *(addr + SP_OFF) = (unsigned32)(_stack + CPU_FRAME_SIZE); - - /* - * See if we are using shared libraries by checking - * bit 30 in 24 off of newp. If bit 30 is set then - * we are using shared libraries and the jump address - * is at what 24 off of newp points to so shove that - * into 24 off of newp instead. - */ - - if (jmp_addr & 0x40000000) { - jmp_addr &= 0xfffffffc; - *(addr + RP_OFF) = (unsigned32)*(unsigned32 *)jmp_addr; - } -#elif defined(sparc) - - /* - * See /usr/include/sys/stack.h in Solaris 2.3 for a nice - * diagram of the stack. - */ - - asm ("ta 0x03"); /* flush registers */ - - *(addr + RP_OFF) = jmp_addr + ADDR_ADJ_OFFSET; - *(addr + SP_OFF) = (unsigned32)(_stack +_the_size - CPU_FRAME_SIZE); - *(addr + FP_OFF) = (unsigned32)(_stack +_the_size); -#else -#error "UNKNOWN CPU!!!" -#endif - - if (_new_level) - _CPU_ISR_Set_signal_level(1); - else - _CPU_ISR_Set_signal_level(0); - -} - -void _CPU_Context_restore( - Context_Control *next -) -{ - longjmp(next->regs, 0); -} - -void _CPU_Context_switch( - Context_Control *current, - Context_Control *next -) -{ - /* - * Save the current context - */ - - if (setjmp(current->regs) == 0) { - - /* - * Switch to the new context - */ - - longjmp(next->regs, 0); - } -} - -void _CPU_Save_float_context( - Context_Control_fp *fp_context -) -{ -} - -void _CPU_Restore_float_context( - Context_Control_fp *fp_context -) -{ -} - -void _CPU_ISR_Set_signal_level(unsigned32 level) -{ - if (level) - _CPU_Disable_signal(); - else - _CPU_Enable_signal(0); -} - - -unsigned32 _CPU_Disable_signal(void) -{ - sigset_t old_mask; - sigset_t empty_mask; - - sigemptyset(&empty_mask); - sigemptyset(&old_mask); - sigprocmask(SIG_BLOCK, &UNIX_SIGNAL_MASK, &old_mask); - - if (memcmp((char *)&empty_mask, (char *)&old_mask, sizeof(sigset_t)) != 0) - return 1; - - return 0; -} - - -void _CPU_Enable_signal(unsigned32 level) -{ - if (level == 0) - sigprocmask(SIG_UNBLOCK, &UNIX_SIGNAL_MASK, 0); -} - - -/* - * Support for external and spurious interrupts on HPPA - * - * TODO: - * delete interrupt.c etc. - * Count interrupts - * make sure interrupts disabled properly - * should handler check again for more interrupts before exit? - * How to enable interrupts from an interrupt handler? - * Make sure there is an entry for everything in ISR_Vector_Table - */ - -/* - * Init the external interrupt scheme - * called by bsp_start() - */ - -rtems_status_code -signal_initialize(void) -{ - struct sigaction act; - sigset_t mask; - - /* mark them all active except for TraceTrap and Abort */ - - sigfillset(&mask); - sigdelset(&mask, SIGTRAP); - sigdelset(&mask, SIGABRT); - sigdelset(&mask, SIGIOT); - sigdelset(&mask, SIGCONT); - sigprocmask(SIG_UNBLOCK, &mask, 0); - - act.sa_handler = interrupt_handler; - act.sa_mask = mask; -#if defined(solaris) - act.sa_flags = SA_RESTART; -#else - act.sa_flags = 0; -#endif - - sigaction(SIGHUP, &act, 0); - sigaction(SIGINT, &act, 0); - sigaction(SIGQUIT, &act, 0); - sigaction(SIGILL, &act, 0); - sigaction(SIGEMT, &act, 0); - sigaction(SIGFPE, &act, 0); - sigaction(SIGKILL, &act, 0); - sigaction(SIGBUS, &act, 0); - sigaction(SIGSEGV, &act, 0); - sigaction(SIGSYS, &act, 0); - sigaction(SIGPIPE, &act, 0); - sigaction(SIGALRM, &act, 0); - sigaction(SIGTERM, &act, 0); - sigaction(SIGUSR1, &act, 0); - sigaction(SIGUSR2, &act, 0); - sigaction(SIGCHLD, &act, 0); - sigaction(SIGCLD, &act, 0); - sigaction(SIGPWR, &act, 0); - sigaction(SIGVTALRM, &act, 0); - sigaction(SIGPROF, &act, 0); - sigaction(SIGIO, &act, 0); - sigaction(SIGWINCH, &act, 0); - sigaction(SIGSTOP, &act, 0); - sigaction(SIGTTIN, &act, 0); - sigaction(SIGTTOU, &act, 0); - sigaction(SIGURG, &act, 0); -/* - * XXX: Really should be on HPUX. - */ - -#if defined(hppa1_1) - sigaction(SIGLOST, &act, 0); -#endif - - return RTEMS_SUCCESSFUL; -} - - -/* - * External interrupt handler. - * This is installed as cpu interrupt handler. - * It vectors out to specific external interrupt handlers. - */ - -void -interrupt_handler(int vector) -{ - if (_ISR_Nest_level++ == 0) { - /* switch to interrupt stack */ - } - - _Thread_Dispatch_disable_level++; - - if (_ISR_Vector_table[vector]) { - _ISR_Vector_table[vector](vector); - } - else { - Stray_signal(vector); - } - - if (_ISR_Nest_level-- == 0) { - /* switch back to original stack */ - } - - _Thread_Dispatch_disable_level--; - - if (_Thread_Dispatch_disable_level == 0 && - (_Context_Switch_necessary || _ISR_Signals_to_thread_executing)) { - _CPU_Enable_signal(0); - _Thread_Dispatch(); - } -} - - -void -Stray_signal(int sig_num) -{ - char buffer[ 80 ]; - - /* - * We avoid using the stdio section of the library. - * The following is generally safe. - */ - - write( - 2, - buffer, - sprintf( buffer, "Stray signal %d\n", sig_num ) - ); - - /* - * If it was a "fatal" signal, then exit here - * If app code has installed a hander for one of these, then - * we won't call Stray_signal, so this is ok. - */ - - switch (sig_num) - { - case SIGINT: - case SIGHUP: - case SIGQUIT: - case SIGILL: - case SIGEMT: - case SIGKILL: - case SIGBUS: - case SIGSEGV: - case SIGTERM: - _CPU_Fatal_error(0x100 + sig_num); - } -} - - -void -_CPU_Fatal_error(unsigned32 error) -{ - setitimer(ITIMER_REAL, 0, 0); - - _exit(error); -} - -int -_CPU_ffs(unsigned32 value) -{ - int output; - - output = ffs(value); - output = output - 1; - - return(output); -} diff --git a/c/src/exec/score/cpu/unix/cpu.h b/c/src/exec/score/cpu/unix/cpu.h deleted file mode 100644 index e6b29bcd74..0000000000 --- a/c/src/exec/score/cpu/unix/cpu.h +++ /dev/null @@ -1,929 +0,0 @@ -/* cpu.h - * - * This include file contains information pertaining to the HP - * PA-RISC processor (Level 1.1). - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * $Id$ - */ - -#ifndef __CPU_h -#define __CPU_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* conditional compilation parameters */ - -/* - * Should the calls to _Thread_Enable_dispatch be inlined? - * - * If TRUE, then they are inlined. - * If FALSE, then a subroutine call is made. - * - * Basically this is an example of the classic trade-off of size - * versus speed. Inlining the call (TRUE) typically increases the - * size of RTEMS while speeding up the enabling of dispatching. - * [NOTE: In general, the _Thread_Dispatch_disable_level will - * only be 0 or 1 unless you are in an interrupt handler and that - * interrupt handler invokes the executive.] When not inlined - * something calls _Thread_Enable_dispatch which in turns calls - * _Thread_Dispatch. If the enable dispatch is inlined, then - * one subroutine call is avoided entirely.] - */ - -#define CPU_INLINE_ENABLE_DISPATCH FALSE - -/* - * Should the body of the search loops in _Thread_queue_Enqueue_priority - * be unrolled one time? In unrolled each iteration of the loop examines - * two "nodes" on the chain being searched. Otherwise, only one node - * is examined per iteration. - * - * If TRUE, then the loops are unrolled. - * If FALSE, then the loops are not unrolled. - * - * The primary factor in making this decision is the cost of disabling - * and enabling interrupts (_ISR_Flash) versus the cost of rest of the - * body of the loop. On some CPUs, the flash is more expensive than - * one iteration of the loop body. In this case, it might be desirable - * to unroll the loop. It is important to note that on some CPUs, this - * code is the longest interrupt disable period in RTEMS. So it is - * necessary to strike a balance when setting this parameter. - */ - -#define CPU_UNROLL_ENQUEUE_PRIORITY TRUE - -/* - * Does RTEMS manage a dedicated interrupt stack in software? - * - * If TRUE, then a stack is allocated in _Interrupt_Manager_initialization. - * If FALSE, nothing is done. - * - * If the CPU supports a dedicated interrupt stack in hardware, - * then it is generally the responsibility of the BSP to allocate it - * and set it up. - * - * If the CPU does not support a dedicated interrupt stack, then - * the porter has two options: (1) execute interrupts on the - * stack of the interrupted task, and (2) have RTEMS manage a dedicated - * interrupt stack. - * - * If this is TRUE, CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE. - * - * Only one of CPU_HAS_SOFTWARE_INTERRUPT_STACK and - * CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is - * possible that both are FALSE for a particular CPU. Although it - * is unclear what that would imply about the interrupt processing - * procedure on that CPU. - */ - -#define CPU_HAS_SOFTWARE_INTERRUPT_STACK FALSE - -/* - * Does this CPU have hardware support for a dedicated interrupt stack? - * - * If TRUE, then it must be installed during initialization. - * If FALSE, then no installation is performed. - * - * If this is TRUE, CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE. - * - * Only one of CPU_HAS_SOFTWARE_INTERRUPT_STACK and - * CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is - * possible that both are FALSE for a particular CPU. Although it - * is unclear what that would imply about the interrupt processing - * procedure on that CPU. - */ - -#define CPU_HAS_HARDWARE_INTERRUPT_STACK TRUE - -/* - * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager? - * - * If TRUE, then the memory is allocated during initialization. - * If FALSE, then the memory is allocated during initialization. - * - * This should be TRUE if CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE - * or CPU_INSTALL_HARDWARE_INTERRUPT_STACK is TRUE. - */ - -#define CPU_ALLOCATE_INTERRUPT_STACK FALSE - -/* - * Does the CPU have hardware floating point? - * - * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported. - * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored. - * - * If there is a FP coprocessor such as the i387 or mc68881, then - * the answer is TRUE. - * - * The macro name "NO_CPU_HAS_FPU" should be made CPU specific. - * It indicates whether or not this CPU model has FP support. For - * example, it would be possible to have an i386_nofp CPU model - * which set this to false to indicate that you have an i386 without - * an i387 and wish to leave floating point support out of RTEMS. - */ - -#define CPU_HARDWARE_FP TRUE - -/* - * Are all tasks RTEMS_FLOATING_POINT tasks implicitly? - * - * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed. - * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed. - * - * So far, the only CPU in which this option has been used is the - * HP PA-RISC. The HP C compiler and gcc both implicitly use the - * floating point registers to perform integer multiplies. If - * a function which you would not think utilize the FP unit DOES, - * then one can not easily predict which tasks will use the FP hardware. - * In this case, this option should be TRUE. - * - * If CPU_HARDWARE_FP is FALSE, then this should be FALSE as well. - */ - -#define CPU_ALL_TASKS_ARE_FP FALSE - -/* - * Should the IDLE task have a floating point context? - * - * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task - * and it has a floating point context which is switched in and out. - * If FALSE, then the IDLE task does not have a floating point context. - * - * Setting this to TRUE negatively impacts the time required to preempt - * the IDLE task from an interrupt because the floating point context - * must be saved as part of the preemption. - */ - -#define CPU_IDLE_TASK_IS_FP FALSE - -/* - * Should the saving of the floating point registers be deferred - * until a context switch is made to another different floating point - * task? - * - * If TRUE, then the floating point context will not be stored until - * necessary. It will remain in the floating point registers and not - * disturned until another floating point task is switched to. - * - * If FALSE, then the floating point context is saved when a floating - * point task is switched out and restored when the next floating point - * task is restored. The state of the floating point registers between - * those two operations is not specified. - * - * If the floating point context does NOT have to be saved as part of - * interrupt dispatching, then it should be safe to set this to TRUE. - * - * Setting this flag to TRUE results in using a different algorithm - * for deciding when to save and restore the floating point context. - * The deferred FP switch algorithm minimizes the number of times - * the FP context is saved and restored. The FP context is not saved - * until a context switch is made to another, different FP task. - * Thus in a system with only one FP task, the FP context will never - * be saved or restored. - */ - -#define CPU_USE_DEFERRED_FP_SWITCH TRUE - -/* - * Does this port provide a CPU dependent IDLE task implementation? - * - * If TRUE, then the routine _CPU_Internal_threads_Idle_thread_body - * must be provided and is the default IDLE thread body instead of - * _Internal_threads_Idle_thread_body. - * - * If FALSE, then use the generic IDLE thread body if the BSP does - * not provide one. - * - * This is intended to allow for supporting processors which have - * a low power or idle mode. When the IDLE thread is executed, then - * the CPU can be powered down. - * - * The order of precedence for selecting the IDLE thread body is: - * - * 1. BSP provided - * 2. CPU dependent (if provided) - * 3. generic (if no BSP and no CPU dependent) - */ - -#define CPU_PROVIDES_IDLE_THREAD_BODY TRUE - -/* - * Does the stack grow up (toward higher addresses) or down - * (toward lower addresses)? - * - * If TRUE, then the grows upward. - * If FALSE, then the grows toward smaller addresses. - */ - -#if defined(hppa1_1) -#define CPU_STACK_GROWS_UP TRUE -#elif defined(sparc) -#define CPU_STACK_GROWS_UP FALSE -#else -#error "unknown CPU!!" -#endif - - -/* - * The following is the variable attribute used to force alignment - * of critical RTEMS structures. On some processors it may make - * sense to have these aligned on tighter boundaries than - * the minimum requirements of the compiler in order to have as - * much of the critical data area as possible in a cache line. - * - * The placement of this macro in the declaration of the variables - * is based on the syntactically requirements of the GNU C - * "__attribute__" extension. For example with GNU C, use - * the following to force a structures to a 32 byte boundary. - * - * __attribute__ ((aligned (32))) - * - * NOTE: Currently only the Priority Bit Map table uses this feature. - * To benefit from using this, the data must be heavily - * used so it will stay in the cache and used frequently enough - * in the executive to justify turning this on. - */ - -#define CPU_STRUCTURE_ALIGNMENT __attribute__ ((aligned (32))) - -/* - * The following defines the number of bits actually used in the - * interrupt field of the task mode. How those bits map to the - * CPU interrupt levels is defined by the routine _CPU_ISR_Set_level(). - */ - -#define CPU_MODES_INTERRUPT_MASK 0x00000001 - -#define CPU_NAME "UNIX" - -/* - * Processor defined structures - * - * Examples structures include the descriptor tables from the i386 - * and the processor control structure on the i960ca. - */ - -/* may need to put some structures here. */ - -#if defined(hppa1_1) -/* - * Word indices within a jmp_buf structure - */ - -#ifdef RTEMS_NEWLIB -#define RP_OFF 6 -#define SP_OFF 2 -#define R3_OFF 10 -#define R4_OFF 11 -#define R5_OFF 12 -#define R6_OFF 13 -#define R7_OFF 14 -#define R8_OFF 15 -#define R9_OFF 16 -#define R10_OFF 17 -#define R11_OFF 18 -#define R12_OFF 19 -#define R13_OFF 20 -#define R14_OFF 21 -#define R15_OFF 22 -#define R16_OFF 23 -#define R17_OFF 24 -#define R18_OFF 25 -#define DP_OFF 26 -#endif - -#ifdef RTEMS_UNIXLIB -#define RP_OFF 0 -#define SP_OFF 1 -#define R3_OFF 4 -#define R4_OFF 5 -#define R5_OFF 6 -#define R6_OFF 7 -#define R7_OFF 8 -#define R8_OFF 9 -#define R9_OFF 10 -#define R10_OFF 11 -#define R11_OFF 12 -#define R12_OFF 13 -#define R13_OFF 14 -#define R14_OFF 15 -#define R15_OFF 16 -#define R16_OFF 17 -#define R17_OFF 18 -#define R18_OFF 19 -#define DP_OFF 20 -#endif -#endif - -#if defined(sparc) - -/* - * Word indices within a jmp_buf structure - */ - -#ifdef RTEMS_NEWLIB -#define ADDR_ADJ_OFFSET -8 -#define SP_OFF 0 -#define RP_OFF 1 -#define FP_OFF 2 -#endif - -#ifdef RTEMS_UNIXLIB -#define ADDR_ADJ_OFFSET 0 -#define G0_OFF 0 -#define SP_OFF 1 -#define RP_OFF 2 -#define FP_OFF 3 -#define I7_OFF 4 -#endif - -#endif - -/* - * Contexts - * - * Generally there are 2 types of context to save. - * 1. Interrupt registers to save - * 2. Task level registers to save - * - * This means we have the following 3 context items: - * 1. task level context stuff:: Context_Control - * 2. floating point task stuff:: Context_Control_fp - * 3. special interrupt level context :: Context_Control_interrupt - * - * On some processors, it is cost-effective to save only the callee - * preserved registers during a task context switch. This means - * that the ISR code needs to save those registers which do not - * persist across function calls. It is not mandatory to make this - * distinctions between the caller/callee saves registers for the - * purpose of minimizing context saved during task switch and on interrupts. - * If the cost of saving extra registers is minimal, simplicity is the - * choice. Save the same context on interrupt entry as for tasks in - * this case. - * - * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then - * care should be used in designing the context area. - * - * On some CPUs with hardware floating point support, the Context_Control_fp - * structure will not be used or it simply consist of an array of a - * fixed number of bytes. This is done when the floating point context - * is dumped by a "FP save context" type instruction and the format - * is not really defined by the CPU. In this case, there is no need - * to figure out the exact format -- only the size. Of course, although - * this is enough information for RTEMS, it is probably not enough for - * a debugger such as gdb. But that is another problem. - */ - -typedef struct { - jmp_buf regs; -} Context_Control; - -typedef struct { -} Context_Control_fp; - -typedef struct { -} CPU_Interrupt_frame; - - -/* - * The following table contains the information required to configure - * the XXX processor specific parameters. - * - * NOTE: The interrupt_stack_size field is required if - * CPU_ALLOCATE_INTERRUPT_STACK is defined as TRUE. - * - * The pretasking_hook, predriver_hook, and postdriver_hook, - * and the do_zero_of_workspace fields are required on ALL CPUs. - */ - -typedef struct { - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 interrupt_stack_size; - unsigned32 extra_system_initialization_stack; -} rtems_cpu_table; - -/* - * This variable is optional. It is used on CPUs on which it is difficult - * to generate an "uninitialized" FP context. It is filled in by - * _CPU_Initialize and copied into the task's FP context area during - * _CPU_Context_Initialize. - */ - -EXTERN Context_Control_fp _CPU_Null_fp_context; - -/* - * On some CPUs, RTEMS supports a software managed interrupt stack. - * This stack is allocated by the Interrupt Manager and the switch - * is performed in _ISR_Handler. These variables contain pointers - * to the lowest and highest addresses in the chunk of memory allocated - * for the interrupt stack. Since it is unknown whether the stack - * grows up or down (in general), this give the CPU dependent - * code the option of picking the version it wants to use. - * - * NOTE: These two variables are required if the macro - * CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE. - */ - -EXTERN void *_CPU_Interrupt_stack_low; -EXTERN void *_CPU_Interrupt_stack_high; - -/* - * With some compilation systems, it is difficult if not impossible to - * call a high-level language routine from assembly language. This - * is especially true of commercial Ada compilers and name mangling - * C++ ones. This variable can be optionally defined by the CPU porter - * and contains the address of the routine _Thread_Dispatch. This - * can make it easier to invoke that routine at the end of the interrupt - * sequence (if a dispatch is necessary). - */ - -EXTERN void (*_CPU_Thread_dispatch_pointer)(); - -/* - * Nothing prevents the porter from declaring more CPU specific variables. - */ - -/* XXX: if needed, put more variables here */ - -/* - * The size of the floating point context area. On some CPUs this - * will not be a "sizeof" because the format of the floating point - * area is not defined -- only the size is. This is usually on - * CPUs with a "floating point save context" instruction. - */ - -#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp ) - -/* - * The size of a frame on the stack - */ - -#if defined(hppa1_1) -#define CPU_FRAME_SIZE (32 * 4) -#elif defined(sparc) -#define CPU_FRAME_SIZE (112) /* based on disassembled test code */ -#else -#error "Unknown CPU!!!" -#endif - -/* - * Amount of extra stack (above minimum stack size) required by - * system initialization thread. Remember that in a multiprocessor - * system the system intialization thread becomes the MP server thread. - */ - -#define CPU_SYSTEM_INITIALIZATION_THREAD_EXTRA_STACK 0 - -/* - * This defines the number of entries in the ISR_Vector_table managed - * by RTEMS. - */ - -#define CPU_INTERRUPT_NUMBER_OF_VECTORS 64 - -/* - * Should be large enough to run all RTEMS tests. This insures - * that a "reasonable" small application should not have any problems. - */ - -#define CPU_STACK_MINIMUM_SIZE (16 * 1024) - -/* - * CPU's worst alignment requirement for data types on a byte boundary. This - * alignment does not take into account the requirements for the stack. - */ - -#define CPU_ALIGNMENT 8 - -/* - * This number corresponds to the byte alignment requirement for the - * heap handler. This alignment requirement may be stricter than that - * for the data types alignment specified by CPU_ALIGNMENT. It is - * common for the heap to follow the same alignment requirement as - * CPU_ALIGNMENT. If the CPU_ALIGNMENT is strict enough for the heap, - * then this should be set to CPU_ALIGNMENT. - * - * NOTE: This does not have to be a power of 2. It does have to - * be greater or equal to than CPU_ALIGNMENT. - */ - -#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT - -/* - * This number corresponds to the byte alignment requirement for memory - * buffers allocated by the partition manager. This alignment requirement - * may be stricter than that for the data types alignment specified by - * CPU_ALIGNMENT. It is common for the partition to follow the same - * alignment requirement as CPU_ALIGNMENT. If the CPU_ALIGNMENT is strict - * enough for the partition, then this should be set to CPU_ALIGNMENT. - * - * NOTE: This does not have to be a power of 2. It does have to - * be greater or equal to than CPU_ALIGNMENT. - */ - -#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT - -/* - * This number corresponds to the byte alignment requirement for the - * stack. This alignment requirement may be stricter than that for the - * data types alignment specified by CPU_ALIGNMENT. If the CPU_ALIGNMENT - * is strict enough for the stack, then this should be set to 0. - * - * NOTE: This must be a power of 2 either 0 or greater than CPU_ALIGNMENT. - */ - -#define CPU_STACK_ALIGNMENT 64 - -/* ISR handler macros */ - -/* - * Disable all interrupts for an RTEMS critical section. The previous - * level is returned in _level. - */ - -#define _CPU_ISR_Disable( _level ) \ - do { \ - (_level) = _CPU_Disable_signal(); \ - } while ( 0 ) - -/* - * Enable interrupts to the previous level (returned by _CPU_ISR_Disable). - * This indicates the end of an RTEMS critical section. The parameter - * _level is not modified. - */ - -#define _CPU_ISR_Enable( _level ) \ - do { \ - _CPU_Enable_signal( (_level) ); \ - } while ( 0 ) - -/* - * This temporarily restores the interrupt to _level before immediately - * disabling them again. This is used to divide long RTEMS critical - * sections into two or more parts. The parameter _level is not - * modified. - */ - -#define _CPU_ISR_Flash( _level ) \ - do { \ - register _ignored = 0; \ - _CPU_ISR_Enable( (_level) ); \ - _CPU_ISR_Disable( _ignored ); \ - } while ( 0 ) - -/* - * Map interrupt level in task mode onto the hardware that the CPU - * actually provides. Currently, interrupt levels which do not - * map onto the CPU in a generic fashion are undefined. Someday, - * it would be nice if these were "mapped" by the application - * via a callout. For example, m68k has 8 levels 0 - 7, levels - * 8 - 255 would be available for bsp/application specific meaning. - * This could be used to manage a programmable interrupt controller - * via the rtems_task_mode directive. - */ - -#define _CPU_ISR_Set_level( new_level ) \ - { \ - if ( new_level ) \ - (void) _CPU_Disable_signal(); \ - else \ - _CPU_Enable_signal( 0 ); \ - } - -/* end of ISR handler macros */ - -/* Context handler macros */ - -/* - * This routine is responsible for somehow restarting the currently - * executing task. If you are lucky, then all that is necessary - * is restoring the context. Otherwise, there will need to be - * a special assembly routine which does something special in this - * case. Context_Restore should work most of the time. It will - * not work if restarting self conflicts with the stack frame - * assumptions of restoring a context. - */ - -#define _CPU_Context_Restart_self( _the_context ) \ - _CPU_Context_restore( (_the_context) ); - -/* - * The purpose of this macro is to allow the initial pointer into - * a floating point context area (used to save the floating point - * context) to be at an arbitrary place in the floating point - * context area. - * - * This is necessary because some FP units are designed to have - * their context saved as a stack which grows into lower addresses. - * Other FP units can be saved by simply moving registers into offsets - * from the base of the context area. Finally some FP units provide - * a "dump context" instruction which could fill in from high to low - * or low to high based on the whim of the CPU designers. - */ - -#define _CPU_Context_Fp_start( _base, _offset ) \ - ( (void *) (_base) + (_offset) ) - -/* - * This routine initializes the FP context area passed to it to. - * There are a few standard ways in which to initialize the - * floating point context. The code included for this macro assumes - * that this is a CPU in which a "initial" FP context was saved into - * _CPU_Null_fp_context and it simply copies it to the destination - * context passed to it. - * - * Other models include (1) not doing anything, and (2) putting - * a "null FP status word" in the correct place in the FP context. - */ - -#define _CPU_Context_Initialize_fp( _destination ) \ - { \ - *((Context_Control_fp *) *((void **) _destination)) = _CPU_Null_fp_context; \ - } - -#define _CPU_Context_save_fp( _fp_context ) \ - _CPU_Save_float_context( *(Context_Control_fp **)(_fp_context)) - -#define _CPU_Context_restore_fp( _fp_context ) \ - _CPU_Restore_float_context( *(Context_Control_fp **)(_fp_context)) - -extern void _CPU_Context_Initialize( - Context_Control *_the_context, - unsigned32 *_stack_base, - unsigned32 _size, - unsigned32 _new_level, - proc_ptr *_entry_point -); - -/* end of Context handler macros */ - -/* Fatal Error manager macros */ - -/* - * This routine copies _error into a known place -- typically a stack - * location or a register, optionally disables interrupts, and - * halts/stops the CPU. - */ - -#define _CPU_Fatal_halt( _error ) \ - _CPU_Fatal_error( _error ) - -/* end of Fatal Error manager macros */ - -/* Bitfield handler macros */ - -/* - * This routine sets _output to the bit number of the first bit - * set in _value. _value is of CPU dependent type Priority_Bit_map_control. - * This type may be either 16 or 32 bits wide although only the 16 - * least significant bits will be used. - * - * There are a number of variables in using a "find first bit" type - * instruction. - * - * (1) What happens when run on a value of zero? - * (2) Bits may be numbered from MSB to LSB or vice-versa. - * (3) The numbering may be zero or one based. - * (4) The "find first bit" instruction may search from MSB or LSB. - * - * RTEMS guarantees that (1) will never happen so it is not a concern. - * (2),(3), (4) are handled by the macros _CPU_Priority_mask() and - * _CPU_Priority_Bits_index(). These three form a set of routines - * which must logically operate together. Bits in the _value are - * set and cleared based on masks built by _CPU_Priority_mask(). - * The basic major and minor values calculated by _Priority_Major() - * and _Priority_Minor() are "massaged" by _CPU_Priority_Bits_index() - * to properly range between the values returned by the "find first bit" - * instruction. This makes it possible for _Priority_Get_highest() to - * calculate the major and directly index into the minor table. - * This mapping is necessary to ensure that 0 (a high priority major/minor) - * is the first bit found. - * - * This entire "find first bit" and mapping process depends heavily - * on the manner in which a priority is broken into a major and minor - * components with the major being the 4 MSB of a priority and minor - * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest - * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next - * to the lowest priority. - * - * If your CPU does not have a "find first bit" instruction, then - * there are ways to make do without it. Here are a handful of ways - * to implement this in software: - * - * - a series of 16 bit test instructions - * - a "binary search using if's" - * - _number = 0 - * if _value > 0x00ff - * _value >>=8 - * _number = 8; - * - * if _value > 0x0000f - * _value >=8 - * _number += 4 - * - * _number += bit_set_table[ _value ] - * - * where bit_set_table[ 16 ] has values which indicate the first - * bit set - */ - -#define _CPU_Bitfield_Find_first_bit( _value, _output ) \ - _output = _CPU_ffs( _value ) - -/* end of Bitfield handler macros */ - -/* - * This routine builds the mask which corresponds to the bit fields - * as searched by _CPU_Bitfield_Find_first_bit(). See the discussion - * for that routine. - */ - -#define _CPU_Priority_Mask( _bit_number ) \ - ( 1 << (_bit_number) ) - -/* - * This routine translates the bit numbers returned by - * _CPU_Bitfield_Find_first_bit() into something suitable for use as - * a major or minor component of a priority. See the discussion - * for that routine. - */ - -#define _CPU_Priority_Bits_index( _priority ) \ - (_priority) - -/* end of Priority handler macros */ - -/* functions */ - -/* - * _CPU_Initialize - * - * This routine performs CPU dependent initialization. - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) -); - -/* - * _CPU_ISR_install_vector - * - * This routine installs an interrupt vector. - */ - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -); - -/* - * _CPU_Install_interrupt_stack - * - * This routine installs the hardware interrupt stack pointer. - * - * NOTE: It need only be provided if CPU_HAS_HARDWARE_INTERRUPT_STACK - * is TRUE. - */ - -void _CPU_Install_interrupt_stack( void ); - -/* - * _CPU_Internal_threads_Idle_thread_body - * - * This routine is the CPU dependent IDLE thread body. - * - * NOTE: It need only be provided if CPU_PROVIDES_IDLE_THREAD_BODY - * is TRUE. - */ - -void _CPU_Internal_threads_Idle_thread_body( void ); - -/* - * _CPU_Context_switch - * - * This routine switches from the run context to the heir context. - */ - -void _CPU_Context_switch( - Context_Control *run, - Context_Control *heir -); - -/* - * _CPU_Context_restore - * - * This routine is generallu 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. - */ - -void _CPU_Context_restore( - Context_Control *new_context -); - -/* - * _CPU_Save_float_context - * - * This routine saves the floating point context passed to it. - */ - -void _CPU_Save_float_context( - Context_Control_fp *fp_context_ptr -); - -/* - * _CPU_Restore_float_context - * - * This routine restores the floating point context passed to it. - */ - -void _CPU_Restore_float_context( - Context_Control_fp *fp_context_ptr -); - - -void _CPU_ISR_Set_signal_level( - unsigned32 level -); - -unsigned32 _CPU_Disable_signal( void ); - -void _CPU_Enable_signal( - unsigned32 level -); - -void _CPU_Fatal_error( - unsigned32 _error -); - -int _CPU_ffs( - unsigned32 _value -); - -/* The following routine swaps the endian format of an unsigned int. - * It must be static because it is referenced indirectly. - * - * This version will work on any processor, but if there is a better - * way for your CPU PLEASE use it. The most common way to do this is to: - * - * swap least significant two bytes with 16-bit rotate - * swap upper and lower 16-bits - * swap most significant two bytes with 16-bit rotate - * - * Some CPUs have special instructions which swap a 32-bit quantity in - * a single instruction (e.g. i486). It is probably best to avoid - * an "endian swapping control bit" in the CPU. One good reason is - * that interrupts would probably have to be disabled to insure that - * an interrupt does not try to access the same "chunk" with the wrong - * endian. Another good reason is that on some CPUs, the endian bit - * endianness for ALL fetches -- both code and data -- so the code - * will be fetched incorrectly. - */ - -static inline unsigned int CPU_swap_u32( - unsigned int value -) -{ - unsigned32 byte1, byte2, byte3, byte4, swapped; - - byte4 = (value >> 24) & 0xff; - byte3 = (value >> 16) & 0xff; - byte2 = (value >> 8) & 0xff; - byte1 = value & 0xff; - - swapped = (byte1 << 24) | (byte2 << 16) | (byte3 << 8) | byte4; - return( swapped ); -} - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/c/src/exec/score/cpu/unix/unix.h b/c/src/exec/score/cpu/unix/unix.h deleted file mode 100644 index 823bbcfb34..0000000000 --- a/c/src/exec/score/cpu/unix/unix.h +++ /dev/null @@ -1,90 +0,0 @@ -/* unix.h - * - * This include file contains the basic type definitions required by RTEMS - * which are typical for a modern UNIX computer using GCC. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __UNIX_h -#define __UNIX_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following define the CPU Family and Model within the family - * - * NOTE: The string "REPLACE_THIS_WITH_THE_CPU_MODEL" is replaced - * with the name of the appropriate macro for this target CPU. - */ - -#define unix -#define REPLACE_THIS_WITH_THE_CPU_FAMILY -#define REPLACE_THIS_WITH_THE_BSP -#define REPLACE_THIS_WITH_THE_CPU_MODEL -#define REPLACE_THIS_WITH_THE_UNIX_FLAVOR - -/* - * This file contains the information required to build - * RTEMS for a particular member of the "unix" - * family when executing in protected mode. It does - * this by setting variables to indicate which implementation - * dependent features are present in a particular member - * of the family. - */ - -#if defined(hpux) - -#define RTEMS_MODEL_NAME "hpux" - -#elif defined(solaris) - -#define RTEMS_MODEL_NAME "solaris" - -#else - -#error "Unsupported CPU Model" - -#endif - -#ifndef ASM - -/* type definitions */ - -typedef unsigned char unsigned8; /* 8-bit unsigned integer */ -typedef unsigned short unsigned16; /* 16-bit unsigned integer */ -typedef unsigned int unsigned32; /* 32-bit unsigned integer */ -typedef unsigned long long unsigned64; /* 64-bit unsigned integer */ - -typedef unsigned16 Priority_Bit_map_control; - -typedef char signed8; /* 8-bit signed integer */ -typedef short signed16; /* 16-bit signed integer */ -typedef int signed32; /* 32-bit signed integer */ -typedef long long signed64; /* 64-bit signed integer */ - -typedef unsigned32 boolean; /* Boolean value */ - -typedef float single_precision; /* single precision float */ -typedef double double_precision; /* double precision float */ - -typedef void ( *unix_isr_entry )( void ); - -#ifdef __cplusplus -} -#endif - -#endif /* !ASM */ -#endif -/* end of include file */ - diff --git a/c/src/exec/score/headers/address.h b/c/src/exec/score/headers/address.h deleted file mode 100644 index 0abd113f63..0000000000 --- a/c/src/exec/score/headers/address.h +++ /dev/null @@ -1,122 +0,0 @@ -/* address.h - * - * This include file contains the information required to manipulate - * physical addresses. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ADDRESSES_h -#define __RTEMS_ADDRESSES_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * _Addresses_Add_offset - * - * DESCRIPTION: - * - * This function is used to add an offset to a base address. - * It returns the resulting address. This address is typically - * converted to an access type before being used further. - */ - -STATIC INLINE void *_Addresses_Add_offset ( - void *base, - unsigned32 offset -); - -/* - * _Addresses_Subtract_offset - * - * DESCRIPTION: - * - * This function is used to subtract an offset from a base - * address. It returns the resulting address. This address is - * typically converted to an access type before being used further. - */ - -STATIC INLINE void *_Addresses_Subtract_offset( - void *base, - unsigned32 offset -); - -/* - * _Addresses_Add - * - * DESCRIPTION: - * - * This function is used to add two addresses. It returns the - * resulting address. This address is typically converted to an - * access type before being used further. - */ - -STATIC INLINE void *_Addresses_Add ( - void *left, - void *right -); - -/* - * _Addresses_Subtract - * - * DESCRIPTION: - * - * This function is used to subtract two addresses. It returns the - * resulting offset. - */ - -STATIC INLINE unsigned32 _Addresses_Subtract ( - void *left, - void *right -); - -/* - * _Addresses_Is_aligned - * - * DESCRIPTION: - * - * This function returns TRUE if the given address is correctly - * aligned for this processor and FALSE otherwise. Proper alignment - * is based on correctness and efficiency. - */ - -STATIC INLINE boolean _Addresses_Is_aligned ( - void *address -); - -/* - * _Addresses_Is_in_range - * - * DESCRIPTION: - * - * This function returns TRUE if the given address is within the - * memory range specified and FALSE otherwise. base is the address - * of the first byte in the memory range and limit is the address - * of the last byte in the memory range. The base address is - * assumed to be lower than the limit address. - */ - -STATIC INLINE boolean _Addresses_Is_in_range ( - void *address, - void *base, - void *limit -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/bitfield.h b/c/src/exec/score/headers/bitfield.h deleted file mode 100644 index a74ea97735..0000000000 --- a/c/src/exec/score/headers/bitfield.h +++ /dev/null @@ -1,49 +0,0 @@ -/* bitfield.h - * - * This include file contains all bit field manipulation routines. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_BITFIELD_h -#define __RTEMS_BITFIELD_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * _Bitfield_Find_first_bit - * - * DESCRIPTION: - * - * This routine returns the bit_number of the first bit set - * in the specified value. The correspondence between bit_number - * and actual bit position is processor dependent. The search for - * the first bit set may run from most to least significant bit - * or vice-versa. - * - * NOTE: - * - * This routine is used when the executing thread is removed - * from the ready state and, as a result, its performance has a - * significant impact on the performance of the executive as a whole. - */ - -#define _Bitfield_Find_first_bit( _value, _bit_number ) \ - _CPU_Bitfield_Find_first_bit( _value, _bit_number ) - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/chain.h b/c/src/exec/score/headers/chain.h deleted file mode 100644 index 06cc47cc65..0000000000 --- a/c/src/exec/score/headers/chain.h +++ /dev/null @@ -1,432 +0,0 @@ -/* chain.h - * - * This include file contains all the constants and structures associated - * with the Doubly Linked Chain Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CHAIN_h -#define __RTEMS_CHAIN_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * This is used to manage each element (node) which is placed - * on a chain. - * - * NOTE: Typically, a more complicated structure will use the - * chain package. The more complicated structure will - * include a chain node as the first element in its - * control structure. It will then call the chain package - * with a pointer to that node element. The node pointer - * and the higher level structure start at the same address - * so the user can cast the pointers back and forth. - * - */ - -typedef struct Chain_Node_struct Chain_Node; - -struct Chain_Node_struct { - Chain_Node *next; - Chain_Node *previous; -}; - -/* - * This is used to manage a chain. A chain consists of a doubly - * linked list of zero or more nodes. - * - * NOTE: This implementation does not require special checks for - * manipulating the first and last elements on the chain. - * To accomplish this the chain control structure is - * treated as two overlapping chain nodes. The permanent - * head of the chain overlays a node structure on the - * first and permanent_null fields. The permanent tail - * of the chain overlays a node structure on the - * permanent_null and last elements of the structure. - * - */ - -typedef struct { - Chain_Node *first; - Chain_Node *permanent_null; - Chain_Node *last; -} Chain_Control; - -/* - * _Chain_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_chain structure to manage the - * contiguous array of number_nodes nodes which starts at - * starting_address. Each node is of node_size bytes. - * - */ - -void _Chain_Initialize( - Chain_Control *the_chain, - void *starting_address, - unsigned32 number_nodes, - unsigned32 node_size -); - -/* - * _Chain_Initialize_empty - * - * DESCRIPTION: - * - * This routine initializes the specified chain to contain zero nodes. - * - */ - -STATIC INLINE void _Chain_Initialize_empty( - Chain_Control *the_chain -); - -/* - * _Chain_Are_nodes_equal - * - * DESCRIPTION: - * - * This function returns TRUE if LEFT and RIGHT are equal, - * and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Are_nodes_equal( - Chain_Node *left, - Chain_Node *right -); - -/* - * _Chain_Extract_unprotected - * - * DESCRIPTION: - * - * This routine extracts the_node from the chain on which it resides. - * It does NOT disable interrupts to insure the atomicity of the - * extract operation. - * - */ - -STATIC INLINE void _Chain_Extract_unprotected( - Chain_Node *the_node -); - -/* - * _Chain_Extract - * - * DESCRIPTION: - * - * This routine extracts the_node from the chain on which it resides. - * It disables interrupts to insure the atomicity of the - * extract operation. - * - */ - -void _Chain_Extract( - Chain_Node *the_node -); - -/* - * _Chain_Get_unprotected - * - * DESCRIPTION: - * - * This function removes the first node from the_chain and returns - * a pointer to that node. If the_chain is empty, then NULL is returned. - * It does NOT disable interrupts to insure the atomicity of the - * get operation. - * - */ - -STATIC INLINE Chain_Node *_Chain_Get_unprotected( - Chain_Control *the_chain -); - -/* - * _Chain_Get - * - * DESCRIPTION: - * - * This function removes the first node from the_chain and returns - * a pointer to that node. If the_chain is empty, then NULL is returned. - * It disables interrupts to insure the atomicity of the - * get operation. - * - */ - -Chain_Node *_Chain_Get( - Chain_Control *the_chain -); - -/* - * _Chain_Get_first_unprotected - * - * DESCRIPTION: - * - * This function removes the first node from the_chain and returns - * a pointer to that node. It does NOT disable interrupts to insure - * the atomicity of the get operation. - * - */ - -STATIC INLINE Chain_Node *_Chain_Get_first_unprotected( - Chain_Control *the_chain -); - -/* - * _Chain_Insert_unprotected - * - * DESCRIPTION: - * - * This routine inserts the_node on a chain immediately following - * after_node. It does NOT disable interrupts to insure the atomicity - * of the extract operation. - * - */ - -STATIC INLINE void _Chain_Insert_unprotected( - Chain_Node *after_node, - Chain_Node *the_node -); - -/* - * _Chain_Insert - * - * DESCRIPTION: - * - * This routine inserts the_node on a chain immediately following - * after_node. It disables interrupts to insure the atomicity - * of the extract operation. - * - */ - -void _Chain_Insert( - Chain_Node *after_node, - Chain_Node *the_node -); - -/* - * _Chain_Append_unprotected - * - * DESCRIPTION: - * - * This routine appends the_node onto the end of the_chain. - * It does NOT disable interrupts to insure the atomicity of the - * append operation. - * - */ - -STATIC INLINE void _Chain_Append_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Append - * - * DESCRIPTION: - * - * This routine appends the_node onto the end of the_chain. - * It disables interrupts to insure the atomicity of the - * append operation. - * - */ - -void _Chain_Append( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Prepend_unprotected - * - * DESCRIPTION: - * - * This routine prepends the_node onto the front of the_chain. - * It does NOT disable interrupts to insure the atomicity of the - * prepend operation. - * - */ - -STATIC INLINE void _Chain_Prepend_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Prepend - * - * DESCRIPTION: - * - * This routine prepends the_node onto the front of the_chain. - * It disables interrupts to insure the atomicity of the - * prepend operation. - * - */ - -STATIC INLINE void _Chain_Prepend( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Head - * - * DESCRIPTION: - * - * This function returns a pointer to the first node on the chain. - * - */ - -STATIC INLINE Chain_Node *_Chain_Head( - Chain_Control *the_chain -); - -/* - * _Chain_Tail - * - * DESCRIPTION: - * - * This function returns a pointer to the last node on the chain. - * - */ - -STATIC INLINE Chain_Node *_Chain_Tail( - Chain_Control *the_chain -); - -/* - * _Chain_Is_head - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the head of the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_head( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Is_tail - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the tail of the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_tail( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Is_first - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the first node on a chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_first( - Chain_Node *the_node -); - -/* - * _Chain_Is_last - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the last node on a chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_last( - Chain_Node *the_node -); - -/* - * _Chain_Is_empty - * - * DESCRIPTION: - * - * This function returns TRUE if there a no nodes on the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_empty( - Chain_Control *the_chain -); - -/* - * _Chain_Has_only_one_node - * - * DESCRIPTION: - * - * This function returns TRUE if there is only one node on the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Has_only_one_node( - Chain_Control *the_chain -); - -/* - * _Chain_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_chain is NULL and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_null( - Chain_Control *the_chain -); - -/* - * _Chain_Is_null_node - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is NULL and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_null_node( - Chain_Node *the_node -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/context.h b/c/src/exec/score/headers/context.h deleted file mode 100644 index 9b8ee92b04..0000000000 --- a/c/src/exec/score/headers/context.h +++ /dev/null @@ -1,133 +0,0 @@ -/* context.h - * - * This include file contains all information about a context. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CONTEXT_h -#define __RTEMS_CONTEXT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following constant defines the number of bytes required - * to store a full floating point context. - */ - -#define CONTEXT_FP_SIZE CPU_CONTEXT_FP_SIZE - -/* - * The following variable is set to TRUE when a reschedule operation - * has determined that the processor should be taken away from the - * currently executing thread and given to the heir thread. - */ - -EXTERN boolean _Context_Switch_necessary; - -/* - * _Context_Initialize - * - * DESCRIPTION: - * - * This routine initializes THE_CONTEXT such that the stack - * pointer, interrupt level, and entry point are correct for the - * thread's initial state. - */ - -#define _Context_Initialize( _the_context, _stack, _size, _isr, _entry ) \ - _CPU_Context_Initialize( _the_context, _stack, _size, _isr, _entry ) - -/* - * _Context_Switch - * - * DESCRIPTION: - * - * This routine saves the current context into the EXECUTING - * context record and restores the context specified by HEIR. - */ - -#define _Context_Switch( _executing, _heir ) \ - _CPU_Context_switch( _executing, _heir ) - -/* - * _Context_Restart_self - * - * DESCRIPTION: - * - * This routine restarts the calling thread by restoring its initial - * stack pointer and returning to the thread's entry point. - */ - -#define _Context_Restart_self( _the_context ) \ - _CPU_Context_Restart_self( _the_context ) - -/* - * _Context_Fp_start - * - * DESCRIPTION: - * - * This function returns the starting address of the floating - * point context save area. It is assumed that the are reserved - * for the floating point save area is large enough. - */ - -#define _Context_Fp_start( _base, _offset ) \ - _CPU_Context_Fp_start( (_base), (_offset) ) - -/* - * _Context_Initialize_fp - * - * DESCRIPTION: - * - * This routine initializes the floating point context save - * area to contain an initial known state. - */ - -#define _Context_Initialize_fp( _fp_area ) \ - _CPU_Context_Initialize_fp( _fp_area ) - -/* - * _Context_Restore_fp - * - * DESCRIPTION: - * - * This routine restores the floating point context contained - * in the FP_CONTEXT area. It is assumed that the current - * floating point context has been saved by a previous invocation - * of SAVE_FP. - */ - -#define _Context_Restore_fp( _fp ) \ - _CPU_Context_restore_fp( _fp ) - -/* - * _Context_Save_fp - * - * DESCRIPTION: - * - * This routine saves the current floating point context - * in the FP_CONTEXT area. - */ - -#define _Context_Save_fp( _fp ) \ - _CPU_Context_save_fp( _fp ) - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/copyrt.h b/c/src/exec/score/headers/copyrt.h deleted file mode 100644 index c711ba09b3..0000000000 --- a/c/src/exec/score/headers/copyrt.h +++ /dev/null @@ -1,42 +0,0 @@ -/* copyrt.h - * - * This include file contains the copyright notice for RTEMS - * which is included in every binary copy of the executive. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_COPYRIGHT_h -#define __RTEMS_COPYRIGHT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef INIT - -const char _Copyright_Notice[] = -"COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.\n\ -On-Line Applications Research Corporation (OAR).\n\ -All rights assigned to U.S. Government, 1994.\n"; - -#else - -extern const char _Copyright_Notice[]; - -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/debug.h b/c/src/exec/score/headers/debug.h deleted file mode 100644 index afe6251bbe..0000000000 --- a/c/src/exec/score/headers/debug.h +++ /dev/null @@ -1,98 +0,0 @@ -/* debug.h - * - * This include file contains the information pertaining to the debug - * support within RTEMS. It is currently cast in the form of a - * Manager since it is externally accessible. - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_DEBUG_h -#define __RTEMS_DEBUG_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type is used to manage the debug mask. - */ - -typedef unsigned32 rtems_debug_control; - -/* - * These constants represent various classes of debugging. - */ - -#define RTEMS_DEBUG_ALL_MASK 0xffffffff -#define RTEMS_DEBUG_REGION 0x00000001 - -/* - * This variable contains the current debug level. - */ - -EXTERN rtems_debug_control _Debug_Level; - -/* - * _Debug_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Debug_Manager_initialization( void ); - -/* - * rtems_debug_enable - * - * DESCRIPTION: - * - * This routine enables the specified types of debug checks. - */ - -void rtems_debug_enable ( - rtems_debug_control to_be_enabled -); - -/* - * rtems_debug_disable - * - * DESCRIPTION: - * - * This routine disables the specified types of debug checks. - */ - -void rtems_debug_disable ( - rtems_debug_control to_be_disabled -); - -/* - * - * _Debug_Is_enabled - * - * DESCRIPTION: - * - * This routine returns TRUE if the requested debug level is - * enabled, and FALSE otherwise. - */ - -boolean _Debug_Is_enabled( - rtems_debug_control level -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/heap.h b/c/src/exec/score/headers/heap.h deleted file mode 100644 index 9eb348a760..0000000000 --- a/c/src/exec/score/headers/heap.h +++ /dev/null @@ -1,396 +0,0 @@ -/* heap.h - * - * This include file contains the information pertaining to the Heap - * Handler. A heap is a doubly linked list of variable size - * blocks which are allocated using the first fit method. Garbage - * collection is performed each time a block is returned to the heap by - * coalescing neighbor blocks. Control information for both allocated - * and unallocated blocks is contained in the heap space. A heap header - * contains control information for the heap. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_HEAP_h -#define __RTEMS_HEAP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Status codes for heap_extend - */ - -typedef enum { - HEAP_EXTEND_SUCCESSFUL, - HEAP_EXTEND_ERROR, - HEAP_EXTEND_NOT_IMPLEMENTED -} Heap_Extend_status; - -/* - * Constants used in the size/used field of each heap block to - * indicate when a block is free or in use. - */ - -#define HEAP_BLOCK_USED 1 /* indicates block is in use */ -#define HEAP_BLOCK_FREE 0 /* indicates block is free */ - -/* - * The size/used field value for the dummy front and back flags. - */ - -#define HEAP_DUMMY_FLAG (0 + HEAP_BLOCK_USED) - -/* - * The following constants reflect various requirements of the - * heap data structures which impact the management of a heap. - * - * NOTE: Because free block overhead is greater than used block - * overhead AND a portion of the allocated space is from - * the extra free block overhead, the absolute lower bound - * of the minimum fragment size is equal to the size of - * the free block overhead. - */ - -#define HEAP_OVERHEAD \ - (sizeof( unsigned32 ) * 2) /* size dummy first and last blocks */ -#define HEAP_BLOCK_USED_OVERHEAD \ - (sizeof( void * ) * 2) /* num bytes overhead in used block */ -#define HEAP_MINIMUM_SIZE \ - (HEAP_OVERHEAD + sizeof (Heap_Block)) - /* min number of bytes the user may */ - /* specify for the heap size */ - -/* - * The following defines the data structure used to manage - * individual blocks in a heap. When the block is allocated, the - * next and previous fields are not used by the Heap Handler - * and thus the address returned for the block starts at - * the address of the next field. - * - * NOTE: The next and previous pointers are only valid when the - * block is free. Caution must be exercised to insure that - * allocated blocks are large enough to contain them and - * that they are not accidentally overwritten when the - * block is actually allocated. - */ - -typedef struct Heap_Block_struct Heap_Block; - -struct Heap_Block_struct { - unsigned32 back_flag; /* size and status of prev block */ - unsigned32 front_flag; /* size and status of block */ - Heap_Block *next; /* pointer to next block */ - Heap_Block *previous; /* pointer to previous block */ -}; - -/* - * The following defines the control block used to manage each heap. - * - * NOTE: - * - * This structure is layed out such that it can be used a a dummy - * first and last block on the free block chain. The extra padding - * insures the dummy last block is the correct size. - * - * The first Heap_Block starts at first while the second starts at - * final. This is effectively the same trick as is used in the Chain - * Handler. - */ - -typedef struct { - Heap_Block *start; /* first valid block address in heap */ - Heap_Block *final; /* last valid block address in heap */ - - Heap_Block *first; /* pointer to first block in heap */ - Heap_Block *permanent_null; /* always NULL pointer */ - Heap_Block *last; /* pointer to last block in heap */ - unsigned32 page_size; /* allocation unit */ - unsigned32 reserved; -} Heap_Control; - -/* - * _Heap_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_heap record to manage the - * contiguous heap of size bytes which starts at starting_address. - * Blocks of memory are allocated from the heap in multiples of - * page_size byte units. - */ - -unsigned32 _Heap_Initialize( - Heap_Control *the_heap, - void *starting_address, - unsigned32 size, - unsigned32 page_size -); - -/* - * _Heap_Extend - * - * DESCRIPTION: - * - * This routine grows the_heap memory area using the size bytes which - * begin at starting_address. - */ - -Heap_Extend_status _Heap_Extend( - Heap_Control *the_heap, - void *starting_address, - unsigned32 size, - unsigned32 *amount_extended -); - -/* - * _Heap_Allocate - * - * DESCRIPTION: - * - * DESCRIPTION: - * - * This function attempts to allocate a block of size bytes from - * the_heap. If insufficient memory is free in the_heap to allocate - * a block of the requested size, then NULL is returned. - */ - -void *_Heap_Allocate( - Heap_Control *the_heap, - unsigned32 size -); - -/* - * _Heap_Size_of_user_area - * - * DESCRIPTION: - * - * This kernel routine sets size to the size of the given heap block. - * It returns TRUE if the starting_address is in the heap, and FALSE - * otherwise. - */ - -boolean _Heap_Size_of_user_area( - Heap_Control *the_heap, - void *starting_address, - unsigned32 *size -); - -/* - * _Heap_Free - * - * DESCRIPTION: - * - * This routine returns the block of memory which begins - * at starting_address to the_heap. Any coalescing which is - * possible with the freeing of this routine is performed. - */ - -boolean _Heap_Free( - Heap_Control *the_heap, - void *start_address -); - -/* - * _Heap_Walk - * - * DESCRIPTION: - * - * This routine walks the heap to verify its integrity. - */ - -void _Heap_Walk( - Heap_Control *the_heap, - int source, - boolean do_dump -); - -/* - * _Heap_Head - * - * DESCRIPTION: - * - * This function returns the head of the specified heap. - */ - -STATIC INLINE Heap_Block *_Heap_Head ( - Heap_Control *the_heap -); - -/* - * _Heap_Tail - * - * DESCRIPTION: - * - * This function returns the tail of the specified heap. - */ - -STATIC INLINE Heap_Block *_Heap_Tail ( - Heap_Control *the_heap -); - -/* - * _Heap_Previous_block - * - * DESCRIPTION: - * - * This function returns the address of the block which physically - * precedes the_block in memory. - */ - -STATIC INLINE Heap_Block *_Heap_Previous_block ( - Heap_Block *the_block -); - -/* - * _Heap_Next_block - * - * DESCRIPTION: - * - * This function returns the address of the block which physically - * follows the_block in memory. - */ - -STATIC INLINE Heap_Block *_Heap_Next_block ( - Heap_Block *the_block -); - -/* - * _Heap_Block_at - * - * DESCRIPTION: - * - * This function calculates and returns a block's location (address) - * in the heap based upad a base address and an offset. - */ - -STATIC INLINE Heap_Block *_Heap_Block_at( - void *base, - unsigned32 offset -); - -/* - * _Heap_Is_previous_block_free - * - * DESCRIPTION: - * - * This function returns TRUE if the previous block of the_block - * is free, and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_previous_block_free ( - Heap_Block *the_block -); - -/* - * _Heap_Is_block_free - * - * DESCRIPTION: - * - * This function returns TRUE if the block is free, and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_block_free ( - Heap_Block *the_block -); - -/* - * _Heap_Is_block_used - * - * DESCRIPTION: - * - * This function returns TRUE if the block is currently allocated, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_block_used ( - Heap_Block *the_block -); - -/* - * _Heap_Block_size - * - * DESCRIPTION: - * - * This function returns the size of the_block in bytes. - */ - -STATIC INLINE unsigned32 _Heap_Block_size ( - Heap_Block *the_block -); - -/* - * _Heap_Start_of_user_area - * - * DESCRIPTION: - * - * This function returns the starting address of the portion of the block - * which the user may access. - */ - -STATIC INLINE void *_Heap_Start_of_user_area ( - Heap_Block *the_block -); - -/* - * _Heap_Is_block_in - * - * DESCRIPTION: - * - * This function returns TRUE if the_block is within the memory area - * managed by the_heap, and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_block_in ( - Heap_Control *the_heap, - Heap_Block *the_block -); - - -/* - * _Heap_Is_page_size_valid - * - * DESCRIPTION: - * - * This function validates a specified heap page size. If the page size - * is 0 or if lies outside a page size alignment boundary it is invalid - * and FALSE is returned. Otherwise, the page size is valid and TRUE is - * returned. - */ - -STATIC INLINE boolean _Heap_Is_page_size_valid( - unsigned32 page_size -); - -/* - * _Heap_Build_flag - * - * DESCRIPTION: - * - * This function returns the block flag composed of size and in_use_flag. - * The flag returned is suitable for use as a back or front flag in a - * heap block. - */ - -STATIC INLINE unsigned32 _Heap_Build_flag ( - unsigned32 size, - unsigned32 in_use_flag -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/isr.h b/c/src/exec/score/headers/isr.h deleted file mode 100644 index 77c3f8663e..0000000000 --- a/c/src/exec/score/headers/isr.h +++ /dev/null @@ -1,239 +0,0 @@ -/* isr.h - * - * This include file contains all the constants and structures associated - * with the management of processor interrupt levels. This handler - * supports interrupt critical sections, vectoring of user interrupt - * handlers, nesting of interrupts, and manipulating interrupt levels. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ISR_h -#define __RTEMS_ISR_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage - * the interrupt level portion of the status register. - */ - -typedef unsigned32 ISR_Level; - -/* - * The following type defines the control block used to manage - * the vectors. - */ - -typedef unsigned32 rtems_vector_number; - -/* - * Return type for ISR Handler - */ - -typedef void rtems_isr; - -/* - * Pointer to an ISR Handler - */ - -typedef rtems_isr ( *rtems_isr_entry )( - rtems_vector_number - ); -/* - * The following is TRUE if signals have been sent to the currently - * executing thread by an ISR handler. - */ - -EXTERN boolean _ISR_Signals_to_thread_executing; - -/* - * The following contains the interrupt service routine nest level. - * When this variable is zero, a thread is executing. - */ - -EXTERN unsigned32 _ISR_Nest_level; - -/* - * The following declares the RTEMS Vector Table. Application - * interrupt service routines are vectored by RTEMS via this table. - */ - -EXTERN rtems_isr_entry _ISR_Vector_table[CPU_INTERRUPT_NUMBER_OF_VECTORS]; - -/* - * _ISR_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _ISR_Handler_initialization ( void ); - -/* - * _ISR_Disable - * - * DESCRIPTION: - * - * This routine disables all interrupts so that a critical section - * of code can be executing without being interrupted. Upon return, - * the argument _level will contain the previous interrupt mask level. - */ - -#define _ISR_Disable( _level ) \ - _CPU_ISR_Disable( _level ) - -/* - * _ISR_Enable - * - * DESCRIPTION: - * - * This routine enables interrupts to the previous interrupt mask - * LEVEL. It is used at the end of a critical section of code to - * enable interrupts so they can be processed again. - */ - -#define _ISR_Enable( _level ) \ - _CPU_ISR_Enable( _level ) - -/* - * _ISR_Flash - * - * DESCRIPTION: - * - * This routine temporarily enables interrupts to the previous - * interrupt mask level and then disables all interrupts so that - * the caller can continue into the second part of a critical - * section. This routine is used to temporarily enable interrupts - * during a long critical section. It is used in long sections of - * critical code when a point is reached at which interrupts can - * be temporarily enabled. Deciding where to flash interrupts - * in a long critical section is often difficult and the point - * must be selected with care to insure that the critical section - * properly protects itself. - */ - -#define _ISR_Flash( _level ) \ - _CPU_ISR_Flash( _level ) - -/* - * _ISR_Is_in_progress - * - * DESCRIPTION: - * - * This function returns TRUE if the processor is currently servicing - * and interrupt and FALSE otherwise. A return value of TRUE indicates - * that the caller is an interrupt service routine, NOT a thread. The - * directives available to an interrupt service routine are restricted. - */ - -STATIC INLINE boolean _ISR_Is_in_progress( void ); - -/* - * _ISR_Install_vector - * - * DESCRIPTION: - * - * This routine installs new_handler as the interrupt service routine - * for the specified vector. The previous interrupt service routine is - * returned as old_handler. - */ - -#define _ISR_Install_vector( _vector, _new_handler, _old_handler ) \ - _CPU_ISR_install_vector( _vector, _new_handler, _old_handler ) - -/* - * _ISR_Set_level - * - * DESCRIPTION: - * - * This routine sets the current interrupt level to that specified - * by new_level. The new interrupt level is effective when the - * routine exits. - */ - -#define _ISR_Set_level( _new_level ) \ - _CPU_ISR_Set_level( _new_level ) - -/* - * _ISR_Is_vector_number_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the vector is a valid vector number - * for this processor and FALSE otherwise. - */ - -STATIC INLINE boolean _ISR_Is_vector_number_valid ( - rtems_vector_number vector -); - -/* - * _ISR_Is_valid_user_handler - * - * DESCRIPTION: - * - * This function returns TRUE if handler is the entry point of a valid - * use interrupt service routine and FALSE otherwise. - */ - -STATIC INLINE boolean _ISR_Is_valid_user_handler ( - void *handler -); - -/* - * _ISR_Handler - * - * DESCRIPTION: - * - * This routine is the RTEMS interrupt dispatcher. ALL interrupts - * are vectored to this routine so that minimal context can be saved - * and setup performed before the application's high-level language - * interrupt service routine is invoked. After the application's - * interrupt service routine returns control to this routine, it - * will determine if a thread dispatch is necessary. If so, it will - * insure that the necessary thread scheduling operations are - * performed when the outermost interrupt service routine exits. - * - * NOTE: Implemented in assembly language. - */ - -void _ISR_Handler( void ); - -/* - * _ISR_Dispatch - * - * DESCRIPTION: - * - * This routine provides a wrapper so that the routine - * _Thread_Dispatch can be invoked when a reschedule is necessary - * at the end of the outermost interrupt service routine. This - * wrapper is necessary to establish the processor context needed - * by _Thread_Dispatch and to save the processor context which is - * corrupted by _Thread_Dispatch. This context typically consists - * of registers which are not preserved across routine invocations. - * - * NOTE: Implemented in assembly language. - */ - -void _ISR_Dispatch( void ); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/mpci.h b/c/src/exec/score/headers/mpci.h deleted file mode 100644 index ca06dd243b..0000000000 --- a/c/src/exec/score/headers/mpci.h +++ /dev/null @@ -1,171 +0,0 @@ -/* mpci.h - * - * This include file contains all the constants and structures associated - * with the MPCI layer. It provides mechanisms to utilize packets. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MPCI_h -#define __RTEMS_MPCI_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include - -/* - * The following defines the node number used when a broadcast is desired. - */ - -#define MPCI_ALL_NODES 0 - -/* - * For packets associated with requests that don't already have a timeout, - * use the one specified by this MPCI driver. The value specified by - * the MPCI driver sets an upper limit on how long a remote request - * should take to complete. - */ - -#define MPCI_DEFAULT_TIMEOUT 0xFFFFFFFF - -/* - * _MPCI_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -void _MPCI_Handler_initialization ( void ); - -/* - * _MPCI_Initialization - * - * DESCRIPTION: - * - * This routine initializes the MPCI driver by - * invoking the user provided MPCI initialization callout. - */ - -void _MPCI_Initialization ( void ); - -/* - * _MPCI_Get_packet - * - * DESCRIPTION: - * - * This function obtains a packet by invoking the user provided - * MPCI get packet callout. - */ - -rtems_packet_prefix *_MPCI_Get_packet ( void ); - -/* - * _MPCI_Return_packet - * - * DESCRIPTION: - * - * This routine returns a packet by invoking the user provided - * MPCI return packet callout. - */ - -void _MPCI_Return_packet ( - rtems_packet_prefix *the_packet -); - -/* - * _MPCI_Send_process_packet - * - * DESCRIPTION: - * - * This routine sends a process packet by invoking the user provided - * MPCI send callout. - */ - -void _MPCI_Send_process_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -); - -/* - * _MPCI_Send_request_packet - * - * DESCRIPTION: - * - * This routine sends a request packet by invoking the user provided - * MPCI send callout. - */ - -rtems_status_code _MPCI_Send_request_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet, - States_Control extra_state -); - -/* - * _MPCI_Send_response_packet - * - * DESCRIPTION: - * - * This routine sends a response packet by invoking the user provided - * MPCI send callout. - */ - -void _MPCI_Send_response_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -); - -/* - * _MPCI_Receive_packet - * - * DESCRIPTION: - * - * This routine receives a packet by invoking the user provided - * MPCI receive callout. - */ - -rtems_packet_prefix *_MPCI_Receive_packet ( void ); - -/* - * _MPCI_Process_response - * - * DESCRIPTION: - * - * This routine obtains a packet by invoking the user provided - * MPCI get packet callout. - */ - -Thread_Control *_MPCI_Process_response ( - rtems_packet_prefix *the_packet -); - -/* - * The following thread queue is used to maintain a list of tasks - * which currently have outstanding remote requests. - */ - -EXTERN Thread_queue_Control _MPCI_Remote_blocked_threads; - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/mppkt.h b/c/src/exec/score/headers/mppkt.h deleted file mode 100644 index e0cf6b1967..0000000000 --- a/c/src/exec/score/headers/mppkt.h +++ /dev/null @@ -1,123 +0,0 @@ -/* mppkt.h - * - * This package is the specification for the Packet Handler. - * This handler defines the basic RTEMS packet and provides - * mechanisms to utilize packets based on this prefix. - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MP_PACKET_h -#define __RTEMS_MP_PACKET_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type defines the packet classes - * supported by RTEMS. - * - * NOTE: In general, each class corresponds to a manager - * which supports global operations. Each manager - * defines the set of supported operations. - */ - -typedef enum { - RTEMS_MP_PACKET_INTERNAL_THREADS = 0, - RTEMS_MP_PACKET_TASKS = 1, - RTEMS_MP_PACKET_MESSAGE_QUEUE = 2, - RTEMS_MP_PACKET_SEMAPHORE = 3, - RTEMS_MP_PACKET_PARTITION = 4, - RTEMS_MP_PACKET_REGION = 5, - RTEMS_MP_PACKET_EVENT = 6, - RTEMS_MP_PACKET_SIGNAL = 7 -} rtems_mp_packet_classes; - -#define MP_PACKET_CLASSES_FIRST RTEMS_MP_PACKET_INTERNAL_THREADS -#define MP_PACKET_CLASSES_LAST RTEMS_MP_PACKET_SIGNAL - -/* - * The following record contains the prefix for every packet - * passed between RTEMS nodes. - * - * NOTE: This structure is padded to insure that anything - * following it is on a 16 byte boundary. This is - * the most stringent structure alignment rule - * the RTEMS project has encountered yet (i960CA). - */ - -typedef struct { - rtems_mp_packet_classes the_class; - Objects_Id id; - Objects_Id source_tid; - rtems_task_priority source_priority; - rtems_status_code return_code; - unsigned32 length; - unsigned32 to_convert; - rtems_interval timeout; -} rtems_packet_prefix; - -/* - * An MPCI must support packets of at least this size. - */ - -#define RTEMS_MINIMUM_PACKET_SIZE 64 - -/* - * The following constant defines the number of unsigned32's - * in a packet which must be converted to native format in a - * heterogeneous system. In packets longer than - * RTEMS_MINIMUN_HETERO_CONVERSION unsigned32's, some of the "extra" data - * may a user message buffer which is not automatically endian swapped. - */ - -#define RTEMS_MINIMUN_HETERO_CONVERSION ( sizeof( rtems_packet_prefix ) / 4 ) - -/* - * _Mp_packet_Is_valid_packet_class - * - * DESCRIPTION: - * - * This function returns TRUE if the the_packet_class is valid, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Mp_packet_Is_valid_packet_class ( - rtems_mp_packet_classes the_packet_class -); - -/* - * _Mp_packet_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the the_packet_class is null, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Mp_packet_Is_null ( - rtems_packet_prefix *the_packet -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/object.h b/c/src/exec/score/headers/object.h deleted file mode 100644 index 50eede9fd7..0000000000 --- a/c/src/exec/score/headers/object.h +++ /dev/null @@ -1,380 +0,0 @@ -/* object.h - * - * This include file contains all the constants and structures associated - * with the RTEMS Object Handler. This Handler provides mechanisms which - * can be used to initialize and manipulate all RTEMS objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_OBJECTS_h -#define __RTEMS_OBJECTS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the control block used to manage - * object names. - */ - -typedef unsigned32 Objects_Name; - -/* - * The following type defines the control block used to manage - * object IDs. - */ - -typedef unsigned32 Objects_Id; - -/* - * This enumerated type lists the locations which may be returned - * by _Objects_Get. These codes indicate the success of locating - * an object with the specified ID. - */ - -typedef enum { - OBJECTS_LOCAL = 0, /* object is local */ - OBJECTS_REMOTE = 1, /* object is remote */ - OBJECTS_ERROR = 2 /* id was invalid */ -} Objects_Locations; - -/* - * The following defines the Object Control Block used to manage - * each object local to this node. - */ - -typedef struct { - Chain_Node Node; - Objects_Id id; -} Objects_Control; - -/* - * The following defines the structure for the information used to - * manage each class of objects. - */ - -typedef struct { - Objects_Id minimum_id; /* minimum valid id of this type */ - Objects_Id maximum_id; /* maximum valid id of this type */ - unsigned32 maximum; /* maximum number of objects */ - Objects_Control **local_table; /* table of local object pointers */ - Objects_Name *name_table; /* table of local object names */ - Chain_Control *global_table; /* pointer to global table */ - Chain_Control Inactive; /* chain of inactive ctl blocks */ -} Objects_Information; - -/* - * The following defines the data storage which contains the - * node number of the local node. - */ - -EXTERN unsigned32 _Objects_Local_node; - -/* - * The following defines the constant which may be used - * with _Objects_Get to manipulate the calling task. - * - */ - -#define OBJECTS_ID_OF_SELF 0 - -/* - * The following define the constants which may be used in name searches. - */ - -#define RTEMS_SEARCH_ALL_NODES 0 -#define RTEMS_SEARCH_OTHER_NODES 0x7FFFFFFE -#define RTEMS_SEARCH_LOCAL_NODE 0x7FFFFFFF -#define RTEMS_WHO_AM_I 0 - -/* - * _Objects_Handler_initialization - * - * DESCRIPTION: - * - * This function performs the initialization necessary for this handler. - * - */ - -void _Objects_Handler_initialization( - unsigned32 node, - unsigned32 maximum_global_objects -); - -/* - * _Objects_Initialize_information - * - * DESCRIPTION: - * - * This function initializes an object class information record. - * SUPPORTS_GLOBAL is TRUE if the object class supports global - * objects, and FALSE otherwise. Maximum indicates the number - * of objects required in this class and size indicates the size - * in bytes of each control block for this object class. - * - */ - -void _Objects_Initialize_information ( - Objects_Information *information, - boolean supports_global, - unsigned32 maximum, - unsigned32 size -); - -/* - * _Objects_Name_to_id - * - * DESCRIPTION: - * - * This function implements the common portion of the object - * identification directives. This directive returns the object - * id associated with name. If more than one object of this class - * is named name, then the object to which the id belongs is - * arbitrary. Node indicates the extent of the search for the - * id of the object named name. If the object class supports global - * objects, then the search can be limited to a particular node - * or allowed to encompass all nodes. - * - */ - -rtems_status_code _Objects_Name_to_id( - Objects_Information *information, - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * _Objects_Get - * - * DESCRIPTION: - * - * This function maps object ids to object control blocks. - * If id corresponds to a local object, then it returns - * the_object control pointer which maps to id and location - * is set to OBJECTS_LOCAL. If the object class supports global - * objects and the object id is global and resides on a remote - * node, then location is set to OBJECTS_REMOTE, and the_object - * is undefined. Otherwise, location is set to OBJECTS_ERROR - * and the_object is undefined. - * - */ - -Objects_Control *_Objects_Get ( - Objects_Information *information, - Objects_Id id, - Objects_Locations *location -); - -/* - * _Objects_Is_name_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the name is valid, and FALSE otherwise. - */ - -STATIC INLINE boolean _Objects_Is_name_valid ( - Objects_Name name -); - -/* - * rtems_build_name - * - * DESCRIPTION: - * - * This function returns an object name composed of the four characters - * C1, C2, C3, and C4. - * - * NOTE: - * - * This must be implemented as a macro for use in Configuration Tables. - * - */ - -#define rtems_build_name( _C1, _C2, _C3, _C4 ) \ - ( (_C1) << 24 | (_C2) << 16 | (_C3) << 8 | (_C4) ) - -/* - * rtems_name_to_characters - * - * DESCRIPTION: - * - * This function breaks the object name into the four component - * characters C1, C2, C3, and C4. - * - */ - -STATIC INLINE void rtems_name_to_characters( - Objects_Name name, - char *c1, - char *c2, - char *c3, - char *c4 -); - -/* - * _Objects_Build_id - * - * DESCRIPTION: - * - * This function builds an object's id from the processor node and index - * values specified. - * - */ - -STATIC INLINE Objects_Id _Objects_Build_id( - unsigned32 node, - unsigned32 index -); - -/* - * rtems_get_node - * - * DESCRIPTION: - * - * This function returns the node portion of the ID. - * - */ - -STATIC INLINE unsigned32 rtems_get_node( - Objects_Id id -); - -/* - * rtems_get_index - * - * DESCRIPTION: - * - * This function returns the index portion of the ID. - * - */ - -STATIC INLINE unsigned32 rtems_get_index( - Objects_Id id -); - -/* - * _Objects_Is_local_node - * - * DESCRIPTION: - * - * This function returns TRUE if the node is of the local object, and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Objects_Is_local_node( - unsigned32 node -); - -/* - * _Objects_Is_local_id - * - * DESCRIPTION: - * - * This function returns TRUE if the id is of a local object, and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Objects_Is_local_id( - Objects_Id id -); - -/* - * _Objects_Are_ids_equal - * - * DESCRIPTION: - * - * This function returns TRUE if left and right are equal, - * and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Objects_Are_ids_equal( - Objects_Id left, - Objects_Id right -); - -/* - * _Objects_Allocate - * - * DESCRIPTION: - * - * This function allocates a object control block from - * the inactive chain of free object control blocks. - * - */ - -STATIC INLINE Objects_Control *_Objects_Allocate( - Objects_Information *information -); - -/* - * _Objects_Free - * - * DESCRIPTION: - * - * This function frees a object control block to the - * inactive chain of free object control blocks. - * - */ - -STATIC INLINE void _Objects_Free( - Objects_Information *information, - Objects_Control *the_object -); - -/* - * _Objects_Open - * - * DESCRIPTION: - * - * This function places the_object control pointer and object name - * in the Local Pointer and Local Name Tables, respectively. - * - */ - -STATIC INLINE void _Objects_Open( - Objects_Information *information, - Objects_Control *the_object, - Objects_Name name -); - -/* - * _Objects_Close - * - * DESCRIPTION: - * - * This function removes the_object control pointer and object name - * in the Local Pointer and Local Name Tables. - * - */ - -STATIC INLINE void _Objects_Close( - Objects_Information *information, - Objects_Control *the_object -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/objectmp.h b/c/src/exec/score/headers/objectmp.h deleted file mode 100644 index 0d29fda753..0000000000 --- a/c/src/exec/score/headers/objectmp.h +++ /dev/null @@ -1,165 +0,0 @@ -/* objectmp.h - * - * This include file contains all the constants and structures associated - * with the manipulation of Global RTEMS Objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_OBJECTS_MP_h -#define __RTEMS_OBJECTS_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This defines the Global Object Control Block used to manage - * objects resident on other nodes. - */ - -typedef struct { - Objects_Control Object; - Objects_Name name; -} Objects_MP_Control; - -/* - * _Objects_MP_Handler_initialization - * - * DESCRIPTION: - * - * This routine intializes the inactive global object chain - * based on the maximum number of global objects configured. - */ - -void _Objects_MP_Handler_initialization ( - unsigned32 maximum_global_objects -); - -/* - * _Objects_MP_Allocate_global_object - * - * DESCRIPTION: - * - * This function allocates a Global Object control block. - */ - -STATIC INLINE Objects_MP_Control *_Objects_MP_Allocate_global_object ( - void -); - -/* - * _Objects_MP_Free_global_object - * - * DESCRIPTION: - * - * This routine deallocates a Global Object control block. - */ - -STATIC INLINE void _Objects_MP_Free_global_object ( - Objects_MP_Control *the_object -); - -/* - * _Objects_MP_Is_null_global_object - * - * DESCRIPTION: - * - * This function returns whether the global object is NULL or not. - */ - -STATIC INLINE boolean _Objects_MP_Is_null_global_object ( - Objects_MP_Control *the_object -); - -/* - * _Objects_MP_Open - * - * DESCRIPTION: - * - * This routine allocates a global object control block - * and places it in the specified information table. If the - * allocation fails, then is_fatal_error determines the - * error processing actions taken. - */ - -boolean _Objects_MP_Open ( - Objects_Information *information, - Objects_Name the_name, - Objects_Id the_id, - boolean is_fatal_error -); - -/* - * _Objects_MP_Close - * - * DESCRIPTION: - * - * This routine removes a global object from the specified - * information table and deallocates the global object control block. - */ - -void _Objects_MP_Close ( - Objects_Information *information, - Objects_Id the_id -); - -/* - * _Objects_MP_Global_name_search - * - * DESCRIPTION: - * - * This routine looks for the object with the_name in the global - * object tables indicated by information. It returns the ID of the - * object with that name if one is found. - */ - -rtems_status_code _Objects_MP_Global_name_search ( - Objects_Information *information, - Objects_Name the_name, - unsigned32 nodes_to_search, - Objects_Id *the_id -); - -/* - * _Objects_MP_Is_remote - * - * DESCRIPTION: - * - * This function searches the Global Object Table managed - * by information for the object indicated by ID. If the object - * is found, then location is set to objects_remote, otherwise - * location is set to objects_error. In both cases, the_object - * is undefined. - */ - -void _Objects_MP_Is_remote ( - Objects_Information *information, - Objects_Id the_id, - Objects_Locations *location, - Objects_Control **the_object -); - -/* - * The following chain header is used to manage the set of - * inactive global object control blocks. - */ - -EXTERN Chain_Control _Objects_MP_Inactive_global_objects; - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/priority.h b/c/src/exec/score/headers/priority.h deleted file mode 100644 index 823611b080..0000000000 --- a/c/src/exec/score/headers/priority.h +++ /dev/null @@ -1,195 +0,0 @@ -/* priority.h - * - * This include file contains all thread priority manipulation routines. - * This Handler provides mechanisms which can be used to - * initialize and manipulate RTEMS priorities. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_PRIORITY_h -#define __RTEMS_PRIORITY_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage - * thread priorities. - * - * NOTE: Priority 0 is reserved for internal threads only. - */ - -typedef unsigned32 rtems_task_priority; - -#define RTEMS_MINIMUM_PRIORITY 1 /* highest thread priority */ -#define RTEMS_MAXIMUM_PRIORITY 255 /* lowest thread priority */ - -/* - * The following record defines the information associated with - * each thread to manage its interaction with the priority bit maps. - */ - -typedef struct { - Priority_Bit_map_control *minor; /* addr of minor bit map slot */ - Priority_Bit_map_control ready_major; /* priority bit map ready mask */ - Priority_Bit_map_control ready_minor; /* priority bit map ready mask */ - Priority_Bit_map_control block_major; /* priority bit map block mask */ - Priority_Bit_map_control block_minor; /* priority bit map block mask */ -} Priority_Information; - -/* - * The following data items are the priority bit map. - * Each of the sixteen bits used in the _Priority_Major_bit_map is - * associated with one of the sixteen entries in the _Priority_Bit_map. - * Each bit in the _Priority_Bit_map indicates whether or not there are - * threads ready at a particular priority. The mapping of - * individual priority levels to particular bits is processor - * dependent as is the value of each bit used to indicate that - * threads are ready at that priority. - */ - -EXTERN volatile Priority_Bit_map_control _Priority_Major_bit_map; -EXTERN Priority_Bit_map_control _Priority_Bit_map[16] CPU_STRUCTURE_ALIGNMENT; - -/* - * The following constants are useful when manipulating priority. - */ - -#define RTEMS_CURRENT_PRIORITY 0 /* obtain current priority */ - -/* - * The definition of the Priority_Bit_map_control type is CPU dependent. - * - */ - -/* - * _Priority_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _Priority_Handler_initialization( void ); - -/* - * _Priority_Is_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the_priority if valid for a - * user task, and FALSE otherwise. - */ - -STATIC INLINE boolean _Priority_Is_valid ( - rtems_task_priority the_priority -); - -/* - * _Priority_Major - * - * DESCRIPTION: - * - * This function returns the major portion of the_priority. - */ - -STATIC INLINE unsigned32 _Priority_Major ( - rtems_task_priority the_priority -); - -/* - * _Priority_Minor - * - * DESCRIPTION: - * - * This function returns the minor portion of the_priority. - */ - -STATIC INLINE unsigned32 _Priority_Minor ( - rtems_task_priority the_priority -); - -/* - * _Priority_Add_to_bit_map - * - * DESCRIPTION: - * - * This routine uses the_priority_map to update the priority - * bit maps to indicate that a thread has been readied. - */ - -STATIC INLINE void _Priority_Add_to_bit_map ( - Priority_Information *the_priority_map -); - -/* - * _Priority_Remove_from_bit_map - * - * DESCRIPTION: - * - * This routine uses the_priority_map to update the priority - * bit maps to indicate that a thread has been removed from the - * ready state. - */ - -STATIC INLINE void _Priority_Remove_from_bit_map ( - Priority_Information *the_priority_map -); - -/* - * _Priority_Get_highest - * - * DESCRIPTION: - * - * This function returns the priority of the highest priority - * ready thread. - */ - -STATIC INLINE rtems_task_priority _Priority_Get_highest( void ); - -/* - * _Priority_Initialize_information - * - * DESCRIPTION: - * - * This routine initializes the_priority_map so that it - * contains the information necessary to manage a thread - * at new_priority. - */ - -STATIC INLINE void _Priority_Initialize_information( - Priority_Information *the_priority_map, - rtems_task_priority new_priority -); - -/* - * _Priority_Is_group_empty - * - * DESCRIPTION: - * - * This function returns TRUE if the priority GROUP is empty, and - * FALSE otherwise. - */ - -STATIC INLINE boolean _Priority_Is_group_empty ( - rtems_task_priority the_priority -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/stack.h b/c/src/exec/score/headers/stack.h deleted file mode 100644 index a0fce1ef04..0000000000 --- a/c/src/exec/score/headers/stack.h +++ /dev/null @@ -1,95 +0,0 @@ -/* stack.h - * - * This include file contains all information about the thread - * Stack Handler. This Handler provides mechanisms which can be used to - * initialize and utilize stacks. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_STACK_h -#define __RTEMS_STACK_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following constant defines the minimum stack size which every - * thread must exceed. - */ - -#define RTEMS_MINIMUM_STACK_SIZE CPU_STACK_MINIMUM_SIZE - -/* - * The following defines the control block used to manage each stack. - */ - -typedef struct { - unsigned32 size; /* stack size */ - void *area; /* low memory addr of stack */ -} Stack_Control; - -/* - * _Stack_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_stack record to indicate that - * size bytes of memory starting at starting_address have been - * reserved for a stack. - */ - -STATIC INLINE void _Stack_Initialize ( - Stack_Control *the_stack, - void *starting_address, - unsigned32 size -); - -/* - * _Stack_Is_enough - * - * DESCRIPTION: - * - * This function returns TRUE if size bytes is enough memory for - * a valid stack area on this processor, and FALSE otherwise. - */ - -STATIC INLINE boolean _Stack_Is_enough ( - unsigned32 size -); - -/* - * _Stack_Adjust_size - * - * DESCRIPTION: - * - * This function increases the stack size to insure that the thread - * has the desired amount of stack space after the initial stack - * pointer is determined based on alignment restrictions. - * - * NOTE: - * - * The amount of adjustment for alignment is CPU dependent. - */ - -STATIC INLINE unsigned32 _Stack_Adjust_size ( - unsigned32 size -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/states.h b/c/src/exec/score/headers/states.h deleted file mode 100644 index 56f67ecc49..0000000000 --- a/c/src/exec/score/headers/states.h +++ /dev/null @@ -1,337 +0,0 @@ -/* states.h - * - * This include file contains all RTEMS state information. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_STATES_h -#define __RTEMS_STATES_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage a - * thread's state. - */ - -typedef unsigned32 States_Control; - -/* - * The following constants define the individual states which may be - * be used to compose and manipulate a thread's state. - */ - -#define STATES_ALL_SET 0xffff /* all states */ -#define STATES_READY 0x0000 /* ready to run */ -#define STATES_DORMANT 0x0001 /* created but not started */ -#define STATES_SUSPENDED 0x0002 /* waiting to be resumed */ -#define STATES_TRANSIENT 0x0004 /* thread in transition */ -#define STATES_DELAYING 0x0008 /* wait for timeout */ -#define STATES_WAITING_FOR_BUFFER 0x0010 /* wait for partition buffer */ -#define STATES_WAITING_FOR_SEGMENT 0x0020 /* wait for region segment */ -#define STATES_WAITING_FOR_MESSAGE 0x0040 /* wait for message */ -#define STATES_WAITING_FOR_EVENT 0x0080 /* wait for event */ -#define STATES_WAITING_FOR_SEMAPHORE 0x0100 /* wait for semaphore */ -#define STATES_WAITING_FOR_TIME 0x0200 /* wait for specific TOD */ -#define STATES_WAITING_FOR_RPC_REPLY 0x0400 /* wait for rpc reply */ -#define STATES_WAITING_FOR_PERIOD 0x0800 /* rate monotonic delay */ - -#define STATES_LOCALLY_BLOCKED ( STATES_WAITING_FOR_BUFFER | \ - STATES_WAITING_FOR_SEGMENT | \ - STATES_WAITING_FOR_MESSAGE | \ - STATES_WAITING_FOR_SEMAPHORE ) - -#define STATES_WAITING_ON_THREAD_QUEUE \ - ( STATES_LOCALLY_BLOCKED | \ - STATES_WAITING_FOR_RPC_REPLY ) - -#define STATES_BLOCKED ( STATES_DELAYING | \ - STATES_WAITING_FOR_TIME | \ - STATES_WAITING_FOR_PERIOD | \ - STATES_WAITING_FOR_EVENT | \ - STATES_WAITING_ON_THREAD_QUEUE ) - -/* - * _States_Set - * - * DESCRIPTION: - * - * This function sets the given states_to_set into the current_state - * passed in. The result is returned to the user in current_state. - */ - -STATIC INLINE States_Control _States_Set ( - States_Control states_to_set, - States_Control current_state -); - -/* - * _States_Clear - * - * DESCRIPTION: - * - * This function clears the given states_to_clear into the current_state - * passed in. The result is returned to the user in current_state. - */ - -STATIC INLINE States_Control _States_Clear ( - States_Control states_to_clear, - States_Control current_state -); - -/* - * _States_Is_ready - * - * DESCRIPTION: - * - * This function returns TRUE if the_states indicates that the - * state is READY, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_ready ( - States_Control the_states -); - -/* - * _States_Is_only_dormant - * - * DESCRIPTION: - * - * This function returns TRUE if the DORMANT state is the ONLY state - * set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_only_dormant ( - States_Control the_states -); - -/* - * _States_Is_dormant - * - * DESCRIPTION: - * - * This function returns TRUE if the DORMANT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_dormant ( - States_Control the_states -); - -/* - * _States_Is_suspended - * - * DESCRIPTION: - * - * This function returns TRUE if the SUSPENDED state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_suspended ( - States_Control the_states -); - -/* - * _States_Is_Transient - * - * DESCRIPTION: - * - * This function returns TRUE if the TRANSIENT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_transient ( - States_Control the_states -); - -/* - * _States_Is_delaying - * - * DESCRIPTION: - * - * This function returns TRUE if the DELAYING state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_delaying ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_buffer - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_BUFFER state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_buffer ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_segment - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_SEGMENT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_segment ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_message - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_MESSAGE state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_message ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_event - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_EVENT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_event ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_semaphore - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_SEMAPHORE state - * is set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_semaphore ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_time - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_TIME state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_time ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_rpc_reply - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_TIME state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_rpc_reply ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_period - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_PERIOD state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_period ( - States_Control the_states -); - -/* - * _States_Is_locally_blocked - * - * DESCRIPTION: - * - * This function returns TRUE if one of the states which indicates - * that a task is blocked waiting for a local resource is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_locally_blocked ( - States_Control the_states -); - -/* - * _States_Is_waiting_on_thread_queue - * - * DESCRIPTION: - * - * This function returns TRUE if one of the states which indicates - * that a task is blocked waiting for a local resource is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_on_thread_queue ( - States_Control the_states -); - -/* - * _States_Is_blocked - * - * DESCRIPTION: - * - * This function returns TRUE if one of the states which indicates - * that a task is blocked is set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_blocked ( - States_Control the_states -); - -/* - * _States_Are_set - * - * DESCRIPTION: - * - * This function returns TRUE if any of the states in the mask - * are set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Are_set ( - States_Control the_states, - States_Control mask -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/sysstate.h b/c/src/exec/score/headers/sysstate.h deleted file mode 100644 index 511a26cefc..0000000000 --- a/c/src/exec/score/headers/sysstate.h +++ /dev/null @@ -1,143 +0,0 @@ -/* sysstates.h - * - * This include file contains information regarding the system state. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SYSTEM_STATE_h -#define __RTEMS_SYSTEM_STATE_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* types */ - -/* enumerated constants */ - -/* - * The following type defines the possible system states. - */ - -typedef enum { - SYSTEM_STATE_BEFORE_INITIALIZATION, /* start -> end of 1st init part */ - SYSTEM_STATE_BEFORE_MULTITASKING, /* end of 1st -> beginning of 2nd */ - SYSTEM_STATE_BEGIN_MULTITASKING, /* beginning of 2nd -> end of SYSI */ - SYSTEM_STATE_UP, /* normal operation */ - SYSTEM_STATE_FAILED /* fatal error occurred */ -} System_state_Codes; - -#define SYSTEM_STATE_CODES_FIRST SYSTEM_STATE_BEFORE_INITIALIZATION -#define SYSTEM_STATE_CODES_LAST SYSTEM_STATE_FAILED - -/* - * The following variable contains the current system state. - */ - -EXTERN System_state_Codes _System_state_Current; - -/* - * _System_state_Set - * - * DESCRIPTION: - * - * This routine sets the current system state to that specified by - * the called. - */ - -STATIC INLINE void _System_state_Set ( - System_state_Codes state -); - -/* - * _System_state_Get - * - * DESCRIPTION: - * - * This function returns the current system state. - */ - -STATIC INLINE System_state_Codes _System_state_Get ( void ); - -/* - * _System_state_Is_before_initialization - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "before initialization" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_before_initialization ( - System_state_Codes state -); - -/* - * _System_state_Is_before_multitasking - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "before multitasking" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_before_multitasking ( - System_state_Codes state -); - -/* - * _System_state_Is_begin_multitasking - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "begin multitasking" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_begin_multitasking ( - System_state_Codes state -); - -/* - * _System_state_Is_up - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "up" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_up ( - System_state_Codes state -); - -/* - * _System_state_Is_failed - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "failed" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_failed ( - System_state_Codes state -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/system.h b/c/src/exec/score/headers/system.h deleted file mode 100644 index 3ff3772d11..0000000000 --- a/c/src/exec/score/headers/system.h +++ /dev/null @@ -1,132 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the executive. This must be the first include file - * included in all internal RTEMS files. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SYSTEM_h -#define __RTEMS_SYSTEM_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following define the CPU Family and Model within the family - * - * NOTE: The string "REPLACE_THIS_WITH_USE_INLINE_OR_MACROS" is replaced - * with either "USE_INLINES" or "USE_MACROS" based upon the - * whether this target configuration uses the inline or - * macro implementations of the inlined RTEMS routines. - */ - - -#define REPLACE_THIS_WITH_USE_INLINE_OR_MACROS - -/* - * The following insures that all data is declared in the space - * of the Initialization Manager. It is referenced as "external" - * in every other file. - */ - -#ifdef INIT -#undef EXTERN -#define EXTERN -#else -#undef EXTERN -#define EXTERN extern -#endif - -/* - * The following (in conjunction with compiler arguments) are used - * to choose between the use of static inline functions and macro - * functions. The static inline implementation allows better - * type checking with no cost in code size or execution speed. - */ - -#ifdef USE_INLINES -#define STATIC static -#define INLINE __inline__ -#else -/* -#error Only the GNU C compiler is currently supported!!! -*/ -#define STATIC -#define INLINE -#endif - -/* - * Include a base set of files. - */ - -/* - * XXX: Eventually proc_ptr needs to disappear!!! - */ - -typedef void * proc_ptr; - -#include /* processor specific information */ -#include /* RTEMS status codes */ - -/* - * Define NULL - */ - -#ifndef NULL -#define NULL 0 /* NULL value */ -#endif - -/* - * Boolean constants - */ - -#if !defined( TRUE ) || (TRUE != 1) -#undef TRUE -#define TRUE (1) -#endif - -#if !defined( FALSE ) || (FALSE != 0) -#undef FALSE -#define FALSE (0) -#endif - -#define stringify( _x ) # _x - -/* - * The following is the extern for the RTEMS version string. - * The contents of this string are CPU specific. - */ - -extern const char _RTEMS_version[]; /* RTEMS version string */ -extern const char _Copyright_Notice[]; /* RTEMS copyright string */ - -/* - * The jump table of entry points into RTEMS directives. - */ - -#define NUMBER_OF_ENTRY_POINTS 79 -extern const void * _Entry_points[ NUMBER_OF_ENTRY_POINTS + 1 ]; - -/* - * The following defines the CPU dependent information table. - */ - -EXTERN rtems_cpu_table _CPU_Table; /* CPU dependent info */ - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/thread.h b/c/src/exec/score/headers/thread.h deleted file mode 100644 index de07a721ef..0000000000 --- a/c/src/exec/score/headers/thread.h +++ /dev/null @@ -1,721 +0,0 @@ -/* thread.h - * - * This include file contains all constants and structures associated - * with the thread control block. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_h -#define __RTEMS_THREAD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Notepads constants (indices into notepad array) - */ - -#define RTEMS_NOTEPAD_FIRST 0 /* lowest numbered notepad */ -#define RTEMS_NOTEPAD_0 0 /* notepad location 0 */ -#define RTEMS_NOTEPAD_1 1 /* notepad location 1 */ -#define RTEMS_NOTEPAD_2 2 /* notepad location 2 */ -#define RTEMS_NOTEPAD_3 3 /* notepad location 3 */ -#define RTEMS_NOTEPAD_4 4 /* notepad location 4 */ -#define RTEMS_NOTEPAD_5 5 /* notepad location 5 */ -#define RTEMS_NOTEPAD_6 6 /* notepad location 6 */ -#define RTEMS_NOTEPAD_7 7 /* notepad location 7 */ -#define RTEMS_NOTEPAD_8 8 /* notepad location 8 */ -#define RTEMS_NOTEPAD_9 9 /* notepad location 9 */ -#define RTEMS_NOTEPAD_10 10 /* notepad location 10 */ -#define RTEMS_NOTEPAD_11 11 /* notepad location 11 */ -#define RTEMS_NOTEPAD_12 12 /* notepad location 12 */ -#define RTEMS_NOTEPAD_13 13 /* notepad location 13 */ -#define RTEMS_NOTEPAD_14 14 /* notepad location 14 */ -#define RTEMS_NOTEPAD_15 15 /* notepad location 15 */ -#define RTEMS_NOTEPAD_LAST RTEMS_NOTEPAD_15 /* highest numbered notepad */ - -/* - * The following defines the "return type" of an RTEMS thread. - * - * NOTE: Keep both types for internal threads. - */ - -typedef void rtems_task; -typedef void Thread; - -/* - * The following defines the argument to an RTEMS thread. - */ - -typedef unsigned32 rtems_task_argument; -typedef unsigned32 Thread_Argument; - -/* - * The following defines the type for the entry point of an RTEMS thread. - */ - -typedef rtems_task ( *rtems_task_entry )( - rtems_task_argument - ); - -typedef Thread ( *Thread_Entry )( - Thread_Argument - ); - -/* - * The following structure contains the information which defines - * the starting state of a thread. - */ - -typedef struct { - Thread_Entry entry_point; /* starting thread address */ - unsigned32 initial_argument; /* initial argument */ - rtems_mode initial_modes; /* initial mode */ - rtems_task_priority initial_priority; /* initial priority */ - void *fp_context; /* initial FP context area address */ - Stack_Control Initial_stack; /* stack information */ -} Thread_Start_information; - -/* - * The following structure contains the information necessary to manage - * a thread which it is waiting for a resource. - */ - -typedef struct { - Objects_Id id; /* waiting on this object */ - rtems_option option_set; /* wait mode */ - union { - unsigned32 segment_size; /* size of segment requested */ - rtems_event_set event_condition; - } Extra; - void *return_argument; /* address of user return param */ - rtems_status_code return_code; /* status for thread awakened */ - Chain_Control Block2n; /* 2 - n priority blocked chain */ - Thread_queue_Control *queue; /* pointer to thread queue */ -} Thread_Wait_information; - -/* - * The following defines the control block used to manage - * each thread proxy. - * - * NOTE: It is critical that proxies and threads have identical - * memory images for the shared part. - */ - -typedef struct { - Objects_Control Object; - Objects_Name name; - States_Control current_state; - rtems_task_priority current_priority; - rtems_task_priority real_priority; - unsigned32 resource_count; - Thread_Wait_information Wait; - Watchdog_Control Timer; - rtems_packet_prefix *receive_packet; - /****************** end of common block ********************/ - Chain_Node Active; -} Thread_Proxy_control; - - -/* - * The following record defines the control block used - * to manage each thread. - * - * NOTE: It is critical that proxies and threads have identical - * memory images for the shared part. - */ - -typedef struct { - Objects_Control Object; - Objects_Name name; - States_Control current_state; - rtems_task_priority current_priority; - rtems_task_priority real_priority; - unsigned32 resource_count; - Thread_Wait_information Wait; - Watchdog_Control Timer; - rtems_packet_prefix *receive_packet; - /****************** end of common block ********************/ - Chain_Control *ready; - Priority_Information Priority_map; - rtems_event_set pending_events; - rtems_event_set events_out; - Thread_Start_information Start; - ASR_Information Signal; - rtems_mode current_modes; - rtems_attribute attribute_set; - Context_Control Registers; - void *fp_context; - unsigned32 Notepads[ 16 ]; - void *extension; -} Thread_Control; - -/* - * External API name for Thread_Control - */ - -typedef Thread_Control rtems_tcb; - -/* - * The following declares the dispatch critical section nesting - * counter which is used to prevent context switches at inopportune - * moments. - */ - -EXTERN unsigned32 _Thread_Dispatch_disable_level; - -/* - * The following data items are used to manage timeslicing. - */ - -EXTERN unsigned32 _Thread_Ticks_remaining_in_timeslice; -EXTERN unsigned32 _Thread_Ticks_per_timeslice; - -/* - * The following points to the array of FIFOs used to manage the - * set of ready threads. - */ - -EXTERN Chain_Control *_Thread_Ready_chain; - -/* - * The following points to the thread which is currently executing. - * This thread is implicitly manipulated by numerous directives. - */ - -EXTERN Thread_Control *_Thread_Executing; - -/* - * The following points to the highest priority ready thread - * in the system. Unless the current thread is RTEMS_NO_PREEMPT, - * then this thread will be context switched to when the next - * dispatch occurs. - */ - -EXTERN Thread_Control *_Thread_Heir; - -/* - * The following points to the thread whose floating point - * context is currently loaded. - */ - -EXTERN Thread_Control *_Thread_Allocated_fp; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Thread_Information; - -/* - * The following context area contains the context of the "thread" - * which invoked rtems_initialize_executive. This context is restored - * as the last action of the rtems_shutdown_executive directive. Thus - * control of the processor can be returned to the environment - * which initiated RTEMS. - */ - -EXTERN Context_Control _Thread_BSP_context; - -/* - * _Thread_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -void _Thread_Handler_initialization ( - unsigned32 maximum_tasks, - unsigned32 ticks_per_timeslice, - unsigned32 maximum_proxies -); - -/* - * _Thread_Start_multitasking - * - * DESCRIPTION: - * - * This routine initiates multitasking. It is invoked only as - * part of initialization and its invocation is the last act of - * the rtems_initialize_executive directive. - */ - -void _Thread_Start_multitasking ( - Thread_Control *system_thread, - Thread_Control *idle_thread -); - -/* - * _Thread_Stop_multitasking - * - * DESCRIPTION: - * - * This routine halts multitasking and returns control to - * the "thread" which initially invoked the rtems_initialize_executive - * directive. - */ - -STATIC INLINE void _Thread_Stop_multitasking( void ); - -/* - * _Thread_Dispatch_initialization - * - * DESCRIPTION: - * - * This routine initializes the thread dispatching subsystem. - */ - -STATIC INLINE void _Thread_Dispatch_initialization( void ); - -/* - * _Thread_Dispatch - * - * DESCRIPTION: - * - * This routine is responsible for transferring control of the - * processor from the executing thread to the heir thread. As part - * of this process, it is responsible for the following actions: - * - * + saving the context of the executing thread - * + restoring the context of the heir thread - * + dispatching any signals for the resulting executing thread - */ - -void _Thread_Dispatch( void ); - -/* - * _Thread_Ready - * - * DESCRIPTION: - * - * This routine removes any set states for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -void _Thread_Ready( - Thread_Control *the_thread -); - -/* - * _Thread_Clear_state - * - * DESCRIPTION: - * - * This routine clears the indicated STATES for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -void _Thread_Clear_state( - Thread_Control *the_thread, - States_Control state -); - -/* - * _Thread_Set_state - * - * DESCRIPTION: - * - * This routine sets the indicated states for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - * - */ - -void _Thread_Set_state( - Thread_Control *the_thread, - States_Control state -); - -/* - * _Thread_Set_transient - * - * DESCRIPTION: - * - * This routine sets the TRANSIENT state for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -void _Thread_Set_transient( - Thread_Control *the_thread -); - -/* - * _Thread_Reset_timeslice - * - * DESCRIPTION: - * - * This routine is invoked upon expiration of the currently - * executing thread's timeslice. If no other thread's are ready - * at the priority of the currently executing thread, then the - * executing thread's timeslice is reset. Otherwise, the - * currently executing thread is placed at the rear of the - * RTEMS_FIFO for this priority and a new heir is selected. - */ - -void _Thread_Reset_timeslice( void ); - -/* - * _Thread_Tickle_timeslice - * - * DESCRIPTION: - * - * This routine is invoked as part of processing each clock tick. - * It is responsible for determining if the current thread allows - * timeslicing and, if so, when its timeslice expires. - */ - -void _Thread_Tickle_timeslice( void ); - -/* - * _Thread_Yield_processor - * - * DESCRIPTION: - * - * This routine is invoked when a thread wishes to voluntarily - * transfer control of the processor to another thread of equal - * or greater priority. - */ - -void _Thread_Yield_processor( void ); - -/* - * _Thread_Is_executing - * - * DESCRIPTION: - * - * This function returns TRUE if the_thread is the currently executing - * thread, and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_executing ( - Thread_Control *the_thread -); - -/* - * _Thread_Is_heir - * - * DESCRIPTION: - * - * This function returns TRUE if the_thread is the heir - * thread, and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_executing ( - Thread_Control *the_thread -); - -/* - * _Thread_Is_executing_also_the_heir - * - * DESCRIPTION: - * - * This function returns TRUE if the currently executing thread - * is also the heir thread, and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_executing_also_the_heir( void ); - -/* - * _Thread_Load_environment - * - * DESCRIPTION: - * - * This routine initializes the context of the_thread to its - * appropriate starting state. - */ - -void _Thread_Load_environment( - Thread_Control *the_thread -); - -/* - * _Thread_Handler - * - * DESCRIPTION: - * - * This routine is the wrapper function for all threads. It is - * the starting point for all threads. The user provided thread - * entry point is invoked by this routine. Operations - * which must be performed immediately before and after the user's - * thread executes are found here. - */ - -void _Thread_Handler( void ); - -/* - * _Thread_Delay_ended - * - * DESCRIPTION: - * - * This routine is invoked when a thread must be unblocked at the - * end of a delay such as the rtems_task_wake_after and rtems_task_wake_when - * directives. - */ - -void _Thread_Delay_ended( - Objects_Id id, - void *ignored -); - -/* - * _Thread_Change_priority - * - * DESCRIPTION: - * - * This routine changes the current priority of the_thread to - * new_priority. It performs any necessary scheduling operations - * including the selection of a new heir thread. - */ - -void _Thread_Change_priority ( - Thread_Control *the_thread, - rtems_task_priority new_priority -); - -/* - * _Thread_Set_priority - * - * DESCRIPTION: - * - * This routine updates the priority related fields in the_thread - * control block to indicate the current priority is now new_priority. - */ - -void _Thread_Set_priority( - Thread_Control *the_thread, - rtems_task_priority new_priority -); - -/* - * _Thread_Change_mode - * - * DESCRIPTION: - * - * This routine changes the current values of the modes - * indicated by mask of the calling thread are changed to that - * indicated in mode_set. The former mode of the thread is - * returned in mode_set. If the changes in the current mode - * indicate that a thread dispatch operation may be necessary, - * then need_dispatch is TRUE, otherwise it is FALSE. - */ - -boolean _Thread_Change_mode( - rtems_mode new_mode_set, - rtems_mode mask, - rtems_mode *old_mode_set -); - -/* - * _Thread_Resume - * - * DESCRIPTION: - * - * This routine clears the SUSPENDED state for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -STATIC INLINE void _Thread_Resume ( - Thread_Control *the_thread -); - -/* - * _Thread_Unblock - * - * DESCRIPTION: - * - * This routine clears any blocking state for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -STATIC INLINE void _Thread_Unblock ( - Thread_Control *the_thread -); - -/* - * _Thread_Restart_self - * - * DESCRIPTION: - * - * This routine resets the current context of the calling thread - * to that of its initial state. - */ - -STATIC INLINE void _Thread_Restart_self( void ); - -/* - * _Thread_Calculate_heir - * - * DESCRIPTION: - * - * This function returns a pointer to the highest priority - * ready thread. - */ - -STATIC INLINE void _Thread_Calculate_heir( void ); - -/* - * _Thread_Is_allocated_fp - * - * DESCRIPTION: - * - * This function returns TRUE if the floating point context of - * the_thread is currently loaded in the floating point unit, and - * FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_allocated_fp ( - Thread_Control *the_thread -); - -/* - * _Thread_Deallocate_fp - * - * DESCRIPTION: - * - * This routine is invoked when the currently loaded floating - * point context is now longer associated with an active thread. - */ - -STATIC INLINE void _Thread_Deallocate_fp( void ); - -/* - * _Thread_Disable_dispatch - * - * DESCRIPTION: - * - * This routine prevents dispatching. - */ - -STATIC INLINE void _Thread_Disable_dispatch( void ); - -/* - * _Thread_Enable_dispatch - * - * DESCRIPTION: - * - * This routine allows dispatching to occur again. If this is - * the outer most dispatching critical section, then a dispatching - * operation will be performed and, if necessary, control of the - * processor will be transferred to the heir thread. - */ - -#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE ) - -STATIC INLINE void _Thread_Enable_dispatch(); - -#endif - -#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE ) - -void _Thread_Enable_dispatch( void ); - -#endif - -/* - * _Thread_Unnest_dispatch - * - * DESCRIPTION: - * - * This routine allows dispatching to occur again. However, - * no dispatching operation is performed even if this is the outer - * most dispatching critical section. - */ - -STATIC INLINE void _Thread_Unnest_dispatch( void ); - -/* - * _Thread_Is_dispatching_enabled - * - * DESCRIPTION: - * - * This function returns TRUE if dispatching is disabled, and FALSE - * otherwise. - */ - -STATIC INLINE boolean _Thread_Is_dispatching_enabled( void ); - -/* - * _Thread_Is_context_switch_necessary - * - * DESCRIPTION: - * - * This function returns TRUE if dispatching is disabled, and FALSE - * otherwise. - */ - -STATIC INLINE boolean _Thread_Is_context_switch_necessary( void ); - -/* - * _Thread_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_thread is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_null ( - Thread_Control *the_thread -); - -/* - * _Thread_Get - * - * DESCRIPTION: - * - * This function maps thread IDs to thread control - * blocks. If ID corresponds to a local thread, then it - * returns the_thread control pointer which maps to ID - * and location is set to OBJECTS_LOCAL. If the thread ID is - * global and resides on a remote node, then location is set - * to OBJECTS_REMOTE, and the_thread is undefined. - * Otherwise, location is set to OBJECTS_ERROR and - * the_thread is undefined. - */ - -STATIC INLINE Thread_Control *_Thread_Get ( - Objects_Id id, - Objects_Locations *location -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/threadmp.h b/c/src/exec/score/headers/threadmp.h deleted file mode 100644 index c6e8252030..0000000000 --- a/c/src/exec/score/headers/threadmp.h +++ /dev/null @@ -1,134 +0,0 @@ -/* threadmp.h - * - * This include file contains the specification for all routines - * and data specific to the multiprocessing portion of the thread package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_MP_h -#define __RTEMS_THREAD_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * _Thread_MP_Handler_initialization - * - * DESCRIPTION: - * - * This package is the specification for the Thread Handler's - * multiprocessing specific support routines. - */ - -void _Thread_MP_Handler_initialization ( - unsigned32 maximum_proxies -); - -/* - * _Thread_MP_Is_receive - * - * DESCRIPTION: - * - * This function returns true if the thread in question is the - * multiprocessing receive thread. - */ - -STATIC INLINE boolean _Thread_MP_Is_receive ( - Thread_Control *the_thread -); - -/* - * _Thread_MP_Allocate_proxy - * - * DESCRIPTION: - * - * This allocates a proxy control block from - * the inactive chain of free proxy control blocks. - * - * NOTE: This function returns a thread control pointer - * because proxies are substitutes for remote threads. - */ - -Thread_Control *_Thread_MP_Allocate_proxy ( - States_Control the_state -); - -/* - * _Thread_MP_Free_proxy - * - * DESCRIPTION: - * - * This routine frees a proxy control block to the - * inactive chain of free proxy control blocks. - */ - -STATIC INLINE void _Thread_MP_Free_proxy ( - Thread_Control *the_thread -); - -/* - * _Thread_MP_Find_proxy - * - * DESCRIPTION: - * - * This function removes the proxy control block for the specified - * id from the active chain of proxy control blocks. - */ - -Thread_Control *_Thread_MP_Find_proxy ( - Objects_Id the_id -); - -/* - * _Thread_MP_Block - * - * DESCRIPTION: - * - * This routine blocks the MP Receive server thread. - */ - -void _Thread_MP_Block( void ); - -/* - * _Thread_MP_Ready - * - * DESCRIPTION: - * - * This routine readies the MP Receive server thread. - */ - -void _Thread_MP_Ready( void ); - -/* - * The following is used to determine when the multiprocessing receive - * thread is executing so that a proxy can be allocated instead of - * blocking the multiprocessing receive thread. - */ - -EXTERN Thread_Control *_Thread_MP_Receive; - -/* - * The following chains are used to manage proxies. - */ - -EXTERN Chain_Control _Thread_MP_Active_proxies; -EXTERN Chain_Control _Thread_MP_Inactive_proxies; - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/threadq.h b/c/src/exec/score/headers/threadq.h deleted file mode 100644 index 291044ead1..0000000000 --- a/c/src/exec/score/headers/threadq.h +++ /dev/null @@ -1,264 +0,0 @@ -/* threadq.h - * - * This include file contains all the constants and structures associated - * with the manipulation of objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_QUEUE_h -#define __RTEMS_THREAD_QUEUE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#include -#include -#include - -/* - * The following type defines the callout used when a remote task - * is extracted from a local thread queue. - */ - -typedef void ( *Thread_queue_Flush_callout )( - Thread_Control * - ); - -/* - * _Thread_queue_Dequeue - * - * DESCRIPTION: - * - * This function returns a pointer to a thread waiting on - * the_thread_queue. The selection of this thread is based on - * the discipline of the_thread_queue. If no threads are waiting - * on the_thread_queue, then NULL is returned. - */ - -Thread_Control *_Thread_queue_Dequeue( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Enqueue - * - * DESCRIPTION: - * - * This routine enqueues the currently executing thread on - * the_thread_queue with an optional timeout. - */ - -void _Thread_queue_Enqueue( - Thread_queue_Control *the_thread_queue, - rtems_interval timeout -); - -/* - * _Thread_queue_Extract - * - * DESCRIPTION: - * - * This routine removes the_thread from the_thread_queue - * and cancels any timeouts associated with this blocking. - */ - -void _Thread_queue_Extract( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -); - -/* - * _Thread_queue_First - * - * DESCRIPTION: - * - * This function returns a pointer to the "first" thread - * on the_thread_queue. The "first" thread is selected - * based on the discipline of the_thread_queue. - */ - -Thread_Control *_Thread_queue_First( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Flush - * - * DESCRIPTION: - * - * This routine unblocks all threads blocked on the_thread_queue - * and cancels any associated timeouts. - */ - -void _Thread_queue_Flush( - Thread_queue_Control *the_thread_queue, - Thread_queue_Flush_callout remote_extract_callout -); - -/* - * _Thread_queue_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_thread_queue based on the - * discipline indicated in attribute_set. The state set on - * threads which block on the_thread_queue is state. - */ - -void _Thread_queue_Initialize( - Thread_queue_Control *the_thread_queue, - rtems_attribute attribute_set, - States_Control state -); - -/* - * _Thread_queue_Dequeue_priority - * - * DESCRIPTION: - * - * This function returns a pointer to the highest priority - * thread waiting on the_thread_queue. If no threads are waiting - * on the_thread_queue, then NULL is returned. - */ - -Thread_Control *_Thread_queue_Dequeue_priority( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Enqueue_priority - * - * DESCRIPTION: - * - * This routine enqueues the currently executing thread on - * the_thread_queue with an optional timeout using the - * priority discipline. - */ - -void _Thread_queue_Enqueue_priority( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread, - rtems_interval timeout -); - -/* - * _Thread_queue_Extract_priority - * - * DESCRIPTION: - * - * This routine removes the_thread from the_thread_queue - * and cancels any timeouts associated with this blocking. - */ - -void _Thread_queue_Extract_priority( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -); - -/* - * _Thread_queue_First_priority - * - * DESCRIPTION: - * - * This function returns a pointer to the "first" thread - * on the_thread_queue. The "first" thread is the highest - * priority thread waiting on the_thread_queue. - */ - -Thread_Control *_Thread_queue_First_priority( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Dequeue_FIFO - * - * DESCRIPTION: - * - * This function returns a pointer to the thread which has - * been waiting the longest on the_thread_queue. If no - * threads are waiting on the_thread_queue, then NULL is returned. - */ - -Thread_Control *_Thread_queue_Dequeue_fifo( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Enqueue_FIFO - * - * DESCRIPTION: - * - * This routine enqueues the currently executing thread on - * the_thread_queue with an optional timeout using the - * RTEMS_FIFO discipline. - */ - -void _Thread_queue_Enqueue_fifo( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread, - rtems_interval timeout -); - -/* - * _Thread_queue_Extract_FIFO - * - * DESCRIPTION: - * - * This routine removes the_thread from the_thread_queue - * and cancels any timeouts associated with this blocking. - */ - -void _Thread_queue_Extract_fifo( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -); - -/* - * _Thread_queue_First_FIFO - * - * DESCRIPTION: - * - * This function returns a pointer to the "first" thread - * on the_thread_queue. The first thread is the thread - * which has been waiting longest on the_thread_queue. - */ - -Thread_Control *_Thread_queue_First_fifo( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_timeout - * - * DESCRIPTION: - * - * This routine is invoked when a task's request has not - * been satisfied after the timeout interval specified to - * enqueue. The task represented by ID will be unblocked and - * its status code will be set in it's control block to indicate - * that a timeout has occurred. - */ - -void _Thread_queue_Timeout ( - Objects_Id id, - void *ignored -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/tod.h b/c/src/exec/score/headers/tod.h deleted file mode 100644 index ae7e2b9747..0000000000 --- a/c/src/exec/score/headers/tod.h +++ /dev/null @@ -1,300 +0,0 @@ -/* tod.h - * - * This include file contains all the constants and structures associated - * with the Time of Day Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TIME_OF_DAY_h -#define __RTEMS_TIME_OF_DAY_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following constants are related to the time of day. - */ - -#define TOD_SECONDS_PER_MINUTE 60 -#define TOD_MINUTES_PER_HOUR 60 -#define TOD_MONTHS_PER_YEAR 12 -#define TOD_DAYS_PER_YEAR 365 -#define TOD_HOURS_PER_DAY 24 -#define TOD_SECONDS_PER_DAY (TOD_SECONDS_PER_MINUTE * \ - TOD_MINUTES_PER_HOUR * \ - TOD_HOURS_PER_DAY) - -#define TOD_MICROSECONDS_PER_SECOND 1000000 -#define TOD_MILLISECONDS_PER_SECOND 1000 - -/* - * The following constant define the earliest year to which an - * RTEMS time of day can be initialized. This is considered the - * epoch. - */ - -#define TOD_BASE_YEAR 1988 - -/* - * The following record defines the time of control block. This - * control block is used to maintain the current time of day. - */ - -typedef struct { /* RTEID style time/date */ - unsigned32 year; /* year, A.D. */ - unsigned32 month; /* month, 1 -> 12 */ - unsigned32 day; /* day, 1 -> 31 */ - unsigned32 hour; /* hour, 0 -> 23 */ - unsigned32 minute; /* minute, 0 -> 59 */ - unsigned32 second; /* second, 0 -> 59 */ - unsigned32 ticks; /* elapsed ticks between secs */ -} rtems_time_of_day; - -/* - * The following contains the current time of day. - */ - -EXTERN rtems_time_of_day _TOD_Current; - -/* - * The following contains the number of seconds from 00:00:00 - * January 1, TOD_BASE_YEAR until the current time of day. - */ - -EXTERN rtems_interval _TOD_Seconds_since_epoch; - -/* - * The following contains the number of ticks since the - * system was booted. - */ - -EXTERN rtems_interval _TOD_Ticks_since_boot; - -/* - * The following contains the number of microseconds per tick. - */ - -EXTERN unsigned32 _TOD_Microseconds_per_tick; - -/* - * The following contains the number of clock ticks per second. - * - * NOTE: - * - * If one second is NOT evenly divisible by the number of microseconds - * per clock tick, this value will contain only the integer portion - * of the division. This means that the interval between clock ticks - * can be a source of error in the current time of day. - */ - -EXTERN unsigned32 _TOD_Ticks_per_second; - -/* - * This is the control structure for the watchdog timer which - * fires to service the seconds chain. - */ - -EXTERN Watchdog_Control _TOD_Seconds_watchdog; - -#ifdef INIT - -/* - * The following array contains the number of days in all months. - * The first dimension should be 1 for leap years, and 0 otherwise. - * The second dimension should range from 1 to 12 for January to - * February, respectively. - */ - -const unsigned32 _TOD_Days_per_month[ 2 ][ 13 ] = { - { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, - { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } -}; - -/* - * The following array contains the number of days in all months - * up to the month indicated by the index of the second dimension. - * The first dimension should be 1 for leap years, and 0 otherwise. - */ - -const unsigned16 _TOD_Days_to_date[2][13] = { - { 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }, - { 0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 } -}; - -/* - * The following array contains the number of days in the years - * since the last leap year. The index should be 0 for leap - * years, and the number of years since the beginning of a leap - * year otherwise. - */ - -const unsigned16 _TOD_Days_since_last_leap_year[4] = { 0, 366, 761, 1126 }; - -#else - -extern const unsigned16 _TOD_Days_to_date[2][13]; /* Julian days */ -extern const unsigned16 _TOD_Days_since_last_leap_year[4]; -extern const unsigned32 _TOD_Days_per_month[2][13]; - -#endif - -/* - * _TOD_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -void _TOD_Handler_initialization( - unsigned32 microseconds_per_tick -); - -/* - * _TOD_Set - * - * DESCRIPTION: - * - * This routine sets the current time of day to THE_TOD and - * the equivalent SECONDS_SINCE_EPOCH. - */ - -void _TOD_Set( - rtems_time_of_day *the_tod, - rtems_interval seconds_since_epoch -); - -/* - * _TOD_Validate - * - * DESCRIPTION: - * - * This function returns STATUS.RTEMS_SUCCESSFUL if THE_TOD contains - * a valid time of day, and FALSE otherwise. - */ - -rtems_status_code _TOD_Validate( - rtems_time_of_day *the_tod -); - -/* - * _TOD_To_seconds - * - * DESCRIPTION: - * - * This function returns the number seconds between the epoch and THE_TOD. - */ - -rtems_interval _TOD_To_seconds( - rtems_time_of_day *the_tod -); - -/* - * _TOD_Is_set - * - * DESCRIPTION: - * - * This function returns TRUE if the application has set the current - * time of day, and FALSE otherwise. - */ - -STATIC INLINE boolean _TOD_Is_set( void ); - -/* - * _TOD_Tickle_ticks - * - * DESCRIPTION: - * - * This routine increments the ticks field of the current time of - * day at each clock tick. - */ - -STATIC INLINE void _TOD_Tickle_ticks( void ); - -/* - * _TOD_Deactivate - * - * DESCRIPTION: - * - * This routine deactivates updating of the current time of day. - */ - -STATIC INLINE void _TOD_Deactivate( void ); - -/* - * _TOD_Activate - * - * DESCRIPTION: - * - * This routine deactivates updating of the current time of day. - */ - -STATIC INLINE void _TOD_Activate( - rtems_interval ticks -); - -/* - * _TOD_Tickle - * - * DESCRIPTION: - * - * This routine is scheduled as a watchdog function and is invoked at - * each second boundary. It updates the current time of day to indicate - * that a second has passed and processes the seconds watchdog chain. - */ - -void _TOD_Tickle( - Objects_Id id, - void *ignored -); - -/* - * RTEMS_MILLISECONDS_TO_MICROSECONDS - * - * DESCRIPTION: - * - * This routine converts an interval expressed in milliseconds to microseconds. - * - * NOTE: - * - * This must be a macro so it can be used in "static" tables. - */ - -#define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) ((_ms) * 1000) - -/* - * RTEMS_MILLISECONDS_TO_TICKS - * - * DESCRIPTION: - * - * This routine converts an interval expressed in milliseconds to ticks. - * - * NOTE: - * - * This must be a macro so it can be used in "static" tables. - */ - -#define RTEMS_MILLISECONDS_TO_TICKS(_ms) \ - (RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) / _TOD_Microseconds_per_tick) - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/tqdata.h b/c/src/exec/score/headers/tqdata.h deleted file mode 100644 index 8c43fa4c72..0000000000 --- a/c/src/exec/score/headers/tqdata.h +++ /dev/null @@ -1,90 +0,0 @@ -/* tqdata.h - * - * This include file contains all the constants and structures - * needed to declare a thread queue. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_QUEUE_DATA_h -#define __RTEMS_THREAD_QUEUE_DATA_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type details all of the disciplines - * supported by the Thread Queue Handler. - */ - -typedef enum { - THREAD_QUEUE_DATA_FIFO_DISCIPLINE, /* RTEMS_FIFO queue discipline */ - THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE, /* RTEMS_PRIORITY queue discipline */ -} Thread_queue_Disciplines; - -/* - * The following record defines the control block used - * to manage each thread. - */ - -#define TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS 4 /* # of pri groups */ - -typedef struct { - union { - Chain_Control Fifo; /* FIFO discipline list */ - Chain_Control Priority[TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS]; - /* priority discipline list */ - } Queues; - boolean sync; /* alloc/dealloc critical section */ - Thread_queue_Disciplines discipline; /* queue discipline */ - States_Control state; /* state of threads on Thread_q */ -} Thread_queue_Control; - -/* - * _Thread_queue_Header_number - * - * DESCRIPTION: - * - * This function returns the index of the priority chain on which - * a thread of the_priority should be placed. - */ - -STATIC INLINE unsigned32 _Thread_queue_Header_number ( - rtems_task_priority the_priority -); - -/* - * _Thread_queue_Is_reverse_search - * - * DESCRIPTION: - * - * This function returns TRUE if the_priority indicates that the - * enqueue search should start at the front of this priority - * group chain, and FALSE if the search should start at the rear. - */ - -STATIC INLINE boolean _Thread_queue_Is_reverse_search ( - rtems_task_priority the_priority -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/userext.h b/c/src/exec/score/headers/userext.h deleted file mode 100644 index 37131959d9..0000000000 --- a/c/src/exec/score/headers/userext.h +++ /dev/null @@ -1,213 +0,0 @@ -/* userext.h - * - * This include file contains all information about user extensions. This - * Handler provides mechanisms which can be used to initialize and manipulate - * all RTEMS user extensions. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_USER_EXTENSIONS_h -#define __RTEMS_USER_EXTENSIONS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following is used to manage each user extension set. - */ - -typedef struct { - Chain_Node Node; - rtems_extensions_table Callouts; -} User_extensions_Control; - -/* - * The following contains the static extension set which may be - * configured by the application. - */ - -EXTERN User_extensions_Control _User_extensions_Initial; - -/* - * The following is used to manage the list of active extensions. - */ - -EXTERN Chain_Control _User_extensions_List; - - -/* - * _User_extensions_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _User_extensions_Handler_initialization ( - rtems_extensions_table *initial_extensions -); - -/* - * _User_extensions_Add_set - * - * DESCRIPTION: - * - * This routine is used to add a user extension set to the active list. - */ - -STATIC INLINE void _User_extensions_Add_set ( - User_extensions_Control *the_extension, - rtems_extensions_table *extension_table -); - -/* - * _User_extensions_Remove_set - * - * DESCRIPTION: - * - * This routine is used to remove a user extension set from the active list. - */ - -STATIC INLINE void _User_extensions_Remove_set ( - User_extensions_Control *the_extension -); - -/* - * _User_extensions_Task_create - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_create directive. - */ - -STATIC INLINE void _User_extensions_Task_create ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_delete - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_delete directive. - */ - -STATIC INLINE void _User_extensions_Task_delete ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_start - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_start directive. - */ - -STATIC INLINE void _User_extensions_Task_start ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_restart - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_restart directive. - */ - -STATIC INLINE void _User_extensions_Task_restart ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_switch - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a context switch occurs. - */ - -STATIC INLINE void _User_extensions_Task_switch ( - Thread_Control *executing, - Thread_Control *heir -); - -/* - * _User_extensions_Task_begin - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a task begins. - */ - -STATIC INLINE void _User_extensions_Task_begin ( - Thread_Control *executing -); - -/* - * _User_extensions_Task_exitted - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a task exits. - */ - -STATIC INLINE void _User_extensions_Task_exitted ( - Thread_Control *executing -); - -/* - * _User_extensions_Task_exitted - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a task exits. - */ - -STATIC INLINE void _User_extensions_Task_exitted ( - Thread_Control *executing -); - -/* - * _User_extensions_Fatal - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_fatal_error_occurred directive. - */ - -STATIC INLINE void _User_extensions_Fatal ( - unsigned32 the_error -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/watchdog.h b/c/src/exec/score/headers/watchdog.h deleted file mode 100644 index 5c897615f7..0000000000 --- a/c/src/exec/score/headers/watchdog.h +++ /dev/null @@ -1,471 +0,0 @@ -/* watchdog.h - * - * This include file contains all the constants and structures associated - * with watchdog timers. This Handler provides mechanisms which can be - * used to initialize and manipulate watchdog timers. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_WATCHDOG_h -#define __RTEMS_WATCHDOG_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the control block used to manage - * intervals. - */ - -typedef unsigned32 rtems_interval; - -/* - * The following types define a pointer to a watchdog/timer service routine. - */ - -typedef void rtems_timer_service_routine; - -typedef rtems_timer_service_routine ( *rtems_timer_service_routine_entry )( - Objects_Id, - void * - ); - -/* - * Constant for indefinite wait. (actually an illegal interval) - */ - -#define RTEMS_NO_TIMEOUT 0 - -/* - * The following enumerated type details the modes in which the - * Watchdog_Insert routine may operate. The watchdog may be - * activated automatically at insert time or later, explicitly - * by the caller. - */ - -typedef enum { - WATCHDOG_ACTIVATE_NOW, /* activate watchdog as part of insertion */ - WATCHDOG_NO_ACTIVATE /* watchdog will be explicitly activated */ -} Watchdog_Insert_modes; - -/* - * The following enumerated type lists the states in which a - * watchdog timer may be at any given time. - */ - -typedef enum { - WATCHDOG_INACTIVE, /* off all chains */ - WATCHDOG_ACTIVE, /* on chain, allowed to fire */ - WATCHDOG_REINSERT, /* on chain, reset without firing if expires */ - WATCHDOG_REMOVE_IT /* on chain, remove without firing if expires */ -} Watchdog_States; - -/* - * The following enumerated type details the manner in which - * a watchdog chain may be adjusted by the Watchdog_Adjust - * routine. The direction indicates a movement FORWARD - * or BACKWARD in time. - */ - -typedef enum { - WATCHDOG_FORWARD, /* adjust delta value forward */ - WATCHDOG_BACKWARD /* adjust delta value backward */ -} Watchdog_Adjust_directions; - -/* - * The following record defines the control block used - * to manage each watchdog timer. - */ - -typedef struct { - Chain_Node Node; - Watchdog_States state; - rtems_interval initial; - rtems_interval delta_interval; - rtems_timer_service_routine_entry routine; - Objects_Id id; - void *user_data; -} Watchdog_Control; - -/* - * The following type is used for synchronization purposes - * during an insert on a watchdog delta chain. - * - * NOTE: Watchdog_Pointer is only used to insure that - * Watchdog_Synchronization_pointer is a pointer - * which is volatile rather than a pointer to a - * volatile block of memory. - */ - -typedef Watchdog_Control *Watchdog_Pointer; -typedef volatile Watchdog_Pointer Watchdog_Synchronization_pointer; - -/* - * The following defines the watchdog chains which are managed - * on ticks and second boundaries. - */ - -EXTERN Chain_Control _Watchdog_Ticks_chain; -EXTERN Chain_Control _Watchdog_Seconds_chain; - -/* - * The following defines the synchronization variable used to - * allow interrupts to be enabled while inserting a watchdog - * on a watchdog chain. - */ - -EXTERN Watchdog_Synchronization_pointer _Watchdog_Sync; - -/* - * _Watchdog_Handler_initialization - * - * DESCRIPTION: - * - * This routine initializes the watchdog handler. The watchdog - * synchronization flag is initialized and the watchdog chains are - * initialized and emptied. - */ - -void _Watchdog_Handler_initialization( void ); - -/* - * - * _Watchdog_Initialize - * - * DESCRIPTION: - * - * This routine initializes the specified watchdog. The watchdog is - * made inactive, the watchdog id and handler routine are set to the - * specified values. - */ - -STATIC INLINE void _Watchdog_Initialize( - Watchdog_Control *the_watchdog, - rtems_timer_service_routine_entry routine, - Objects_Id id, - void *user_data -); - -/* - * _Watchdog_Remove - * - * DESCRIPTION: - * - * This routine removes THE_WATCHDOG from the watchdog chain on which - * it resides and returns the state THE_WATCHDOG timer was in. - */ - -Watchdog_States _Watchdog_Remove ( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Is_active - * - * DESCRIPTION: - * - * This routine returns TRUE if the watchdog timer is in the ACTIVE - * state, and FALSE otherwise. - */ - -STATIC INLINE boolean _Watchdog_Is_active( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Activate - * - * DESCRIPTION: - * - * This routine activates THE_WATCHDOG timer which is already - * on a watchdog chain. - */ - -STATIC INLINE void _Watchdog_Activate( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Deactivate - * - * DESCRIPTION: - * - * This routine deactivates THE_WATCHDOG timer which will remain - * on a watchdog chain. - */ - -STATIC INLINE void _Watchdog_Deactivate( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Tickle_ticks - * - * DESCRIPTION: - * - * This routine is invoked at each clock tick to update the ticks - * watchdog chain. - */ - -STATIC INLINE void _Watchdog_Tickle_ticks( void ); - -/* - * - * _Watchdog_Tickle_seconds - * - * DESCRIPTION: - * - * This routine is invoked at each clock tick to update the seconds - * watchdog chain. - */ - -STATIC INLINE void _Watchdog_Tickle_seconds( void ); - -/* - * - * _Watchdog_Insert_ticks - * - * DESCRIPTION: - * - * This routine inserts THE_WATCHDOG into the ticks watchdog chain - * for a time of UNITS ticks. The INSERT_MODE indicates whether - * THE_WATCHDOG is to be activated automatically or later, explicitly - * by the caller. - */ - -STATIC INLINE void _Watchdog_Insert_ticks( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -); - -/* - * - * _Watchdog_Insert_seconds - * - * DESCRIPTION: - * - * This routine inserts THE_WATCHDOG into the seconds watchdog chain - * for a time of UNITS seconds. The INSERT_MODE indicates whether - * THE_WATCHDOG is to be activated automatically or later, explicitly - * by the caller. - */ - -STATIC INLINE void _Watchdog_Insert_seconds( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -); - -/* - * - * _Watchdog_Adjust_seconds - * - * DESCRIPTION: - * - * This routine adjusts the seconds watchdog chain in the forward - * or backward DIRECTION for UNITS seconds. This is invoked when the - * current time of day is changed. - */ - -STATIC INLINE void _Watchdog_Adjust_seconds( - Watchdog_Adjust_directions direction, - rtems_interval units -); - -/* - * - * _Watchdog_Adjust_ticks - * - * DESCRIPTION: - * - * This routine adjusts the ticks watchdog chain in the forward - * or backward DIRECTION for UNITS ticks. - */ - -STATIC INLINE void _Watchdog_Adjust_ticks( - Watchdog_Adjust_directions direction, - rtems_interval units -); - -/* - * - * _Watchdog_Reset - * - * DESCRIPTION: - * - * This routine resets THE_WATCHDOG timer to its state at INSERT - * time. This routine is valid only on interval watchdog timers - * and is used to make an interval watchdog timer fire "every" so - * many ticks. - */ - -STATIC INLINE void _Watchdog_Reset( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Next - * - * DESCRIPTION: - * - * This routine returns a pointer to the watchdog timer following - * THE_WATCHDOG on the watchdog chain. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Next( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Previous - * - * DESCRIPTION: - * - * This routine returns a pointer to the watchdog timer preceding - * THE_WATCHDOG on the watchdog chain. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Previous( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_First - * - * DESCRIPTION: - * - * This routine returns a pointer to the first watchdog timer - * on the watchdog chain HEADER. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_First( - Chain_Control *header -); - -/* - * - * _Watchdog_Last - * - * DESCRIPTION: - * - * This routine returns a pointer to the last watchdog timer - * on the watchdog chain HEADER. - */ -STATIC INLINE Watchdog_Control *_Watchdog_Last( - Chain_Control *header -); - -/* - * - * _Watchdog_Get_sync - * - * DESCRIPTION: - * - * This routine returns the current synchronization timer. This - * routine is used so that interrupts can be enabled while a - * watchdog timer is being inserted into a watchdog chain. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Get_sync( void ); - -/* - * - * _Watchdog_Set_sync - * - * DESCRIPTION: - * - * This routine sets the current synchronization timer. This - * routine is used so that interrupts can be enabled while a - * watchdog timer is being inserted into a watchdog chain. - */ - -STATIC INLINE void _Watchdog_Set_sync( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Clear_sync - * - * DESCRIPTION: - * - * This routine will set the watchdog synchronization flag to a - * NULL address indicating synchronization is unnecessary. - */ - -STATIC INLINE void _Watchdog_Clear_sync( void ); - -/* - * _Watchdog_Adjust - * - * DESCRIPTION: - * - * This routine adjusts the HEADER watchdog chain in the forward - * or backward DIRECTION for UNITS ticks. - */ - -void _Watchdog_Adjust ( - Chain_Control *header, - Watchdog_Adjust_directions direction, - rtems_interval units -); - -/* - * _Watchdog_Insert - * - * DESCRIPTION: - * - * This routine inserts THE_WATCHDOG into the HEADER watchdog chain - * for a time of UNITS. The INSERT_MODE indicates whether - * THE_WATCHDOG is to be activated automatically or later, explicitly - * by the caller. - * - */ - -void _Watchdog_Insert ( - Chain_Control *header, - Watchdog_Control *the_watchdog, - Watchdog_Insert_modes insert_mode -); - -/* - * _Watchdog_Tickle - * - * DESCRIPTION: - * - * This routine is invoked at appropriate intervals to update - * the HEADER watchdog chain. - */ - -void _Watchdog_Tickle ( - Chain_Control *header -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/headers/wkspace.h b/c/src/exec/score/headers/wkspace.h deleted file mode 100644 index 14bc090291..0000000000 --- a/c/src/exec/score/headers/wkspace.h +++ /dev/null @@ -1,99 +0,0 @@ -/* wkspace.h - * - * This include file contains information related to the RTEMS - * RAM Workspace. This Handler provides mechanisms which can be used to - * define, initialize and manipulate the RTEMS workspace. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_WORKSPACE_h -#define __RTEMS_WORKSPACE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following is used to manage the RTEMS Workspace. - * - */ - -EXTERN Heap_Control _Workspace_Area; /* executive heap header */ - -/* - * _Workspace_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _Workspace_Handler_initialization( - void *starting_address, - unsigned32 size -); - -/* - * _Workspace_Allocate - * - * DESCRIPTION: - * - * This routine returns the address of a block of memory of size - * bytes. If a block of the appropriate size cannot be allocated - * from the workspace, then NULL is returned. - */ - -STATIC INLINE void *_Workspace_Allocate( - unsigned32 size -); - -/* - * _Workspace_Allocate_or_fatal_error - * - * DESCRIPTION: - * - * This routine returns the address of a block of memory of size - * bytes. If a block of the appropriate size cannot be allocated - * from the workspace, then the rtems_fatal_error_occurred directive - * is invoked. - */ - -STATIC INLINE void *_Workspace_Allocate_or_fatal_error( - unsigned32 size -); - -/* - * _Workspace_Free - * - * DESCRIPTION: - * - * This function frees the specified block of memory. If the block - * belongs to the Workspace and can be successfully freed, then - * TRUE is returned. Otherwise FALSE is returned. - */ - -STATIC INLINE boolean _Workspace_Free( - void *block -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/debug.h b/c/src/exec/score/include/rtems/debug.h deleted file mode 100644 index afe6251bbe..0000000000 --- a/c/src/exec/score/include/rtems/debug.h +++ /dev/null @@ -1,98 +0,0 @@ -/* debug.h - * - * This include file contains the information pertaining to the debug - * support within RTEMS. It is currently cast in the form of a - * Manager since it is externally accessible. - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_DEBUG_h -#define __RTEMS_DEBUG_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type is used to manage the debug mask. - */ - -typedef unsigned32 rtems_debug_control; - -/* - * These constants represent various classes of debugging. - */ - -#define RTEMS_DEBUG_ALL_MASK 0xffffffff -#define RTEMS_DEBUG_REGION 0x00000001 - -/* - * This variable contains the current debug level. - */ - -EXTERN rtems_debug_control _Debug_Level; - -/* - * _Debug_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Debug_Manager_initialization( void ); - -/* - * rtems_debug_enable - * - * DESCRIPTION: - * - * This routine enables the specified types of debug checks. - */ - -void rtems_debug_enable ( - rtems_debug_control to_be_enabled -); - -/* - * rtems_debug_disable - * - * DESCRIPTION: - * - * This routine disables the specified types of debug checks. - */ - -void rtems_debug_disable ( - rtems_debug_control to_be_disabled -); - -/* - * - * _Debug_Is_enabled - * - * DESCRIPTION: - * - * This routine returns TRUE if the requested debug level is - * enabled, and FALSE otherwise. - */ - -boolean _Debug_Is_enabled( - rtems_debug_control level -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/address.h b/c/src/exec/score/include/rtems/score/address.h deleted file mode 100644 index 0abd113f63..0000000000 --- a/c/src/exec/score/include/rtems/score/address.h +++ /dev/null @@ -1,122 +0,0 @@ -/* address.h - * - * This include file contains the information required to manipulate - * physical addresses. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ADDRESSES_h -#define __RTEMS_ADDRESSES_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * _Addresses_Add_offset - * - * DESCRIPTION: - * - * This function is used to add an offset to a base address. - * It returns the resulting address. This address is typically - * converted to an access type before being used further. - */ - -STATIC INLINE void *_Addresses_Add_offset ( - void *base, - unsigned32 offset -); - -/* - * _Addresses_Subtract_offset - * - * DESCRIPTION: - * - * This function is used to subtract an offset from a base - * address. It returns the resulting address. This address is - * typically converted to an access type before being used further. - */ - -STATIC INLINE void *_Addresses_Subtract_offset( - void *base, - unsigned32 offset -); - -/* - * _Addresses_Add - * - * DESCRIPTION: - * - * This function is used to add two addresses. It returns the - * resulting address. This address is typically converted to an - * access type before being used further. - */ - -STATIC INLINE void *_Addresses_Add ( - void *left, - void *right -); - -/* - * _Addresses_Subtract - * - * DESCRIPTION: - * - * This function is used to subtract two addresses. It returns the - * resulting offset. - */ - -STATIC INLINE unsigned32 _Addresses_Subtract ( - void *left, - void *right -); - -/* - * _Addresses_Is_aligned - * - * DESCRIPTION: - * - * This function returns TRUE if the given address is correctly - * aligned for this processor and FALSE otherwise. Proper alignment - * is based on correctness and efficiency. - */ - -STATIC INLINE boolean _Addresses_Is_aligned ( - void *address -); - -/* - * _Addresses_Is_in_range - * - * DESCRIPTION: - * - * This function returns TRUE if the given address is within the - * memory range specified and FALSE otherwise. base is the address - * of the first byte in the memory range and limit is the address - * of the last byte in the memory range. The base address is - * assumed to be lower than the limit address. - */ - -STATIC INLINE boolean _Addresses_Is_in_range ( - void *address, - void *base, - void *limit -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/bitfield.h b/c/src/exec/score/include/rtems/score/bitfield.h deleted file mode 100644 index a74ea97735..0000000000 --- a/c/src/exec/score/include/rtems/score/bitfield.h +++ /dev/null @@ -1,49 +0,0 @@ -/* bitfield.h - * - * This include file contains all bit field manipulation routines. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_BITFIELD_h -#define __RTEMS_BITFIELD_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * _Bitfield_Find_first_bit - * - * DESCRIPTION: - * - * This routine returns the bit_number of the first bit set - * in the specified value. The correspondence between bit_number - * and actual bit position is processor dependent. The search for - * the first bit set may run from most to least significant bit - * or vice-versa. - * - * NOTE: - * - * This routine is used when the executing thread is removed - * from the ready state and, as a result, its performance has a - * significant impact on the performance of the executive as a whole. - */ - -#define _Bitfield_Find_first_bit( _value, _bit_number ) \ - _CPU_Bitfield_Find_first_bit( _value, _bit_number ) - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/chain.h b/c/src/exec/score/include/rtems/score/chain.h deleted file mode 100644 index 06cc47cc65..0000000000 --- a/c/src/exec/score/include/rtems/score/chain.h +++ /dev/null @@ -1,432 +0,0 @@ -/* chain.h - * - * This include file contains all the constants and structures associated - * with the Doubly Linked Chain Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CHAIN_h -#define __RTEMS_CHAIN_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * This is used to manage each element (node) which is placed - * on a chain. - * - * NOTE: Typically, a more complicated structure will use the - * chain package. The more complicated structure will - * include a chain node as the first element in its - * control structure. It will then call the chain package - * with a pointer to that node element. The node pointer - * and the higher level structure start at the same address - * so the user can cast the pointers back and forth. - * - */ - -typedef struct Chain_Node_struct Chain_Node; - -struct Chain_Node_struct { - Chain_Node *next; - Chain_Node *previous; -}; - -/* - * This is used to manage a chain. A chain consists of a doubly - * linked list of zero or more nodes. - * - * NOTE: This implementation does not require special checks for - * manipulating the first and last elements on the chain. - * To accomplish this the chain control structure is - * treated as two overlapping chain nodes. The permanent - * head of the chain overlays a node structure on the - * first and permanent_null fields. The permanent tail - * of the chain overlays a node structure on the - * permanent_null and last elements of the structure. - * - */ - -typedef struct { - Chain_Node *first; - Chain_Node *permanent_null; - Chain_Node *last; -} Chain_Control; - -/* - * _Chain_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_chain structure to manage the - * contiguous array of number_nodes nodes which starts at - * starting_address. Each node is of node_size bytes. - * - */ - -void _Chain_Initialize( - Chain_Control *the_chain, - void *starting_address, - unsigned32 number_nodes, - unsigned32 node_size -); - -/* - * _Chain_Initialize_empty - * - * DESCRIPTION: - * - * This routine initializes the specified chain to contain zero nodes. - * - */ - -STATIC INLINE void _Chain_Initialize_empty( - Chain_Control *the_chain -); - -/* - * _Chain_Are_nodes_equal - * - * DESCRIPTION: - * - * This function returns TRUE if LEFT and RIGHT are equal, - * and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Are_nodes_equal( - Chain_Node *left, - Chain_Node *right -); - -/* - * _Chain_Extract_unprotected - * - * DESCRIPTION: - * - * This routine extracts the_node from the chain on which it resides. - * It does NOT disable interrupts to insure the atomicity of the - * extract operation. - * - */ - -STATIC INLINE void _Chain_Extract_unprotected( - Chain_Node *the_node -); - -/* - * _Chain_Extract - * - * DESCRIPTION: - * - * This routine extracts the_node from the chain on which it resides. - * It disables interrupts to insure the atomicity of the - * extract operation. - * - */ - -void _Chain_Extract( - Chain_Node *the_node -); - -/* - * _Chain_Get_unprotected - * - * DESCRIPTION: - * - * This function removes the first node from the_chain and returns - * a pointer to that node. If the_chain is empty, then NULL is returned. - * It does NOT disable interrupts to insure the atomicity of the - * get operation. - * - */ - -STATIC INLINE Chain_Node *_Chain_Get_unprotected( - Chain_Control *the_chain -); - -/* - * _Chain_Get - * - * DESCRIPTION: - * - * This function removes the first node from the_chain and returns - * a pointer to that node. If the_chain is empty, then NULL is returned. - * It disables interrupts to insure the atomicity of the - * get operation. - * - */ - -Chain_Node *_Chain_Get( - Chain_Control *the_chain -); - -/* - * _Chain_Get_first_unprotected - * - * DESCRIPTION: - * - * This function removes the first node from the_chain and returns - * a pointer to that node. It does NOT disable interrupts to insure - * the atomicity of the get operation. - * - */ - -STATIC INLINE Chain_Node *_Chain_Get_first_unprotected( - Chain_Control *the_chain -); - -/* - * _Chain_Insert_unprotected - * - * DESCRIPTION: - * - * This routine inserts the_node on a chain immediately following - * after_node. It does NOT disable interrupts to insure the atomicity - * of the extract operation. - * - */ - -STATIC INLINE void _Chain_Insert_unprotected( - Chain_Node *after_node, - Chain_Node *the_node -); - -/* - * _Chain_Insert - * - * DESCRIPTION: - * - * This routine inserts the_node on a chain immediately following - * after_node. It disables interrupts to insure the atomicity - * of the extract operation. - * - */ - -void _Chain_Insert( - Chain_Node *after_node, - Chain_Node *the_node -); - -/* - * _Chain_Append_unprotected - * - * DESCRIPTION: - * - * This routine appends the_node onto the end of the_chain. - * It does NOT disable interrupts to insure the atomicity of the - * append operation. - * - */ - -STATIC INLINE void _Chain_Append_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Append - * - * DESCRIPTION: - * - * This routine appends the_node onto the end of the_chain. - * It disables interrupts to insure the atomicity of the - * append operation. - * - */ - -void _Chain_Append( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Prepend_unprotected - * - * DESCRIPTION: - * - * This routine prepends the_node onto the front of the_chain. - * It does NOT disable interrupts to insure the atomicity of the - * prepend operation. - * - */ - -STATIC INLINE void _Chain_Prepend_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Prepend - * - * DESCRIPTION: - * - * This routine prepends the_node onto the front of the_chain. - * It disables interrupts to insure the atomicity of the - * prepend operation. - * - */ - -STATIC INLINE void _Chain_Prepend( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Head - * - * DESCRIPTION: - * - * This function returns a pointer to the first node on the chain. - * - */ - -STATIC INLINE Chain_Node *_Chain_Head( - Chain_Control *the_chain -); - -/* - * _Chain_Tail - * - * DESCRIPTION: - * - * This function returns a pointer to the last node on the chain. - * - */ - -STATIC INLINE Chain_Node *_Chain_Tail( - Chain_Control *the_chain -); - -/* - * _Chain_Is_head - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the head of the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_head( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Is_tail - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the tail of the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_tail( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Is_first - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the first node on a chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_first( - Chain_Node *the_node -); - -/* - * _Chain_Is_last - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the last node on a chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_last( - Chain_Node *the_node -); - -/* - * _Chain_Is_empty - * - * DESCRIPTION: - * - * This function returns TRUE if there a no nodes on the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_empty( - Chain_Control *the_chain -); - -/* - * _Chain_Has_only_one_node - * - * DESCRIPTION: - * - * This function returns TRUE if there is only one node on the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Has_only_one_node( - Chain_Control *the_chain -); - -/* - * _Chain_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_chain is NULL and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_null( - Chain_Control *the_chain -); - -/* - * _Chain_Is_null_node - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is NULL and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_null_node( - Chain_Node *the_node -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/context.h b/c/src/exec/score/include/rtems/score/context.h deleted file mode 100644 index 9b8ee92b04..0000000000 --- a/c/src/exec/score/include/rtems/score/context.h +++ /dev/null @@ -1,133 +0,0 @@ -/* context.h - * - * This include file contains all information about a context. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CONTEXT_h -#define __RTEMS_CONTEXT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following constant defines the number of bytes required - * to store a full floating point context. - */ - -#define CONTEXT_FP_SIZE CPU_CONTEXT_FP_SIZE - -/* - * The following variable is set to TRUE when a reschedule operation - * has determined that the processor should be taken away from the - * currently executing thread and given to the heir thread. - */ - -EXTERN boolean _Context_Switch_necessary; - -/* - * _Context_Initialize - * - * DESCRIPTION: - * - * This routine initializes THE_CONTEXT such that the stack - * pointer, interrupt level, and entry point are correct for the - * thread's initial state. - */ - -#define _Context_Initialize( _the_context, _stack, _size, _isr, _entry ) \ - _CPU_Context_Initialize( _the_context, _stack, _size, _isr, _entry ) - -/* - * _Context_Switch - * - * DESCRIPTION: - * - * This routine saves the current context into the EXECUTING - * context record and restores the context specified by HEIR. - */ - -#define _Context_Switch( _executing, _heir ) \ - _CPU_Context_switch( _executing, _heir ) - -/* - * _Context_Restart_self - * - * DESCRIPTION: - * - * This routine restarts the calling thread by restoring its initial - * stack pointer and returning to the thread's entry point. - */ - -#define _Context_Restart_self( _the_context ) \ - _CPU_Context_Restart_self( _the_context ) - -/* - * _Context_Fp_start - * - * DESCRIPTION: - * - * This function returns the starting address of the floating - * point context save area. It is assumed that the are reserved - * for the floating point save area is large enough. - */ - -#define _Context_Fp_start( _base, _offset ) \ - _CPU_Context_Fp_start( (_base), (_offset) ) - -/* - * _Context_Initialize_fp - * - * DESCRIPTION: - * - * This routine initializes the floating point context save - * area to contain an initial known state. - */ - -#define _Context_Initialize_fp( _fp_area ) \ - _CPU_Context_Initialize_fp( _fp_area ) - -/* - * _Context_Restore_fp - * - * DESCRIPTION: - * - * This routine restores the floating point context contained - * in the FP_CONTEXT area. It is assumed that the current - * floating point context has been saved by a previous invocation - * of SAVE_FP. - */ - -#define _Context_Restore_fp( _fp ) \ - _CPU_Context_restore_fp( _fp ) - -/* - * _Context_Save_fp - * - * DESCRIPTION: - * - * This routine saves the current floating point context - * in the FP_CONTEXT area. - */ - -#define _Context_Save_fp( _fp ) \ - _CPU_Context_save_fp( _fp ) - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/copyrt.h b/c/src/exec/score/include/rtems/score/copyrt.h deleted file mode 100644 index c711ba09b3..0000000000 --- a/c/src/exec/score/include/rtems/score/copyrt.h +++ /dev/null @@ -1,42 +0,0 @@ -/* copyrt.h - * - * This include file contains the copyright notice for RTEMS - * which is included in every binary copy of the executive. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_COPYRIGHT_h -#define __RTEMS_COPYRIGHT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef INIT - -const char _Copyright_Notice[] = -"COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.\n\ -On-Line Applications Research Corporation (OAR).\n\ -All rights assigned to U.S. Government, 1994.\n"; - -#else - -extern const char _Copyright_Notice[]; - -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/heap.h b/c/src/exec/score/include/rtems/score/heap.h deleted file mode 100644 index 9eb348a760..0000000000 --- a/c/src/exec/score/include/rtems/score/heap.h +++ /dev/null @@ -1,396 +0,0 @@ -/* heap.h - * - * This include file contains the information pertaining to the Heap - * Handler. A heap is a doubly linked list of variable size - * blocks which are allocated using the first fit method. Garbage - * collection is performed each time a block is returned to the heap by - * coalescing neighbor blocks. Control information for both allocated - * and unallocated blocks is contained in the heap space. A heap header - * contains control information for the heap. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_HEAP_h -#define __RTEMS_HEAP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Status codes for heap_extend - */ - -typedef enum { - HEAP_EXTEND_SUCCESSFUL, - HEAP_EXTEND_ERROR, - HEAP_EXTEND_NOT_IMPLEMENTED -} Heap_Extend_status; - -/* - * Constants used in the size/used field of each heap block to - * indicate when a block is free or in use. - */ - -#define HEAP_BLOCK_USED 1 /* indicates block is in use */ -#define HEAP_BLOCK_FREE 0 /* indicates block is free */ - -/* - * The size/used field value for the dummy front and back flags. - */ - -#define HEAP_DUMMY_FLAG (0 + HEAP_BLOCK_USED) - -/* - * The following constants reflect various requirements of the - * heap data structures which impact the management of a heap. - * - * NOTE: Because free block overhead is greater than used block - * overhead AND a portion of the allocated space is from - * the extra free block overhead, the absolute lower bound - * of the minimum fragment size is equal to the size of - * the free block overhead. - */ - -#define HEAP_OVERHEAD \ - (sizeof( unsigned32 ) * 2) /* size dummy first and last blocks */ -#define HEAP_BLOCK_USED_OVERHEAD \ - (sizeof( void * ) * 2) /* num bytes overhead in used block */ -#define HEAP_MINIMUM_SIZE \ - (HEAP_OVERHEAD + sizeof (Heap_Block)) - /* min number of bytes the user may */ - /* specify for the heap size */ - -/* - * The following defines the data structure used to manage - * individual blocks in a heap. When the block is allocated, the - * next and previous fields are not used by the Heap Handler - * and thus the address returned for the block starts at - * the address of the next field. - * - * NOTE: The next and previous pointers are only valid when the - * block is free. Caution must be exercised to insure that - * allocated blocks are large enough to contain them and - * that they are not accidentally overwritten when the - * block is actually allocated. - */ - -typedef struct Heap_Block_struct Heap_Block; - -struct Heap_Block_struct { - unsigned32 back_flag; /* size and status of prev block */ - unsigned32 front_flag; /* size and status of block */ - Heap_Block *next; /* pointer to next block */ - Heap_Block *previous; /* pointer to previous block */ -}; - -/* - * The following defines the control block used to manage each heap. - * - * NOTE: - * - * This structure is layed out such that it can be used a a dummy - * first and last block on the free block chain. The extra padding - * insures the dummy last block is the correct size. - * - * The first Heap_Block starts at first while the second starts at - * final. This is effectively the same trick as is used in the Chain - * Handler. - */ - -typedef struct { - Heap_Block *start; /* first valid block address in heap */ - Heap_Block *final; /* last valid block address in heap */ - - Heap_Block *first; /* pointer to first block in heap */ - Heap_Block *permanent_null; /* always NULL pointer */ - Heap_Block *last; /* pointer to last block in heap */ - unsigned32 page_size; /* allocation unit */ - unsigned32 reserved; -} Heap_Control; - -/* - * _Heap_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_heap record to manage the - * contiguous heap of size bytes which starts at starting_address. - * Blocks of memory are allocated from the heap in multiples of - * page_size byte units. - */ - -unsigned32 _Heap_Initialize( - Heap_Control *the_heap, - void *starting_address, - unsigned32 size, - unsigned32 page_size -); - -/* - * _Heap_Extend - * - * DESCRIPTION: - * - * This routine grows the_heap memory area using the size bytes which - * begin at starting_address. - */ - -Heap_Extend_status _Heap_Extend( - Heap_Control *the_heap, - void *starting_address, - unsigned32 size, - unsigned32 *amount_extended -); - -/* - * _Heap_Allocate - * - * DESCRIPTION: - * - * DESCRIPTION: - * - * This function attempts to allocate a block of size bytes from - * the_heap. If insufficient memory is free in the_heap to allocate - * a block of the requested size, then NULL is returned. - */ - -void *_Heap_Allocate( - Heap_Control *the_heap, - unsigned32 size -); - -/* - * _Heap_Size_of_user_area - * - * DESCRIPTION: - * - * This kernel routine sets size to the size of the given heap block. - * It returns TRUE if the starting_address is in the heap, and FALSE - * otherwise. - */ - -boolean _Heap_Size_of_user_area( - Heap_Control *the_heap, - void *starting_address, - unsigned32 *size -); - -/* - * _Heap_Free - * - * DESCRIPTION: - * - * This routine returns the block of memory which begins - * at starting_address to the_heap. Any coalescing which is - * possible with the freeing of this routine is performed. - */ - -boolean _Heap_Free( - Heap_Control *the_heap, - void *start_address -); - -/* - * _Heap_Walk - * - * DESCRIPTION: - * - * This routine walks the heap to verify its integrity. - */ - -void _Heap_Walk( - Heap_Control *the_heap, - int source, - boolean do_dump -); - -/* - * _Heap_Head - * - * DESCRIPTION: - * - * This function returns the head of the specified heap. - */ - -STATIC INLINE Heap_Block *_Heap_Head ( - Heap_Control *the_heap -); - -/* - * _Heap_Tail - * - * DESCRIPTION: - * - * This function returns the tail of the specified heap. - */ - -STATIC INLINE Heap_Block *_Heap_Tail ( - Heap_Control *the_heap -); - -/* - * _Heap_Previous_block - * - * DESCRIPTION: - * - * This function returns the address of the block which physically - * precedes the_block in memory. - */ - -STATIC INLINE Heap_Block *_Heap_Previous_block ( - Heap_Block *the_block -); - -/* - * _Heap_Next_block - * - * DESCRIPTION: - * - * This function returns the address of the block which physically - * follows the_block in memory. - */ - -STATIC INLINE Heap_Block *_Heap_Next_block ( - Heap_Block *the_block -); - -/* - * _Heap_Block_at - * - * DESCRIPTION: - * - * This function calculates and returns a block's location (address) - * in the heap based upad a base address and an offset. - */ - -STATIC INLINE Heap_Block *_Heap_Block_at( - void *base, - unsigned32 offset -); - -/* - * _Heap_Is_previous_block_free - * - * DESCRIPTION: - * - * This function returns TRUE if the previous block of the_block - * is free, and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_previous_block_free ( - Heap_Block *the_block -); - -/* - * _Heap_Is_block_free - * - * DESCRIPTION: - * - * This function returns TRUE if the block is free, and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_block_free ( - Heap_Block *the_block -); - -/* - * _Heap_Is_block_used - * - * DESCRIPTION: - * - * This function returns TRUE if the block is currently allocated, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_block_used ( - Heap_Block *the_block -); - -/* - * _Heap_Block_size - * - * DESCRIPTION: - * - * This function returns the size of the_block in bytes. - */ - -STATIC INLINE unsigned32 _Heap_Block_size ( - Heap_Block *the_block -); - -/* - * _Heap_Start_of_user_area - * - * DESCRIPTION: - * - * This function returns the starting address of the portion of the block - * which the user may access. - */ - -STATIC INLINE void *_Heap_Start_of_user_area ( - Heap_Block *the_block -); - -/* - * _Heap_Is_block_in - * - * DESCRIPTION: - * - * This function returns TRUE if the_block is within the memory area - * managed by the_heap, and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_block_in ( - Heap_Control *the_heap, - Heap_Block *the_block -); - - -/* - * _Heap_Is_page_size_valid - * - * DESCRIPTION: - * - * This function validates a specified heap page size. If the page size - * is 0 or if lies outside a page size alignment boundary it is invalid - * and FALSE is returned. Otherwise, the page size is valid and TRUE is - * returned. - */ - -STATIC INLINE boolean _Heap_Is_page_size_valid( - unsigned32 page_size -); - -/* - * _Heap_Build_flag - * - * DESCRIPTION: - * - * This function returns the block flag composed of size and in_use_flag. - * The flag returned is suitable for use as a back or front flag in a - * heap block. - */ - -STATIC INLINE unsigned32 _Heap_Build_flag ( - unsigned32 size, - unsigned32 in_use_flag -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/isr.h b/c/src/exec/score/include/rtems/score/isr.h deleted file mode 100644 index 77c3f8663e..0000000000 --- a/c/src/exec/score/include/rtems/score/isr.h +++ /dev/null @@ -1,239 +0,0 @@ -/* isr.h - * - * This include file contains all the constants and structures associated - * with the management of processor interrupt levels. This handler - * supports interrupt critical sections, vectoring of user interrupt - * handlers, nesting of interrupts, and manipulating interrupt levels. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ISR_h -#define __RTEMS_ISR_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage - * the interrupt level portion of the status register. - */ - -typedef unsigned32 ISR_Level; - -/* - * The following type defines the control block used to manage - * the vectors. - */ - -typedef unsigned32 rtems_vector_number; - -/* - * Return type for ISR Handler - */ - -typedef void rtems_isr; - -/* - * Pointer to an ISR Handler - */ - -typedef rtems_isr ( *rtems_isr_entry )( - rtems_vector_number - ); -/* - * The following is TRUE if signals have been sent to the currently - * executing thread by an ISR handler. - */ - -EXTERN boolean _ISR_Signals_to_thread_executing; - -/* - * The following contains the interrupt service routine nest level. - * When this variable is zero, a thread is executing. - */ - -EXTERN unsigned32 _ISR_Nest_level; - -/* - * The following declares the RTEMS Vector Table. Application - * interrupt service routines are vectored by RTEMS via this table. - */ - -EXTERN rtems_isr_entry _ISR_Vector_table[CPU_INTERRUPT_NUMBER_OF_VECTORS]; - -/* - * _ISR_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _ISR_Handler_initialization ( void ); - -/* - * _ISR_Disable - * - * DESCRIPTION: - * - * This routine disables all interrupts so that a critical section - * of code can be executing without being interrupted. Upon return, - * the argument _level will contain the previous interrupt mask level. - */ - -#define _ISR_Disable( _level ) \ - _CPU_ISR_Disable( _level ) - -/* - * _ISR_Enable - * - * DESCRIPTION: - * - * This routine enables interrupts to the previous interrupt mask - * LEVEL. It is used at the end of a critical section of code to - * enable interrupts so they can be processed again. - */ - -#define _ISR_Enable( _level ) \ - _CPU_ISR_Enable( _level ) - -/* - * _ISR_Flash - * - * DESCRIPTION: - * - * This routine temporarily enables interrupts to the previous - * interrupt mask level and then disables all interrupts so that - * the caller can continue into the second part of a critical - * section. This routine is used to temporarily enable interrupts - * during a long critical section. It is used in long sections of - * critical code when a point is reached at which interrupts can - * be temporarily enabled. Deciding where to flash interrupts - * in a long critical section is often difficult and the point - * must be selected with care to insure that the critical section - * properly protects itself. - */ - -#define _ISR_Flash( _level ) \ - _CPU_ISR_Flash( _level ) - -/* - * _ISR_Is_in_progress - * - * DESCRIPTION: - * - * This function returns TRUE if the processor is currently servicing - * and interrupt and FALSE otherwise. A return value of TRUE indicates - * that the caller is an interrupt service routine, NOT a thread. The - * directives available to an interrupt service routine are restricted. - */ - -STATIC INLINE boolean _ISR_Is_in_progress( void ); - -/* - * _ISR_Install_vector - * - * DESCRIPTION: - * - * This routine installs new_handler as the interrupt service routine - * for the specified vector. The previous interrupt service routine is - * returned as old_handler. - */ - -#define _ISR_Install_vector( _vector, _new_handler, _old_handler ) \ - _CPU_ISR_install_vector( _vector, _new_handler, _old_handler ) - -/* - * _ISR_Set_level - * - * DESCRIPTION: - * - * This routine sets the current interrupt level to that specified - * by new_level. The new interrupt level is effective when the - * routine exits. - */ - -#define _ISR_Set_level( _new_level ) \ - _CPU_ISR_Set_level( _new_level ) - -/* - * _ISR_Is_vector_number_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the vector is a valid vector number - * for this processor and FALSE otherwise. - */ - -STATIC INLINE boolean _ISR_Is_vector_number_valid ( - rtems_vector_number vector -); - -/* - * _ISR_Is_valid_user_handler - * - * DESCRIPTION: - * - * This function returns TRUE if handler is the entry point of a valid - * use interrupt service routine and FALSE otherwise. - */ - -STATIC INLINE boolean _ISR_Is_valid_user_handler ( - void *handler -); - -/* - * _ISR_Handler - * - * DESCRIPTION: - * - * This routine is the RTEMS interrupt dispatcher. ALL interrupts - * are vectored to this routine so that minimal context can be saved - * and setup performed before the application's high-level language - * interrupt service routine is invoked. After the application's - * interrupt service routine returns control to this routine, it - * will determine if a thread dispatch is necessary. If so, it will - * insure that the necessary thread scheduling operations are - * performed when the outermost interrupt service routine exits. - * - * NOTE: Implemented in assembly language. - */ - -void _ISR_Handler( void ); - -/* - * _ISR_Dispatch - * - * DESCRIPTION: - * - * This routine provides a wrapper so that the routine - * _Thread_Dispatch can be invoked when a reschedule is necessary - * at the end of the outermost interrupt service routine. This - * wrapper is necessary to establish the processor context needed - * by _Thread_Dispatch and to save the processor context which is - * corrupted by _Thread_Dispatch. This context typically consists - * of registers which are not preserved across routine invocations. - * - * NOTE: Implemented in assembly language. - */ - -void _ISR_Dispatch( void ); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/mpci.h b/c/src/exec/score/include/rtems/score/mpci.h deleted file mode 100644 index ca06dd243b..0000000000 --- a/c/src/exec/score/include/rtems/score/mpci.h +++ /dev/null @@ -1,171 +0,0 @@ -/* mpci.h - * - * This include file contains all the constants and structures associated - * with the MPCI layer. It provides mechanisms to utilize packets. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MPCI_h -#define __RTEMS_MPCI_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include - -/* - * The following defines the node number used when a broadcast is desired. - */ - -#define MPCI_ALL_NODES 0 - -/* - * For packets associated with requests that don't already have a timeout, - * use the one specified by this MPCI driver. The value specified by - * the MPCI driver sets an upper limit on how long a remote request - * should take to complete. - */ - -#define MPCI_DEFAULT_TIMEOUT 0xFFFFFFFF - -/* - * _MPCI_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -void _MPCI_Handler_initialization ( void ); - -/* - * _MPCI_Initialization - * - * DESCRIPTION: - * - * This routine initializes the MPCI driver by - * invoking the user provided MPCI initialization callout. - */ - -void _MPCI_Initialization ( void ); - -/* - * _MPCI_Get_packet - * - * DESCRIPTION: - * - * This function obtains a packet by invoking the user provided - * MPCI get packet callout. - */ - -rtems_packet_prefix *_MPCI_Get_packet ( void ); - -/* - * _MPCI_Return_packet - * - * DESCRIPTION: - * - * This routine returns a packet by invoking the user provided - * MPCI return packet callout. - */ - -void _MPCI_Return_packet ( - rtems_packet_prefix *the_packet -); - -/* - * _MPCI_Send_process_packet - * - * DESCRIPTION: - * - * This routine sends a process packet by invoking the user provided - * MPCI send callout. - */ - -void _MPCI_Send_process_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -); - -/* - * _MPCI_Send_request_packet - * - * DESCRIPTION: - * - * This routine sends a request packet by invoking the user provided - * MPCI send callout. - */ - -rtems_status_code _MPCI_Send_request_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet, - States_Control extra_state -); - -/* - * _MPCI_Send_response_packet - * - * DESCRIPTION: - * - * This routine sends a response packet by invoking the user provided - * MPCI send callout. - */ - -void _MPCI_Send_response_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -); - -/* - * _MPCI_Receive_packet - * - * DESCRIPTION: - * - * This routine receives a packet by invoking the user provided - * MPCI receive callout. - */ - -rtems_packet_prefix *_MPCI_Receive_packet ( void ); - -/* - * _MPCI_Process_response - * - * DESCRIPTION: - * - * This routine obtains a packet by invoking the user provided - * MPCI get packet callout. - */ - -Thread_Control *_MPCI_Process_response ( - rtems_packet_prefix *the_packet -); - -/* - * The following thread queue is used to maintain a list of tasks - * which currently have outstanding remote requests. - */ - -EXTERN Thread_queue_Control _MPCI_Remote_blocked_threads; - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/mppkt.h b/c/src/exec/score/include/rtems/score/mppkt.h deleted file mode 100644 index e0cf6b1967..0000000000 --- a/c/src/exec/score/include/rtems/score/mppkt.h +++ /dev/null @@ -1,123 +0,0 @@ -/* mppkt.h - * - * This package is the specification for the Packet Handler. - * This handler defines the basic RTEMS packet and provides - * mechanisms to utilize packets based on this prefix. - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MP_PACKET_h -#define __RTEMS_MP_PACKET_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type defines the packet classes - * supported by RTEMS. - * - * NOTE: In general, each class corresponds to a manager - * which supports global operations. Each manager - * defines the set of supported operations. - */ - -typedef enum { - RTEMS_MP_PACKET_INTERNAL_THREADS = 0, - RTEMS_MP_PACKET_TASKS = 1, - RTEMS_MP_PACKET_MESSAGE_QUEUE = 2, - RTEMS_MP_PACKET_SEMAPHORE = 3, - RTEMS_MP_PACKET_PARTITION = 4, - RTEMS_MP_PACKET_REGION = 5, - RTEMS_MP_PACKET_EVENT = 6, - RTEMS_MP_PACKET_SIGNAL = 7 -} rtems_mp_packet_classes; - -#define MP_PACKET_CLASSES_FIRST RTEMS_MP_PACKET_INTERNAL_THREADS -#define MP_PACKET_CLASSES_LAST RTEMS_MP_PACKET_SIGNAL - -/* - * The following record contains the prefix for every packet - * passed between RTEMS nodes. - * - * NOTE: This structure is padded to insure that anything - * following it is on a 16 byte boundary. This is - * the most stringent structure alignment rule - * the RTEMS project has encountered yet (i960CA). - */ - -typedef struct { - rtems_mp_packet_classes the_class; - Objects_Id id; - Objects_Id source_tid; - rtems_task_priority source_priority; - rtems_status_code return_code; - unsigned32 length; - unsigned32 to_convert; - rtems_interval timeout; -} rtems_packet_prefix; - -/* - * An MPCI must support packets of at least this size. - */ - -#define RTEMS_MINIMUM_PACKET_SIZE 64 - -/* - * The following constant defines the number of unsigned32's - * in a packet which must be converted to native format in a - * heterogeneous system. In packets longer than - * RTEMS_MINIMUN_HETERO_CONVERSION unsigned32's, some of the "extra" data - * may a user message buffer which is not automatically endian swapped. - */ - -#define RTEMS_MINIMUN_HETERO_CONVERSION ( sizeof( rtems_packet_prefix ) / 4 ) - -/* - * _Mp_packet_Is_valid_packet_class - * - * DESCRIPTION: - * - * This function returns TRUE if the the_packet_class is valid, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Mp_packet_Is_valid_packet_class ( - rtems_mp_packet_classes the_packet_class -); - -/* - * _Mp_packet_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the the_packet_class is null, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Mp_packet_Is_null ( - rtems_packet_prefix *the_packet -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/object.h b/c/src/exec/score/include/rtems/score/object.h deleted file mode 100644 index 50eede9fd7..0000000000 --- a/c/src/exec/score/include/rtems/score/object.h +++ /dev/null @@ -1,380 +0,0 @@ -/* object.h - * - * This include file contains all the constants and structures associated - * with the RTEMS Object Handler. This Handler provides mechanisms which - * can be used to initialize and manipulate all RTEMS objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_OBJECTS_h -#define __RTEMS_OBJECTS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the control block used to manage - * object names. - */ - -typedef unsigned32 Objects_Name; - -/* - * The following type defines the control block used to manage - * object IDs. - */ - -typedef unsigned32 Objects_Id; - -/* - * This enumerated type lists the locations which may be returned - * by _Objects_Get. These codes indicate the success of locating - * an object with the specified ID. - */ - -typedef enum { - OBJECTS_LOCAL = 0, /* object is local */ - OBJECTS_REMOTE = 1, /* object is remote */ - OBJECTS_ERROR = 2 /* id was invalid */ -} Objects_Locations; - -/* - * The following defines the Object Control Block used to manage - * each object local to this node. - */ - -typedef struct { - Chain_Node Node; - Objects_Id id; -} Objects_Control; - -/* - * The following defines the structure for the information used to - * manage each class of objects. - */ - -typedef struct { - Objects_Id minimum_id; /* minimum valid id of this type */ - Objects_Id maximum_id; /* maximum valid id of this type */ - unsigned32 maximum; /* maximum number of objects */ - Objects_Control **local_table; /* table of local object pointers */ - Objects_Name *name_table; /* table of local object names */ - Chain_Control *global_table; /* pointer to global table */ - Chain_Control Inactive; /* chain of inactive ctl blocks */ -} Objects_Information; - -/* - * The following defines the data storage which contains the - * node number of the local node. - */ - -EXTERN unsigned32 _Objects_Local_node; - -/* - * The following defines the constant which may be used - * with _Objects_Get to manipulate the calling task. - * - */ - -#define OBJECTS_ID_OF_SELF 0 - -/* - * The following define the constants which may be used in name searches. - */ - -#define RTEMS_SEARCH_ALL_NODES 0 -#define RTEMS_SEARCH_OTHER_NODES 0x7FFFFFFE -#define RTEMS_SEARCH_LOCAL_NODE 0x7FFFFFFF -#define RTEMS_WHO_AM_I 0 - -/* - * _Objects_Handler_initialization - * - * DESCRIPTION: - * - * This function performs the initialization necessary for this handler. - * - */ - -void _Objects_Handler_initialization( - unsigned32 node, - unsigned32 maximum_global_objects -); - -/* - * _Objects_Initialize_information - * - * DESCRIPTION: - * - * This function initializes an object class information record. - * SUPPORTS_GLOBAL is TRUE if the object class supports global - * objects, and FALSE otherwise. Maximum indicates the number - * of objects required in this class and size indicates the size - * in bytes of each control block for this object class. - * - */ - -void _Objects_Initialize_information ( - Objects_Information *information, - boolean supports_global, - unsigned32 maximum, - unsigned32 size -); - -/* - * _Objects_Name_to_id - * - * DESCRIPTION: - * - * This function implements the common portion of the object - * identification directives. This directive returns the object - * id associated with name. If more than one object of this class - * is named name, then the object to which the id belongs is - * arbitrary. Node indicates the extent of the search for the - * id of the object named name. If the object class supports global - * objects, then the search can be limited to a particular node - * or allowed to encompass all nodes. - * - */ - -rtems_status_code _Objects_Name_to_id( - Objects_Information *information, - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * _Objects_Get - * - * DESCRIPTION: - * - * This function maps object ids to object control blocks. - * If id corresponds to a local object, then it returns - * the_object control pointer which maps to id and location - * is set to OBJECTS_LOCAL. If the object class supports global - * objects and the object id is global and resides on a remote - * node, then location is set to OBJECTS_REMOTE, and the_object - * is undefined. Otherwise, location is set to OBJECTS_ERROR - * and the_object is undefined. - * - */ - -Objects_Control *_Objects_Get ( - Objects_Information *information, - Objects_Id id, - Objects_Locations *location -); - -/* - * _Objects_Is_name_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the name is valid, and FALSE otherwise. - */ - -STATIC INLINE boolean _Objects_Is_name_valid ( - Objects_Name name -); - -/* - * rtems_build_name - * - * DESCRIPTION: - * - * This function returns an object name composed of the four characters - * C1, C2, C3, and C4. - * - * NOTE: - * - * This must be implemented as a macro for use in Configuration Tables. - * - */ - -#define rtems_build_name( _C1, _C2, _C3, _C4 ) \ - ( (_C1) << 24 | (_C2) << 16 | (_C3) << 8 | (_C4) ) - -/* - * rtems_name_to_characters - * - * DESCRIPTION: - * - * This function breaks the object name into the four component - * characters C1, C2, C3, and C4. - * - */ - -STATIC INLINE void rtems_name_to_characters( - Objects_Name name, - char *c1, - char *c2, - char *c3, - char *c4 -); - -/* - * _Objects_Build_id - * - * DESCRIPTION: - * - * This function builds an object's id from the processor node and index - * values specified. - * - */ - -STATIC INLINE Objects_Id _Objects_Build_id( - unsigned32 node, - unsigned32 index -); - -/* - * rtems_get_node - * - * DESCRIPTION: - * - * This function returns the node portion of the ID. - * - */ - -STATIC INLINE unsigned32 rtems_get_node( - Objects_Id id -); - -/* - * rtems_get_index - * - * DESCRIPTION: - * - * This function returns the index portion of the ID. - * - */ - -STATIC INLINE unsigned32 rtems_get_index( - Objects_Id id -); - -/* - * _Objects_Is_local_node - * - * DESCRIPTION: - * - * This function returns TRUE if the node is of the local object, and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Objects_Is_local_node( - unsigned32 node -); - -/* - * _Objects_Is_local_id - * - * DESCRIPTION: - * - * This function returns TRUE if the id is of a local object, and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Objects_Is_local_id( - Objects_Id id -); - -/* - * _Objects_Are_ids_equal - * - * DESCRIPTION: - * - * This function returns TRUE if left and right are equal, - * and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Objects_Are_ids_equal( - Objects_Id left, - Objects_Id right -); - -/* - * _Objects_Allocate - * - * DESCRIPTION: - * - * This function allocates a object control block from - * the inactive chain of free object control blocks. - * - */ - -STATIC INLINE Objects_Control *_Objects_Allocate( - Objects_Information *information -); - -/* - * _Objects_Free - * - * DESCRIPTION: - * - * This function frees a object control block to the - * inactive chain of free object control blocks. - * - */ - -STATIC INLINE void _Objects_Free( - Objects_Information *information, - Objects_Control *the_object -); - -/* - * _Objects_Open - * - * DESCRIPTION: - * - * This function places the_object control pointer and object name - * in the Local Pointer and Local Name Tables, respectively. - * - */ - -STATIC INLINE void _Objects_Open( - Objects_Information *information, - Objects_Control *the_object, - Objects_Name name -); - -/* - * _Objects_Close - * - * DESCRIPTION: - * - * This function removes the_object control pointer and object name - * in the Local Pointer and Local Name Tables. - * - */ - -STATIC INLINE void _Objects_Close( - Objects_Information *information, - Objects_Control *the_object -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/objectmp.h b/c/src/exec/score/include/rtems/score/objectmp.h deleted file mode 100644 index 0d29fda753..0000000000 --- a/c/src/exec/score/include/rtems/score/objectmp.h +++ /dev/null @@ -1,165 +0,0 @@ -/* objectmp.h - * - * This include file contains all the constants and structures associated - * with the manipulation of Global RTEMS Objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_OBJECTS_MP_h -#define __RTEMS_OBJECTS_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This defines the Global Object Control Block used to manage - * objects resident on other nodes. - */ - -typedef struct { - Objects_Control Object; - Objects_Name name; -} Objects_MP_Control; - -/* - * _Objects_MP_Handler_initialization - * - * DESCRIPTION: - * - * This routine intializes the inactive global object chain - * based on the maximum number of global objects configured. - */ - -void _Objects_MP_Handler_initialization ( - unsigned32 maximum_global_objects -); - -/* - * _Objects_MP_Allocate_global_object - * - * DESCRIPTION: - * - * This function allocates a Global Object control block. - */ - -STATIC INLINE Objects_MP_Control *_Objects_MP_Allocate_global_object ( - void -); - -/* - * _Objects_MP_Free_global_object - * - * DESCRIPTION: - * - * This routine deallocates a Global Object control block. - */ - -STATIC INLINE void _Objects_MP_Free_global_object ( - Objects_MP_Control *the_object -); - -/* - * _Objects_MP_Is_null_global_object - * - * DESCRIPTION: - * - * This function returns whether the global object is NULL or not. - */ - -STATIC INLINE boolean _Objects_MP_Is_null_global_object ( - Objects_MP_Control *the_object -); - -/* - * _Objects_MP_Open - * - * DESCRIPTION: - * - * This routine allocates a global object control block - * and places it in the specified information table. If the - * allocation fails, then is_fatal_error determines the - * error processing actions taken. - */ - -boolean _Objects_MP_Open ( - Objects_Information *information, - Objects_Name the_name, - Objects_Id the_id, - boolean is_fatal_error -); - -/* - * _Objects_MP_Close - * - * DESCRIPTION: - * - * This routine removes a global object from the specified - * information table and deallocates the global object control block. - */ - -void _Objects_MP_Close ( - Objects_Information *information, - Objects_Id the_id -); - -/* - * _Objects_MP_Global_name_search - * - * DESCRIPTION: - * - * This routine looks for the object with the_name in the global - * object tables indicated by information. It returns the ID of the - * object with that name if one is found. - */ - -rtems_status_code _Objects_MP_Global_name_search ( - Objects_Information *information, - Objects_Name the_name, - unsigned32 nodes_to_search, - Objects_Id *the_id -); - -/* - * _Objects_MP_Is_remote - * - * DESCRIPTION: - * - * This function searches the Global Object Table managed - * by information for the object indicated by ID. If the object - * is found, then location is set to objects_remote, otherwise - * location is set to objects_error. In both cases, the_object - * is undefined. - */ - -void _Objects_MP_Is_remote ( - Objects_Information *information, - Objects_Id the_id, - Objects_Locations *location, - Objects_Control **the_object -); - -/* - * The following chain header is used to manage the set of - * inactive global object control blocks. - */ - -EXTERN Chain_Control _Objects_MP_Inactive_global_objects; - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/priority.h b/c/src/exec/score/include/rtems/score/priority.h deleted file mode 100644 index 823611b080..0000000000 --- a/c/src/exec/score/include/rtems/score/priority.h +++ /dev/null @@ -1,195 +0,0 @@ -/* priority.h - * - * This include file contains all thread priority manipulation routines. - * This Handler provides mechanisms which can be used to - * initialize and manipulate RTEMS priorities. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_PRIORITY_h -#define __RTEMS_PRIORITY_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage - * thread priorities. - * - * NOTE: Priority 0 is reserved for internal threads only. - */ - -typedef unsigned32 rtems_task_priority; - -#define RTEMS_MINIMUM_PRIORITY 1 /* highest thread priority */ -#define RTEMS_MAXIMUM_PRIORITY 255 /* lowest thread priority */ - -/* - * The following record defines the information associated with - * each thread to manage its interaction with the priority bit maps. - */ - -typedef struct { - Priority_Bit_map_control *minor; /* addr of minor bit map slot */ - Priority_Bit_map_control ready_major; /* priority bit map ready mask */ - Priority_Bit_map_control ready_minor; /* priority bit map ready mask */ - Priority_Bit_map_control block_major; /* priority bit map block mask */ - Priority_Bit_map_control block_minor; /* priority bit map block mask */ -} Priority_Information; - -/* - * The following data items are the priority bit map. - * Each of the sixteen bits used in the _Priority_Major_bit_map is - * associated with one of the sixteen entries in the _Priority_Bit_map. - * Each bit in the _Priority_Bit_map indicates whether or not there are - * threads ready at a particular priority. The mapping of - * individual priority levels to particular bits is processor - * dependent as is the value of each bit used to indicate that - * threads are ready at that priority. - */ - -EXTERN volatile Priority_Bit_map_control _Priority_Major_bit_map; -EXTERN Priority_Bit_map_control _Priority_Bit_map[16] CPU_STRUCTURE_ALIGNMENT; - -/* - * The following constants are useful when manipulating priority. - */ - -#define RTEMS_CURRENT_PRIORITY 0 /* obtain current priority */ - -/* - * The definition of the Priority_Bit_map_control type is CPU dependent. - * - */ - -/* - * _Priority_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _Priority_Handler_initialization( void ); - -/* - * _Priority_Is_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the_priority if valid for a - * user task, and FALSE otherwise. - */ - -STATIC INLINE boolean _Priority_Is_valid ( - rtems_task_priority the_priority -); - -/* - * _Priority_Major - * - * DESCRIPTION: - * - * This function returns the major portion of the_priority. - */ - -STATIC INLINE unsigned32 _Priority_Major ( - rtems_task_priority the_priority -); - -/* - * _Priority_Minor - * - * DESCRIPTION: - * - * This function returns the minor portion of the_priority. - */ - -STATIC INLINE unsigned32 _Priority_Minor ( - rtems_task_priority the_priority -); - -/* - * _Priority_Add_to_bit_map - * - * DESCRIPTION: - * - * This routine uses the_priority_map to update the priority - * bit maps to indicate that a thread has been readied. - */ - -STATIC INLINE void _Priority_Add_to_bit_map ( - Priority_Information *the_priority_map -); - -/* - * _Priority_Remove_from_bit_map - * - * DESCRIPTION: - * - * This routine uses the_priority_map to update the priority - * bit maps to indicate that a thread has been removed from the - * ready state. - */ - -STATIC INLINE void _Priority_Remove_from_bit_map ( - Priority_Information *the_priority_map -); - -/* - * _Priority_Get_highest - * - * DESCRIPTION: - * - * This function returns the priority of the highest priority - * ready thread. - */ - -STATIC INLINE rtems_task_priority _Priority_Get_highest( void ); - -/* - * _Priority_Initialize_information - * - * DESCRIPTION: - * - * This routine initializes the_priority_map so that it - * contains the information necessary to manage a thread - * at new_priority. - */ - -STATIC INLINE void _Priority_Initialize_information( - Priority_Information *the_priority_map, - rtems_task_priority new_priority -); - -/* - * _Priority_Is_group_empty - * - * DESCRIPTION: - * - * This function returns TRUE if the priority GROUP is empty, and - * FALSE otherwise. - */ - -STATIC INLINE boolean _Priority_Is_group_empty ( - rtems_task_priority the_priority -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/stack.h b/c/src/exec/score/include/rtems/score/stack.h deleted file mode 100644 index a0fce1ef04..0000000000 --- a/c/src/exec/score/include/rtems/score/stack.h +++ /dev/null @@ -1,95 +0,0 @@ -/* stack.h - * - * This include file contains all information about the thread - * Stack Handler. This Handler provides mechanisms which can be used to - * initialize and utilize stacks. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_STACK_h -#define __RTEMS_STACK_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following constant defines the minimum stack size which every - * thread must exceed. - */ - -#define RTEMS_MINIMUM_STACK_SIZE CPU_STACK_MINIMUM_SIZE - -/* - * The following defines the control block used to manage each stack. - */ - -typedef struct { - unsigned32 size; /* stack size */ - void *area; /* low memory addr of stack */ -} Stack_Control; - -/* - * _Stack_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_stack record to indicate that - * size bytes of memory starting at starting_address have been - * reserved for a stack. - */ - -STATIC INLINE void _Stack_Initialize ( - Stack_Control *the_stack, - void *starting_address, - unsigned32 size -); - -/* - * _Stack_Is_enough - * - * DESCRIPTION: - * - * This function returns TRUE if size bytes is enough memory for - * a valid stack area on this processor, and FALSE otherwise. - */ - -STATIC INLINE boolean _Stack_Is_enough ( - unsigned32 size -); - -/* - * _Stack_Adjust_size - * - * DESCRIPTION: - * - * This function increases the stack size to insure that the thread - * has the desired amount of stack space after the initial stack - * pointer is determined based on alignment restrictions. - * - * NOTE: - * - * The amount of adjustment for alignment is CPU dependent. - */ - -STATIC INLINE unsigned32 _Stack_Adjust_size ( - unsigned32 size -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/states.h b/c/src/exec/score/include/rtems/score/states.h deleted file mode 100644 index 56f67ecc49..0000000000 --- a/c/src/exec/score/include/rtems/score/states.h +++ /dev/null @@ -1,337 +0,0 @@ -/* states.h - * - * This include file contains all RTEMS state information. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_STATES_h -#define __RTEMS_STATES_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage a - * thread's state. - */ - -typedef unsigned32 States_Control; - -/* - * The following constants define the individual states which may be - * be used to compose and manipulate a thread's state. - */ - -#define STATES_ALL_SET 0xffff /* all states */ -#define STATES_READY 0x0000 /* ready to run */ -#define STATES_DORMANT 0x0001 /* created but not started */ -#define STATES_SUSPENDED 0x0002 /* waiting to be resumed */ -#define STATES_TRANSIENT 0x0004 /* thread in transition */ -#define STATES_DELAYING 0x0008 /* wait for timeout */ -#define STATES_WAITING_FOR_BUFFER 0x0010 /* wait for partition buffer */ -#define STATES_WAITING_FOR_SEGMENT 0x0020 /* wait for region segment */ -#define STATES_WAITING_FOR_MESSAGE 0x0040 /* wait for message */ -#define STATES_WAITING_FOR_EVENT 0x0080 /* wait for event */ -#define STATES_WAITING_FOR_SEMAPHORE 0x0100 /* wait for semaphore */ -#define STATES_WAITING_FOR_TIME 0x0200 /* wait for specific TOD */ -#define STATES_WAITING_FOR_RPC_REPLY 0x0400 /* wait for rpc reply */ -#define STATES_WAITING_FOR_PERIOD 0x0800 /* rate monotonic delay */ - -#define STATES_LOCALLY_BLOCKED ( STATES_WAITING_FOR_BUFFER | \ - STATES_WAITING_FOR_SEGMENT | \ - STATES_WAITING_FOR_MESSAGE | \ - STATES_WAITING_FOR_SEMAPHORE ) - -#define STATES_WAITING_ON_THREAD_QUEUE \ - ( STATES_LOCALLY_BLOCKED | \ - STATES_WAITING_FOR_RPC_REPLY ) - -#define STATES_BLOCKED ( STATES_DELAYING | \ - STATES_WAITING_FOR_TIME | \ - STATES_WAITING_FOR_PERIOD | \ - STATES_WAITING_FOR_EVENT | \ - STATES_WAITING_ON_THREAD_QUEUE ) - -/* - * _States_Set - * - * DESCRIPTION: - * - * This function sets the given states_to_set into the current_state - * passed in. The result is returned to the user in current_state. - */ - -STATIC INLINE States_Control _States_Set ( - States_Control states_to_set, - States_Control current_state -); - -/* - * _States_Clear - * - * DESCRIPTION: - * - * This function clears the given states_to_clear into the current_state - * passed in. The result is returned to the user in current_state. - */ - -STATIC INLINE States_Control _States_Clear ( - States_Control states_to_clear, - States_Control current_state -); - -/* - * _States_Is_ready - * - * DESCRIPTION: - * - * This function returns TRUE if the_states indicates that the - * state is READY, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_ready ( - States_Control the_states -); - -/* - * _States_Is_only_dormant - * - * DESCRIPTION: - * - * This function returns TRUE if the DORMANT state is the ONLY state - * set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_only_dormant ( - States_Control the_states -); - -/* - * _States_Is_dormant - * - * DESCRIPTION: - * - * This function returns TRUE if the DORMANT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_dormant ( - States_Control the_states -); - -/* - * _States_Is_suspended - * - * DESCRIPTION: - * - * This function returns TRUE if the SUSPENDED state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_suspended ( - States_Control the_states -); - -/* - * _States_Is_Transient - * - * DESCRIPTION: - * - * This function returns TRUE if the TRANSIENT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_transient ( - States_Control the_states -); - -/* - * _States_Is_delaying - * - * DESCRIPTION: - * - * This function returns TRUE if the DELAYING state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_delaying ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_buffer - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_BUFFER state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_buffer ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_segment - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_SEGMENT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_segment ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_message - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_MESSAGE state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_message ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_event - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_EVENT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_event ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_semaphore - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_SEMAPHORE state - * is set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_semaphore ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_time - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_TIME state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_time ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_rpc_reply - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_TIME state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_rpc_reply ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_period - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_PERIOD state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_period ( - States_Control the_states -); - -/* - * _States_Is_locally_blocked - * - * DESCRIPTION: - * - * This function returns TRUE if one of the states which indicates - * that a task is blocked waiting for a local resource is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_locally_blocked ( - States_Control the_states -); - -/* - * _States_Is_waiting_on_thread_queue - * - * DESCRIPTION: - * - * This function returns TRUE if one of the states which indicates - * that a task is blocked waiting for a local resource is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_on_thread_queue ( - States_Control the_states -); - -/* - * _States_Is_blocked - * - * DESCRIPTION: - * - * This function returns TRUE if one of the states which indicates - * that a task is blocked is set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_blocked ( - States_Control the_states -); - -/* - * _States_Are_set - * - * DESCRIPTION: - * - * This function returns TRUE if any of the states in the mask - * are set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Are_set ( - States_Control the_states, - States_Control mask -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/sysstate.h b/c/src/exec/score/include/rtems/score/sysstate.h deleted file mode 100644 index 511a26cefc..0000000000 --- a/c/src/exec/score/include/rtems/score/sysstate.h +++ /dev/null @@ -1,143 +0,0 @@ -/* sysstates.h - * - * This include file contains information regarding the system state. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SYSTEM_STATE_h -#define __RTEMS_SYSTEM_STATE_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* types */ - -/* enumerated constants */ - -/* - * The following type defines the possible system states. - */ - -typedef enum { - SYSTEM_STATE_BEFORE_INITIALIZATION, /* start -> end of 1st init part */ - SYSTEM_STATE_BEFORE_MULTITASKING, /* end of 1st -> beginning of 2nd */ - SYSTEM_STATE_BEGIN_MULTITASKING, /* beginning of 2nd -> end of SYSI */ - SYSTEM_STATE_UP, /* normal operation */ - SYSTEM_STATE_FAILED /* fatal error occurred */ -} System_state_Codes; - -#define SYSTEM_STATE_CODES_FIRST SYSTEM_STATE_BEFORE_INITIALIZATION -#define SYSTEM_STATE_CODES_LAST SYSTEM_STATE_FAILED - -/* - * The following variable contains the current system state. - */ - -EXTERN System_state_Codes _System_state_Current; - -/* - * _System_state_Set - * - * DESCRIPTION: - * - * This routine sets the current system state to that specified by - * the called. - */ - -STATIC INLINE void _System_state_Set ( - System_state_Codes state -); - -/* - * _System_state_Get - * - * DESCRIPTION: - * - * This function returns the current system state. - */ - -STATIC INLINE System_state_Codes _System_state_Get ( void ); - -/* - * _System_state_Is_before_initialization - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "before initialization" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_before_initialization ( - System_state_Codes state -); - -/* - * _System_state_Is_before_multitasking - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "before multitasking" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_before_multitasking ( - System_state_Codes state -); - -/* - * _System_state_Is_begin_multitasking - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "begin multitasking" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_begin_multitasking ( - System_state_Codes state -); - -/* - * _System_state_Is_up - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "up" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_up ( - System_state_Codes state -); - -/* - * _System_state_Is_failed - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "failed" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_failed ( - System_state_Codes state -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/thread.h b/c/src/exec/score/include/rtems/score/thread.h deleted file mode 100644 index de07a721ef..0000000000 --- a/c/src/exec/score/include/rtems/score/thread.h +++ /dev/null @@ -1,721 +0,0 @@ -/* thread.h - * - * This include file contains all constants and structures associated - * with the thread control block. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_h -#define __RTEMS_THREAD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Notepads constants (indices into notepad array) - */ - -#define RTEMS_NOTEPAD_FIRST 0 /* lowest numbered notepad */ -#define RTEMS_NOTEPAD_0 0 /* notepad location 0 */ -#define RTEMS_NOTEPAD_1 1 /* notepad location 1 */ -#define RTEMS_NOTEPAD_2 2 /* notepad location 2 */ -#define RTEMS_NOTEPAD_3 3 /* notepad location 3 */ -#define RTEMS_NOTEPAD_4 4 /* notepad location 4 */ -#define RTEMS_NOTEPAD_5 5 /* notepad location 5 */ -#define RTEMS_NOTEPAD_6 6 /* notepad location 6 */ -#define RTEMS_NOTEPAD_7 7 /* notepad location 7 */ -#define RTEMS_NOTEPAD_8 8 /* notepad location 8 */ -#define RTEMS_NOTEPAD_9 9 /* notepad location 9 */ -#define RTEMS_NOTEPAD_10 10 /* notepad location 10 */ -#define RTEMS_NOTEPAD_11 11 /* notepad location 11 */ -#define RTEMS_NOTEPAD_12 12 /* notepad location 12 */ -#define RTEMS_NOTEPAD_13 13 /* notepad location 13 */ -#define RTEMS_NOTEPAD_14 14 /* notepad location 14 */ -#define RTEMS_NOTEPAD_15 15 /* notepad location 15 */ -#define RTEMS_NOTEPAD_LAST RTEMS_NOTEPAD_15 /* highest numbered notepad */ - -/* - * The following defines the "return type" of an RTEMS thread. - * - * NOTE: Keep both types for internal threads. - */ - -typedef void rtems_task; -typedef void Thread; - -/* - * The following defines the argument to an RTEMS thread. - */ - -typedef unsigned32 rtems_task_argument; -typedef unsigned32 Thread_Argument; - -/* - * The following defines the type for the entry point of an RTEMS thread. - */ - -typedef rtems_task ( *rtems_task_entry )( - rtems_task_argument - ); - -typedef Thread ( *Thread_Entry )( - Thread_Argument - ); - -/* - * The following structure contains the information which defines - * the starting state of a thread. - */ - -typedef struct { - Thread_Entry entry_point; /* starting thread address */ - unsigned32 initial_argument; /* initial argument */ - rtems_mode initial_modes; /* initial mode */ - rtems_task_priority initial_priority; /* initial priority */ - void *fp_context; /* initial FP context area address */ - Stack_Control Initial_stack; /* stack information */ -} Thread_Start_information; - -/* - * The following structure contains the information necessary to manage - * a thread which it is waiting for a resource. - */ - -typedef struct { - Objects_Id id; /* waiting on this object */ - rtems_option option_set; /* wait mode */ - union { - unsigned32 segment_size; /* size of segment requested */ - rtems_event_set event_condition; - } Extra; - void *return_argument; /* address of user return param */ - rtems_status_code return_code; /* status for thread awakened */ - Chain_Control Block2n; /* 2 - n priority blocked chain */ - Thread_queue_Control *queue; /* pointer to thread queue */ -} Thread_Wait_information; - -/* - * The following defines the control block used to manage - * each thread proxy. - * - * NOTE: It is critical that proxies and threads have identical - * memory images for the shared part. - */ - -typedef struct { - Objects_Control Object; - Objects_Name name; - States_Control current_state; - rtems_task_priority current_priority; - rtems_task_priority real_priority; - unsigned32 resource_count; - Thread_Wait_information Wait; - Watchdog_Control Timer; - rtems_packet_prefix *receive_packet; - /****************** end of common block ********************/ - Chain_Node Active; -} Thread_Proxy_control; - - -/* - * The following record defines the control block used - * to manage each thread. - * - * NOTE: It is critical that proxies and threads have identical - * memory images for the shared part. - */ - -typedef struct { - Objects_Control Object; - Objects_Name name; - States_Control current_state; - rtems_task_priority current_priority; - rtems_task_priority real_priority; - unsigned32 resource_count; - Thread_Wait_information Wait; - Watchdog_Control Timer; - rtems_packet_prefix *receive_packet; - /****************** end of common block ********************/ - Chain_Control *ready; - Priority_Information Priority_map; - rtems_event_set pending_events; - rtems_event_set events_out; - Thread_Start_information Start; - ASR_Information Signal; - rtems_mode current_modes; - rtems_attribute attribute_set; - Context_Control Registers; - void *fp_context; - unsigned32 Notepads[ 16 ]; - void *extension; -} Thread_Control; - -/* - * External API name for Thread_Control - */ - -typedef Thread_Control rtems_tcb; - -/* - * The following declares the dispatch critical section nesting - * counter which is used to prevent context switches at inopportune - * moments. - */ - -EXTERN unsigned32 _Thread_Dispatch_disable_level; - -/* - * The following data items are used to manage timeslicing. - */ - -EXTERN unsigned32 _Thread_Ticks_remaining_in_timeslice; -EXTERN unsigned32 _Thread_Ticks_per_timeslice; - -/* - * The following points to the array of FIFOs used to manage the - * set of ready threads. - */ - -EXTERN Chain_Control *_Thread_Ready_chain; - -/* - * The following points to the thread which is currently executing. - * This thread is implicitly manipulated by numerous directives. - */ - -EXTERN Thread_Control *_Thread_Executing; - -/* - * The following points to the highest priority ready thread - * in the system. Unless the current thread is RTEMS_NO_PREEMPT, - * then this thread will be context switched to when the next - * dispatch occurs. - */ - -EXTERN Thread_Control *_Thread_Heir; - -/* - * The following points to the thread whose floating point - * context is currently loaded. - */ - -EXTERN Thread_Control *_Thread_Allocated_fp; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Thread_Information; - -/* - * The following context area contains the context of the "thread" - * which invoked rtems_initialize_executive. This context is restored - * as the last action of the rtems_shutdown_executive directive. Thus - * control of the processor can be returned to the environment - * which initiated RTEMS. - */ - -EXTERN Context_Control _Thread_BSP_context; - -/* - * _Thread_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -void _Thread_Handler_initialization ( - unsigned32 maximum_tasks, - unsigned32 ticks_per_timeslice, - unsigned32 maximum_proxies -); - -/* - * _Thread_Start_multitasking - * - * DESCRIPTION: - * - * This routine initiates multitasking. It is invoked only as - * part of initialization and its invocation is the last act of - * the rtems_initialize_executive directive. - */ - -void _Thread_Start_multitasking ( - Thread_Control *system_thread, - Thread_Control *idle_thread -); - -/* - * _Thread_Stop_multitasking - * - * DESCRIPTION: - * - * This routine halts multitasking and returns control to - * the "thread" which initially invoked the rtems_initialize_executive - * directive. - */ - -STATIC INLINE void _Thread_Stop_multitasking( void ); - -/* - * _Thread_Dispatch_initialization - * - * DESCRIPTION: - * - * This routine initializes the thread dispatching subsystem. - */ - -STATIC INLINE void _Thread_Dispatch_initialization( void ); - -/* - * _Thread_Dispatch - * - * DESCRIPTION: - * - * This routine is responsible for transferring control of the - * processor from the executing thread to the heir thread. As part - * of this process, it is responsible for the following actions: - * - * + saving the context of the executing thread - * + restoring the context of the heir thread - * + dispatching any signals for the resulting executing thread - */ - -void _Thread_Dispatch( void ); - -/* - * _Thread_Ready - * - * DESCRIPTION: - * - * This routine removes any set states for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -void _Thread_Ready( - Thread_Control *the_thread -); - -/* - * _Thread_Clear_state - * - * DESCRIPTION: - * - * This routine clears the indicated STATES for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -void _Thread_Clear_state( - Thread_Control *the_thread, - States_Control state -); - -/* - * _Thread_Set_state - * - * DESCRIPTION: - * - * This routine sets the indicated states for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - * - */ - -void _Thread_Set_state( - Thread_Control *the_thread, - States_Control state -); - -/* - * _Thread_Set_transient - * - * DESCRIPTION: - * - * This routine sets the TRANSIENT state for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -void _Thread_Set_transient( - Thread_Control *the_thread -); - -/* - * _Thread_Reset_timeslice - * - * DESCRIPTION: - * - * This routine is invoked upon expiration of the currently - * executing thread's timeslice. If no other thread's are ready - * at the priority of the currently executing thread, then the - * executing thread's timeslice is reset. Otherwise, the - * currently executing thread is placed at the rear of the - * RTEMS_FIFO for this priority and a new heir is selected. - */ - -void _Thread_Reset_timeslice( void ); - -/* - * _Thread_Tickle_timeslice - * - * DESCRIPTION: - * - * This routine is invoked as part of processing each clock tick. - * It is responsible for determining if the current thread allows - * timeslicing and, if so, when its timeslice expires. - */ - -void _Thread_Tickle_timeslice( void ); - -/* - * _Thread_Yield_processor - * - * DESCRIPTION: - * - * This routine is invoked when a thread wishes to voluntarily - * transfer control of the processor to another thread of equal - * or greater priority. - */ - -void _Thread_Yield_processor( void ); - -/* - * _Thread_Is_executing - * - * DESCRIPTION: - * - * This function returns TRUE if the_thread is the currently executing - * thread, and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_executing ( - Thread_Control *the_thread -); - -/* - * _Thread_Is_heir - * - * DESCRIPTION: - * - * This function returns TRUE if the_thread is the heir - * thread, and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_executing ( - Thread_Control *the_thread -); - -/* - * _Thread_Is_executing_also_the_heir - * - * DESCRIPTION: - * - * This function returns TRUE if the currently executing thread - * is also the heir thread, and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_executing_also_the_heir( void ); - -/* - * _Thread_Load_environment - * - * DESCRIPTION: - * - * This routine initializes the context of the_thread to its - * appropriate starting state. - */ - -void _Thread_Load_environment( - Thread_Control *the_thread -); - -/* - * _Thread_Handler - * - * DESCRIPTION: - * - * This routine is the wrapper function for all threads. It is - * the starting point for all threads. The user provided thread - * entry point is invoked by this routine. Operations - * which must be performed immediately before and after the user's - * thread executes are found here. - */ - -void _Thread_Handler( void ); - -/* - * _Thread_Delay_ended - * - * DESCRIPTION: - * - * This routine is invoked when a thread must be unblocked at the - * end of a delay such as the rtems_task_wake_after and rtems_task_wake_when - * directives. - */ - -void _Thread_Delay_ended( - Objects_Id id, - void *ignored -); - -/* - * _Thread_Change_priority - * - * DESCRIPTION: - * - * This routine changes the current priority of the_thread to - * new_priority. It performs any necessary scheduling operations - * including the selection of a new heir thread. - */ - -void _Thread_Change_priority ( - Thread_Control *the_thread, - rtems_task_priority new_priority -); - -/* - * _Thread_Set_priority - * - * DESCRIPTION: - * - * This routine updates the priority related fields in the_thread - * control block to indicate the current priority is now new_priority. - */ - -void _Thread_Set_priority( - Thread_Control *the_thread, - rtems_task_priority new_priority -); - -/* - * _Thread_Change_mode - * - * DESCRIPTION: - * - * This routine changes the current values of the modes - * indicated by mask of the calling thread are changed to that - * indicated in mode_set. The former mode of the thread is - * returned in mode_set. If the changes in the current mode - * indicate that a thread dispatch operation may be necessary, - * then need_dispatch is TRUE, otherwise it is FALSE. - */ - -boolean _Thread_Change_mode( - rtems_mode new_mode_set, - rtems_mode mask, - rtems_mode *old_mode_set -); - -/* - * _Thread_Resume - * - * DESCRIPTION: - * - * This routine clears the SUSPENDED state for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -STATIC INLINE void _Thread_Resume ( - Thread_Control *the_thread -); - -/* - * _Thread_Unblock - * - * DESCRIPTION: - * - * This routine clears any blocking state for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -STATIC INLINE void _Thread_Unblock ( - Thread_Control *the_thread -); - -/* - * _Thread_Restart_self - * - * DESCRIPTION: - * - * This routine resets the current context of the calling thread - * to that of its initial state. - */ - -STATIC INLINE void _Thread_Restart_self( void ); - -/* - * _Thread_Calculate_heir - * - * DESCRIPTION: - * - * This function returns a pointer to the highest priority - * ready thread. - */ - -STATIC INLINE void _Thread_Calculate_heir( void ); - -/* - * _Thread_Is_allocated_fp - * - * DESCRIPTION: - * - * This function returns TRUE if the floating point context of - * the_thread is currently loaded in the floating point unit, and - * FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_allocated_fp ( - Thread_Control *the_thread -); - -/* - * _Thread_Deallocate_fp - * - * DESCRIPTION: - * - * This routine is invoked when the currently loaded floating - * point context is now longer associated with an active thread. - */ - -STATIC INLINE void _Thread_Deallocate_fp( void ); - -/* - * _Thread_Disable_dispatch - * - * DESCRIPTION: - * - * This routine prevents dispatching. - */ - -STATIC INLINE void _Thread_Disable_dispatch( void ); - -/* - * _Thread_Enable_dispatch - * - * DESCRIPTION: - * - * This routine allows dispatching to occur again. If this is - * the outer most dispatching critical section, then a dispatching - * operation will be performed and, if necessary, control of the - * processor will be transferred to the heir thread. - */ - -#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE ) - -STATIC INLINE void _Thread_Enable_dispatch(); - -#endif - -#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE ) - -void _Thread_Enable_dispatch( void ); - -#endif - -/* - * _Thread_Unnest_dispatch - * - * DESCRIPTION: - * - * This routine allows dispatching to occur again. However, - * no dispatching operation is performed even if this is the outer - * most dispatching critical section. - */ - -STATIC INLINE void _Thread_Unnest_dispatch( void ); - -/* - * _Thread_Is_dispatching_enabled - * - * DESCRIPTION: - * - * This function returns TRUE if dispatching is disabled, and FALSE - * otherwise. - */ - -STATIC INLINE boolean _Thread_Is_dispatching_enabled( void ); - -/* - * _Thread_Is_context_switch_necessary - * - * DESCRIPTION: - * - * This function returns TRUE if dispatching is disabled, and FALSE - * otherwise. - */ - -STATIC INLINE boolean _Thread_Is_context_switch_necessary( void ); - -/* - * _Thread_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_thread is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_null ( - Thread_Control *the_thread -); - -/* - * _Thread_Get - * - * DESCRIPTION: - * - * This function maps thread IDs to thread control - * blocks. If ID corresponds to a local thread, then it - * returns the_thread control pointer which maps to ID - * and location is set to OBJECTS_LOCAL. If the thread ID is - * global and resides on a remote node, then location is set - * to OBJECTS_REMOTE, and the_thread is undefined. - * Otherwise, location is set to OBJECTS_ERROR and - * the_thread is undefined. - */ - -STATIC INLINE Thread_Control *_Thread_Get ( - Objects_Id id, - Objects_Locations *location -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/threadmp.h b/c/src/exec/score/include/rtems/score/threadmp.h deleted file mode 100644 index c6e8252030..0000000000 --- a/c/src/exec/score/include/rtems/score/threadmp.h +++ /dev/null @@ -1,134 +0,0 @@ -/* threadmp.h - * - * This include file contains the specification for all routines - * and data specific to the multiprocessing portion of the thread package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_MP_h -#define __RTEMS_THREAD_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * _Thread_MP_Handler_initialization - * - * DESCRIPTION: - * - * This package is the specification for the Thread Handler's - * multiprocessing specific support routines. - */ - -void _Thread_MP_Handler_initialization ( - unsigned32 maximum_proxies -); - -/* - * _Thread_MP_Is_receive - * - * DESCRIPTION: - * - * This function returns true if the thread in question is the - * multiprocessing receive thread. - */ - -STATIC INLINE boolean _Thread_MP_Is_receive ( - Thread_Control *the_thread -); - -/* - * _Thread_MP_Allocate_proxy - * - * DESCRIPTION: - * - * This allocates a proxy control block from - * the inactive chain of free proxy control blocks. - * - * NOTE: This function returns a thread control pointer - * because proxies are substitutes for remote threads. - */ - -Thread_Control *_Thread_MP_Allocate_proxy ( - States_Control the_state -); - -/* - * _Thread_MP_Free_proxy - * - * DESCRIPTION: - * - * This routine frees a proxy control block to the - * inactive chain of free proxy control blocks. - */ - -STATIC INLINE void _Thread_MP_Free_proxy ( - Thread_Control *the_thread -); - -/* - * _Thread_MP_Find_proxy - * - * DESCRIPTION: - * - * This function removes the proxy control block for the specified - * id from the active chain of proxy control blocks. - */ - -Thread_Control *_Thread_MP_Find_proxy ( - Objects_Id the_id -); - -/* - * _Thread_MP_Block - * - * DESCRIPTION: - * - * This routine blocks the MP Receive server thread. - */ - -void _Thread_MP_Block( void ); - -/* - * _Thread_MP_Ready - * - * DESCRIPTION: - * - * This routine readies the MP Receive server thread. - */ - -void _Thread_MP_Ready( void ); - -/* - * The following is used to determine when the multiprocessing receive - * thread is executing so that a proxy can be allocated instead of - * blocking the multiprocessing receive thread. - */ - -EXTERN Thread_Control *_Thread_MP_Receive; - -/* - * The following chains are used to manage proxies. - */ - -EXTERN Chain_Control _Thread_MP_Active_proxies; -EXTERN Chain_Control _Thread_MP_Inactive_proxies; - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/threadq.h b/c/src/exec/score/include/rtems/score/threadq.h deleted file mode 100644 index 291044ead1..0000000000 --- a/c/src/exec/score/include/rtems/score/threadq.h +++ /dev/null @@ -1,264 +0,0 @@ -/* threadq.h - * - * This include file contains all the constants and structures associated - * with the manipulation of objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_QUEUE_h -#define __RTEMS_THREAD_QUEUE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#include -#include -#include - -/* - * The following type defines the callout used when a remote task - * is extracted from a local thread queue. - */ - -typedef void ( *Thread_queue_Flush_callout )( - Thread_Control * - ); - -/* - * _Thread_queue_Dequeue - * - * DESCRIPTION: - * - * This function returns a pointer to a thread waiting on - * the_thread_queue. The selection of this thread is based on - * the discipline of the_thread_queue. If no threads are waiting - * on the_thread_queue, then NULL is returned. - */ - -Thread_Control *_Thread_queue_Dequeue( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Enqueue - * - * DESCRIPTION: - * - * This routine enqueues the currently executing thread on - * the_thread_queue with an optional timeout. - */ - -void _Thread_queue_Enqueue( - Thread_queue_Control *the_thread_queue, - rtems_interval timeout -); - -/* - * _Thread_queue_Extract - * - * DESCRIPTION: - * - * This routine removes the_thread from the_thread_queue - * and cancels any timeouts associated with this blocking. - */ - -void _Thread_queue_Extract( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -); - -/* - * _Thread_queue_First - * - * DESCRIPTION: - * - * This function returns a pointer to the "first" thread - * on the_thread_queue. The "first" thread is selected - * based on the discipline of the_thread_queue. - */ - -Thread_Control *_Thread_queue_First( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Flush - * - * DESCRIPTION: - * - * This routine unblocks all threads blocked on the_thread_queue - * and cancels any associated timeouts. - */ - -void _Thread_queue_Flush( - Thread_queue_Control *the_thread_queue, - Thread_queue_Flush_callout remote_extract_callout -); - -/* - * _Thread_queue_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_thread_queue based on the - * discipline indicated in attribute_set. The state set on - * threads which block on the_thread_queue is state. - */ - -void _Thread_queue_Initialize( - Thread_queue_Control *the_thread_queue, - rtems_attribute attribute_set, - States_Control state -); - -/* - * _Thread_queue_Dequeue_priority - * - * DESCRIPTION: - * - * This function returns a pointer to the highest priority - * thread waiting on the_thread_queue. If no threads are waiting - * on the_thread_queue, then NULL is returned. - */ - -Thread_Control *_Thread_queue_Dequeue_priority( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Enqueue_priority - * - * DESCRIPTION: - * - * This routine enqueues the currently executing thread on - * the_thread_queue with an optional timeout using the - * priority discipline. - */ - -void _Thread_queue_Enqueue_priority( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread, - rtems_interval timeout -); - -/* - * _Thread_queue_Extract_priority - * - * DESCRIPTION: - * - * This routine removes the_thread from the_thread_queue - * and cancels any timeouts associated with this blocking. - */ - -void _Thread_queue_Extract_priority( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -); - -/* - * _Thread_queue_First_priority - * - * DESCRIPTION: - * - * This function returns a pointer to the "first" thread - * on the_thread_queue. The "first" thread is the highest - * priority thread waiting on the_thread_queue. - */ - -Thread_Control *_Thread_queue_First_priority( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Dequeue_FIFO - * - * DESCRIPTION: - * - * This function returns a pointer to the thread which has - * been waiting the longest on the_thread_queue. If no - * threads are waiting on the_thread_queue, then NULL is returned. - */ - -Thread_Control *_Thread_queue_Dequeue_fifo( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Enqueue_FIFO - * - * DESCRIPTION: - * - * This routine enqueues the currently executing thread on - * the_thread_queue with an optional timeout using the - * RTEMS_FIFO discipline. - */ - -void _Thread_queue_Enqueue_fifo( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread, - rtems_interval timeout -); - -/* - * _Thread_queue_Extract_FIFO - * - * DESCRIPTION: - * - * This routine removes the_thread from the_thread_queue - * and cancels any timeouts associated with this blocking. - */ - -void _Thread_queue_Extract_fifo( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -); - -/* - * _Thread_queue_First_FIFO - * - * DESCRIPTION: - * - * This function returns a pointer to the "first" thread - * on the_thread_queue. The first thread is the thread - * which has been waiting longest on the_thread_queue. - */ - -Thread_Control *_Thread_queue_First_fifo( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_timeout - * - * DESCRIPTION: - * - * This routine is invoked when a task's request has not - * been satisfied after the timeout interval specified to - * enqueue. The task represented by ID will be unblocked and - * its status code will be set in it's control block to indicate - * that a timeout has occurred. - */ - -void _Thread_queue_Timeout ( - Objects_Id id, - void *ignored -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/tod.h b/c/src/exec/score/include/rtems/score/tod.h deleted file mode 100644 index ae7e2b9747..0000000000 --- a/c/src/exec/score/include/rtems/score/tod.h +++ /dev/null @@ -1,300 +0,0 @@ -/* tod.h - * - * This include file contains all the constants and structures associated - * with the Time of Day Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TIME_OF_DAY_h -#define __RTEMS_TIME_OF_DAY_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following constants are related to the time of day. - */ - -#define TOD_SECONDS_PER_MINUTE 60 -#define TOD_MINUTES_PER_HOUR 60 -#define TOD_MONTHS_PER_YEAR 12 -#define TOD_DAYS_PER_YEAR 365 -#define TOD_HOURS_PER_DAY 24 -#define TOD_SECONDS_PER_DAY (TOD_SECONDS_PER_MINUTE * \ - TOD_MINUTES_PER_HOUR * \ - TOD_HOURS_PER_DAY) - -#define TOD_MICROSECONDS_PER_SECOND 1000000 -#define TOD_MILLISECONDS_PER_SECOND 1000 - -/* - * The following constant define the earliest year to which an - * RTEMS time of day can be initialized. This is considered the - * epoch. - */ - -#define TOD_BASE_YEAR 1988 - -/* - * The following record defines the time of control block. This - * control block is used to maintain the current time of day. - */ - -typedef struct { /* RTEID style time/date */ - unsigned32 year; /* year, A.D. */ - unsigned32 month; /* month, 1 -> 12 */ - unsigned32 day; /* day, 1 -> 31 */ - unsigned32 hour; /* hour, 0 -> 23 */ - unsigned32 minute; /* minute, 0 -> 59 */ - unsigned32 second; /* second, 0 -> 59 */ - unsigned32 ticks; /* elapsed ticks between secs */ -} rtems_time_of_day; - -/* - * The following contains the current time of day. - */ - -EXTERN rtems_time_of_day _TOD_Current; - -/* - * The following contains the number of seconds from 00:00:00 - * January 1, TOD_BASE_YEAR until the current time of day. - */ - -EXTERN rtems_interval _TOD_Seconds_since_epoch; - -/* - * The following contains the number of ticks since the - * system was booted. - */ - -EXTERN rtems_interval _TOD_Ticks_since_boot; - -/* - * The following contains the number of microseconds per tick. - */ - -EXTERN unsigned32 _TOD_Microseconds_per_tick; - -/* - * The following contains the number of clock ticks per second. - * - * NOTE: - * - * If one second is NOT evenly divisible by the number of microseconds - * per clock tick, this value will contain only the integer portion - * of the division. This means that the interval between clock ticks - * can be a source of error in the current time of day. - */ - -EXTERN unsigned32 _TOD_Ticks_per_second; - -/* - * This is the control structure for the watchdog timer which - * fires to service the seconds chain. - */ - -EXTERN Watchdog_Control _TOD_Seconds_watchdog; - -#ifdef INIT - -/* - * The following array contains the number of days in all months. - * The first dimension should be 1 for leap years, and 0 otherwise. - * The second dimension should range from 1 to 12 for January to - * February, respectively. - */ - -const unsigned32 _TOD_Days_per_month[ 2 ][ 13 ] = { - { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, - { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } -}; - -/* - * The following array contains the number of days in all months - * up to the month indicated by the index of the second dimension. - * The first dimension should be 1 for leap years, and 0 otherwise. - */ - -const unsigned16 _TOD_Days_to_date[2][13] = { - { 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }, - { 0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 } -}; - -/* - * The following array contains the number of days in the years - * since the last leap year. The index should be 0 for leap - * years, and the number of years since the beginning of a leap - * year otherwise. - */ - -const unsigned16 _TOD_Days_since_last_leap_year[4] = { 0, 366, 761, 1126 }; - -#else - -extern const unsigned16 _TOD_Days_to_date[2][13]; /* Julian days */ -extern const unsigned16 _TOD_Days_since_last_leap_year[4]; -extern const unsigned32 _TOD_Days_per_month[2][13]; - -#endif - -/* - * _TOD_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -void _TOD_Handler_initialization( - unsigned32 microseconds_per_tick -); - -/* - * _TOD_Set - * - * DESCRIPTION: - * - * This routine sets the current time of day to THE_TOD and - * the equivalent SECONDS_SINCE_EPOCH. - */ - -void _TOD_Set( - rtems_time_of_day *the_tod, - rtems_interval seconds_since_epoch -); - -/* - * _TOD_Validate - * - * DESCRIPTION: - * - * This function returns STATUS.RTEMS_SUCCESSFUL if THE_TOD contains - * a valid time of day, and FALSE otherwise. - */ - -rtems_status_code _TOD_Validate( - rtems_time_of_day *the_tod -); - -/* - * _TOD_To_seconds - * - * DESCRIPTION: - * - * This function returns the number seconds between the epoch and THE_TOD. - */ - -rtems_interval _TOD_To_seconds( - rtems_time_of_day *the_tod -); - -/* - * _TOD_Is_set - * - * DESCRIPTION: - * - * This function returns TRUE if the application has set the current - * time of day, and FALSE otherwise. - */ - -STATIC INLINE boolean _TOD_Is_set( void ); - -/* - * _TOD_Tickle_ticks - * - * DESCRIPTION: - * - * This routine increments the ticks field of the current time of - * day at each clock tick. - */ - -STATIC INLINE void _TOD_Tickle_ticks( void ); - -/* - * _TOD_Deactivate - * - * DESCRIPTION: - * - * This routine deactivates updating of the current time of day. - */ - -STATIC INLINE void _TOD_Deactivate( void ); - -/* - * _TOD_Activate - * - * DESCRIPTION: - * - * This routine deactivates updating of the current time of day. - */ - -STATIC INLINE void _TOD_Activate( - rtems_interval ticks -); - -/* - * _TOD_Tickle - * - * DESCRIPTION: - * - * This routine is scheduled as a watchdog function and is invoked at - * each second boundary. It updates the current time of day to indicate - * that a second has passed and processes the seconds watchdog chain. - */ - -void _TOD_Tickle( - Objects_Id id, - void *ignored -); - -/* - * RTEMS_MILLISECONDS_TO_MICROSECONDS - * - * DESCRIPTION: - * - * This routine converts an interval expressed in milliseconds to microseconds. - * - * NOTE: - * - * This must be a macro so it can be used in "static" tables. - */ - -#define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) ((_ms) * 1000) - -/* - * RTEMS_MILLISECONDS_TO_TICKS - * - * DESCRIPTION: - * - * This routine converts an interval expressed in milliseconds to ticks. - * - * NOTE: - * - * This must be a macro so it can be used in "static" tables. - */ - -#define RTEMS_MILLISECONDS_TO_TICKS(_ms) \ - (RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) / _TOD_Microseconds_per_tick) - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/tqdata.h b/c/src/exec/score/include/rtems/score/tqdata.h deleted file mode 100644 index 8c43fa4c72..0000000000 --- a/c/src/exec/score/include/rtems/score/tqdata.h +++ /dev/null @@ -1,90 +0,0 @@ -/* tqdata.h - * - * This include file contains all the constants and structures - * needed to declare a thread queue. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_QUEUE_DATA_h -#define __RTEMS_THREAD_QUEUE_DATA_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type details all of the disciplines - * supported by the Thread Queue Handler. - */ - -typedef enum { - THREAD_QUEUE_DATA_FIFO_DISCIPLINE, /* RTEMS_FIFO queue discipline */ - THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE, /* RTEMS_PRIORITY queue discipline */ -} Thread_queue_Disciplines; - -/* - * The following record defines the control block used - * to manage each thread. - */ - -#define TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS 4 /* # of pri groups */ - -typedef struct { - union { - Chain_Control Fifo; /* FIFO discipline list */ - Chain_Control Priority[TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS]; - /* priority discipline list */ - } Queues; - boolean sync; /* alloc/dealloc critical section */ - Thread_queue_Disciplines discipline; /* queue discipline */ - States_Control state; /* state of threads on Thread_q */ -} Thread_queue_Control; - -/* - * _Thread_queue_Header_number - * - * DESCRIPTION: - * - * This function returns the index of the priority chain on which - * a thread of the_priority should be placed. - */ - -STATIC INLINE unsigned32 _Thread_queue_Header_number ( - rtems_task_priority the_priority -); - -/* - * _Thread_queue_Is_reverse_search - * - * DESCRIPTION: - * - * This function returns TRUE if the_priority indicates that the - * enqueue search should start at the front of this priority - * group chain, and FALSE if the search should start at the rear. - */ - -STATIC INLINE boolean _Thread_queue_Is_reverse_search ( - rtems_task_priority the_priority -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/userext.h b/c/src/exec/score/include/rtems/score/userext.h deleted file mode 100644 index 37131959d9..0000000000 --- a/c/src/exec/score/include/rtems/score/userext.h +++ /dev/null @@ -1,213 +0,0 @@ -/* userext.h - * - * This include file contains all information about user extensions. This - * Handler provides mechanisms which can be used to initialize and manipulate - * all RTEMS user extensions. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_USER_EXTENSIONS_h -#define __RTEMS_USER_EXTENSIONS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following is used to manage each user extension set. - */ - -typedef struct { - Chain_Node Node; - rtems_extensions_table Callouts; -} User_extensions_Control; - -/* - * The following contains the static extension set which may be - * configured by the application. - */ - -EXTERN User_extensions_Control _User_extensions_Initial; - -/* - * The following is used to manage the list of active extensions. - */ - -EXTERN Chain_Control _User_extensions_List; - - -/* - * _User_extensions_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _User_extensions_Handler_initialization ( - rtems_extensions_table *initial_extensions -); - -/* - * _User_extensions_Add_set - * - * DESCRIPTION: - * - * This routine is used to add a user extension set to the active list. - */ - -STATIC INLINE void _User_extensions_Add_set ( - User_extensions_Control *the_extension, - rtems_extensions_table *extension_table -); - -/* - * _User_extensions_Remove_set - * - * DESCRIPTION: - * - * This routine is used to remove a user extension set from the active list. - */ - -STATIC INLINE void _User_extensions_Remove_set ( - User_extensions_Control *the_extension -); - -/* - * _User_extensions_Task_create - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_create directive. - */ - -STATIC INLINE void _User_extensions_Task_create ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_delete - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_delete directive. - */ - -STATIC INLINE void _User_extensions_Task_delete ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_start - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_start directive. - */ - -STATIC INLINE void _User_extensions_Task_start ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_restart - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_restart directive. - */ - -STATIC INLINE void _User_extensions_Task_restart ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_switch - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a context switch occurs. - */ - -STATIC INLINE void _User_extensions_Task_switch ( - Thread_Control *executing, - Thread_Control *heir -); - -/* - * _User_extensions_Task_begin - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a task begins. - */ - -STATIC INLINE void _User_extensions_Task_begin ( - Thread_Control *executing -); - -/* - * _User_extensions_Task_exitted - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a task exits. - */ - -STATIC INLINE void _User_extensions_Task_exitted ( - Thread_Control *executing -); - -/* - * _User_extensions_Task_exitted - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a task exits. - */ - -STATIC INLINE void _User_extensions_Task_exitted ( - Thread_Control *executing -); - -/* - * _User_extensions_Fatal - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_fatal_error_occurred directive. - */ - -STATIC INLINE void _User_extensions_Fatal ( - unsigned32 the_error -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/watchdog.h b/c/src/exec/score/include/rtems/score/watchdog.h deleted file mode 100644 index 5c897615f7..0000000000 --- a/c/src/exec/score/include/rtems/score/watchdog.h +++ /dev/null @@ -1,471 +0,0 @@ -/* watchdog.h - * - * This include file contains all the constants and structures associated - * with watchdog timers. This Handler provides mechanisms which can be - * used to initialize and manipulate watchdog timers. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_WATCHDOG_h -#define __RTEMS_WATCHDOG_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the control block used to manage - * intervals. - */ - -typedef unsigned32 rtems_interval; - -/* - * The following types define a pointer to a watchdog/timer service routine. - */ - -typedef void rtems_timer_service_routine; - -typedef rtems_timer_service_routine ( *rtems_timer_service_routine_entry )( - Objects_Id, - void * - ); - -/* - * Constant for indefinite wait. (actually an illegal interval) - */ - -#define RTEMS_NO_TIMEOUT 0 - -/* - * The following enumerated type details the modes in which the - * Watchdog_Insert routine may operate. The watchdog may be - * activated automatically at insert time or later, explicitly - * by the caller. - */ - -typedef enum { - WATCHDOG_ACTIVATE_NOW, /* activate watchdog as part of insertion */ - WATCHDOG_NO_ACTIVATE /* watchdog will be explicitly activated */ -} Watchdog_Insert_modes; - -/* - * The following enumerated type lists the states in which a - * watchdog timer may be at any given time. - */ - -typedef enum { - WATCHDOG_INACTIVE, /* off all chains */ - WATCHDOG_ACTIVE, /* on chain, allowed to fire */ - WATCHDOG_REINSERT, /* on chain, reset without firing if expires */ - WATCHDOG_REMOVE_IT /* on chain, remove without firing if expires */ -} Watchdog_States; - -/* - * The following enumerated type details the manner in which - * a watchdog chain may be adjusted by the Watchdog_Adjust - * routine. The direction indicates a movement FORWARD - * or BACKWARD in time. - */ - -typedef enum { - WATCHDOG_FORWARD, /* adjust delta value forward */ - WATCHDOG_BACKWARD /* adjust delta value backward */ -} Watchdog_Adjust_directions; - -/* - * The following record defines the control block used - * to manage each watchdog timer. - */ - -typedef struct { - Chain_Node Node; - Watchdog_States state; - rtems_interval initial; - rtems_interval delta_interval; - rtems_timer_service_routine_entry routine; - Objects_Id id; - void *user_data; -} Watchdog_Control; - -/* - * The following type is used for synchronization purposes - * during an insert on a watchdog delta chain. - * - * NOTE: Watchdog_Pointer is only used to insure that - * Watchdog_Synchronization_pointer is a pointer - * which is volatile rather than a pointer to a - * volatile block of memory. - */ - -typedef Watchdog_Control *Watchdog_Pointer; -typedef volatile Watchdog_Pointer Watchdog_Synchronization_pointer; - -/* - * The following defines the watchdog chains which are managed - * on ticks and second boundaries. - */ - -EXTERN Chain_Control _Watchdog_Ticks_chain; -EXTERN Chain_Control _Watchdog_Seconds_chain; - -/* - * The following defines the synchronization variable used to - * allow interrupts to be enabled while inserting a watchdog - * on a watchdog chain. - */ - -EXTERN Watchdog_Synchronization_pointer _Watchdog_Sync; - -/* - * _Watchdog_Handler_initialization - * - * DESCRIPTION: - * - * This routine initializes the watchdog handler. The watchdog - * synchronization flag is initialized and the watchdog chains are - * initialized and emptied. - */ - -void _Watchdog_Handler_initialization( void ); - -/* - * - * _Watchdog_Initialize - * - * DESCRIPTION: - * - * This routine initializes the specified watchdog. The watchdog is - * made inactive, the watchdog id and handler routine are set to the - * specified values. - */ - -STATIC INLINE void _Watchdog_Initialize( - Watchdog_Control *the_watchdog, - rtems_timer_service_routine_entry routine, - Objects_Id id, - void *user_data -); - -/* - * _Watchdog_Remove - * - * DESCRIPTION: - * - * This routine removes THE_WATCHDOG from the watchdog chain on which - * it resides and returns the state THE_WATCHDOG timer was in. - */ - -Watchdog_States _Watchdog_Remove ( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Is_active - * - * DESCRIPTION: - * - * This routine returns TRUE if the watchdog timer is in the ACTIVE - * state, and FALSE otherwise. - */ - -STATIC INLINE boolean _Watchdog_Is_active( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Activate - * - * DESCRIPTION: - * - * This routine activates THE_WATCHDOG timer which is already - * on a watchdog chain. - */ - -STATIC INLINE void _Watchdog_Activate( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Deactivate - * - * DESCRIPTION: - * - * This routine deactivates THE_WATCHDOG timer which will remain - * on a watchdog chain. - */ - -STATIC INLINE void _Watchdog_Deactivate( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Tickle_ticks - * - * DESCRIPTION: - * - * This routine is invoked at each clock tick to update the ticks - * watchdog chain. - */ - -STATIC INLINE void _Watchdog_Tickle_ticks( void ); - -/* - * - * _Watchdog_Tickle_seconds - * - * DESCRIPTION: - * - * This routine is invoked at each clock tick to update the seconds - * watchdog chain. - */ - -STATIC INLINE void _Watchdog_Tickle_seconds( void ); - -/* - * - * _Watchdog_Insert_ticks - * - * DESCRIPTION: - * - * This routine inserts THE_WATCHDOG into the ticks watchdog chain - * for a time of UNITS ticks. The INSERT_MODE indicates whether - * THE_WATCHDOG is to be activated automatically or later, explicitly - * by the caller. - */ - -STATIC INLINE void _Watchdog_Insert_ticks( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -); - -/* - * - * _Watchdog_Insert_seconds - * - * DESCRIPTION: - * - * This routine inserts THE_WATCHDOG into the seconds watchdog chain - * for a time of UNITS seconds. The INSERT_MODE indicates whether - * THE_WATCHDOG is to be activated automatically or later, explicitly - * by the caller. - */ - -STATIC INLINE void _Watchdog_Insert_seconds( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -); - -/* - * - * _Watchdog_Adjust_seconds - * - * DESCRIPTION: - * - * This routine adjusts the seconds watchdog chain in the forward - * or backward DIRECTION for UNITS seconds. This is invoked when the - * current time of day is changed. - */ - -STATIC INLINE void _Watchdog_Adjust_seconds( - Watchdog_Adjust_directions direction, - rtems_interval units -); - -/* - * - * _Watchdog_Adjust_ticks - * - * DESCRIPTION: - * - * This routine adjusts the ticks watchdog chain in the forward - * or backward DIRECTION for UNITS ticks. - */ - -STATIC INLINE void _Watchdog_Adjust_ticks( - Watchdog_Adjust_directions direction, - rtems_interval units -); - -/* - * - * _Watchdog_Reset - * - * DESCRIPTION: - * - * This routine resets THE_WATCHDOG timer to its state at INSERT - * time. This routine is valid only on interval watchdog timers - * and is used to make an interval watchdog timer fire "every" so - * many ticks. - */ - -STATIC INLINE void _Watchdog_Reset( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Next - * - * DESCRIPTION: - * - * This routine returns a pointer to the watchdog timer following - * THE_WATCHDOG on the watchdog chain. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Next( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Previous - * - * DESCRIPTION: - * - * This routine returns a pointer to the watchdog timer preceding - * THE_WATCHDOG on the watchdog chain. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Previous( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_First - * - * DESCRIPTION: - * - * This routine returns a pointer to the first watchdog timer - * on the watchdog chain HEADER. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_First( - Chain_Control *header -); - -/* - * - * _Watchdog_Last - * - * DESCRIPTION: - * - * This routine returns a pointer to the last watchdog timer - * on the watchdog chain HEADER. - */ -STATIC INLINE Watchdog_Control *_Watchdog_Last( - Chain_Control *header -); - -/* - * - * _Watchdog_Get_sync - * - * DESCRIPTION: - * - * This routine returns the current synchronization timer. This - * routine is used so that interrupts can be enabled while a - * watchdog timer is being inserted into a watchdog chain. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Get_sync( void ); - -/* - * - * _Watchdog_Set_sync - * - * DESCRIPTION: - * - * This routine sets the current synchronization timer. This - * routine is used so that interrupts can be enabled while a - * watchdog timer is being inserted into a watchdog chain. - */ - -STATIC INLINE void _Watchdog_Set_sync( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Clear_sync - * - * DESCRIPTION: - * - * This routine will set the watchdog synchronization flag to a - * NULL address indicating synchronization is unnecessary. - */ - -STATIC INLINE void _Watchdog_Clear_sync( void ); - -/* - * _Watchdog_Adjust - * - * DESCRIPTION: - * - * This routine adjusts the HEADER watchdog chain in the forward - * or backward DIRECTION for UNITS ticks. - */ - -void _Watchdog_Adjust ( - Chain_Control *header, - Watchdog_Adjust_directions direction, - rtems_interval units -); - -/* - * _Watchdog_Insert - * - * DESCRIPTION: - * - * This routine inserts THE_WATCHDOG into the HEADER watchdog chain - * for a time of UNITS. The INSERT_MODE indicates whether - * THE_WATCHDOG is to be activated automatically or later, explicitly - * by the caller. - * - */ - -void _Watchdog_Insert ( - Chain_Control *header, - Watchdog_Control *the_watchdog, - Watchdog_Insert_modes insert_mode -); - -/* - * _Watchdog_Tickle - * - * DESCRIPTION: - * - * This routine is invoked at appropriate intervals to update - * the HEADER watchdog chain. - */ - -void _Watchdog_Tickle ( - Chain_Control *header -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/wkspace.h b/c/src/exec/score/include/rtems/score/wkspace.h deleted file mode 100644 index 14bc090291..0000000000 --- a/c/src/exec/score/include/rtems/score/wkspace.h +++ /dev/null @@ -1,99 +0,0 @@ -/* wkspace.h - * - * This include file contains information related to the RTEMS - * RAM Workspace. This Handler provides mechanisms which can be used to - * define, initialize and manipulate the RTEMS workspace. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_WORKSPACE_h -#define __RTEMS_WORKSPACE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following is used to manage the RTEMS Workspace. - * - */ - -EXTERN Heap_Control _Workspace_Area; /* executive heap header */ - -/* - * _Workspace_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _Workspace_Handler_initialization( - void *starting_address, - unsigned32 size -); - -/* - * _Workspace_Allocate - * - * DESCRIPTION: - * - * This routine returns the address of a block of memory of size - * bytes. If a block of the appropriate size cannot be allocated - * from the workspace, then NULL is returned. - */ - -STATIC INLINE void *_Workspace_Allocate( - unsigned32 size -); - -/* - * _Workspace_Allocate_or_fatal_error - * - * DESCRIPTION: - * - * This routine returns the address of a block of memory of size - * bytes. If a block of the appropriate size cannot be allocated - * from the workspace, then the rtems_fatal_error_occurred directive - * is invoked. - */ - -STATIC INLINE void *_Workspace_Allocate_or_fatal_error( - unsigned32 size -); - -/* - * _Workspace_Free - * - * DESCRIPTION: - * - * This function frees the specified block of memory. If the block - * belongs to the Workspace and can be successfully freed, then - * TRUE is returned. Otherwise FALSE is returned. - */ - -STATIC INLINE boolean _Workspace_Free( - void *block -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/include/rtems/system.h b/c/src/exec/score/include/rtems/system.h deleted file mode 100644 index 3ff3772d11..0000000000 --- a/c/src/exec/score/include/rtems/system.h +++ /dev/null @@ -1,132 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the executive. This must be the first include file - * included in all internal RTEMS files. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SYSTEM_h -#define __RTEMS_SYSTEM_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following define the CPU Family and Model within the family - * - * NOTE: The string "REPLACE_THIS_WITH_USE_INLINE_OR_MACROS" is replaced - * with either "USE_INLINES" or "USE_MACROS" based upon the - * whether this target configuration uses the inline or - * macro implementations of the inlined RTEMS routines. - */ - - -#define REPLACE_THIS_WITH_USE_INLINE_OR_MACROS - -/* - * The following insures that all data is declared in the space - * of the Initialization Manager. It is referenced as "external" - * in every other file. - */ - -#ifdef INIT -#undef EXTERN -#define EXTERN -#else -#undef EXTERN -#define EXTERN extern -#endif - -/* - * The following (in conjunction with compiler arguments) are used - * to choose between the use of static inline functions and macro - * functions. The static inline implementation allows better - * type checking with no cost in code size or execution speed. - */ - -#ifdef USE_INLINES -#define STATIC static -#define INLINE __inline__ -#else -/* -#error Only the GNU C compiler is currently supported!!! -*/ -#define STATIC -#define INLINE -#endif - -/* - * Include a base set of files. - */ - -/* - * XXX: Eventually proc_ptr needs to disappear!!! - */ - -typedef void * proc_ptr; - -#include /* processor specific information */ -#include /* RTEMS status codes */ - -/* - * Define NULL - */ - -#ifndef NULL -#define NULL 0 /* NULL value */ -#endif - -/* - * Boolean constants - */ - -#if !defined( TRUE ) || (TRUE != 1) -#undef TRUE -#define TRUE (1) -#endif - -#if !defined( FALSE ) || (FALSE != 0) -#undef FALSE -#define FALSE (0) -#endif - -#define stringify( _x ) # _x - -/* - * The following is the extern for the RTEMS version string. - * The contents of this string are CPU specific. - */ - -extern const char _RTEMS_version[]; /* RTEMS version string */ -extern const char _Copyright_Notice[]; /* RTEMS copyright string */ - -/* - * The jump table of entry points into RTEMS directives. - */ - -#define NUMBER_OF_ENTRY_POINTS 79 -extern const void * _Entry_points[ NUMBER_OF_ENTRY_POINTS + 1 ]; - -/* - * The following defines the CPU dependent information table. - */ - -EXTERN rtems_cpu_table _CPU_Table; /* CPU dependent info */ - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/address.inl b/c/src/exec/score/inline/address.inl deleted file mode 100644 index f9189e625e..0000000000 --- a/c/src/exec/score/inline/address.inl +++ /dev/null @@ -1,109 +0,0 @@ -/* inline/address.inl - * - * This include file contains the bodies of the routines - * about addresses which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ADDRESSES_inl -#define __INLINE_ADDRESSES_inl - -/*PAGE - * - * _Addresses_Add_offset - * - */ - -STATIC INLINE void *_Addresses_Add_offset ( - void *base, - unsigned32 offset -) -{ - return (base + offset); -} - -/*PAGE - * - * _Addresses_Subtract_offset - * - */ - -STATIC INLINE void *_Addresses_Subtract_offset ( - void *base, - unsigned32 offset -) -{ - return (base - offset); -} - -/*PAGE - * - * _Addresses_Add - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -STATIC INLINE void *_Addresses_Add ( - void *left, - void *right -) -{ - return (left + (unsigned32)right); -} - -/*PAGE - * - * _Addresses_Subtract - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -STATIC INLINE unsigned32 _Addresses_Subtract ( - void *left, - void *right -) -{ - return (left - right); -} - -/*PAGE - * - * _Addresses_Is_aligned - * - */ - -STATIC INLINE boolean _Addresses_Is_aligned ( - void *address -) -{ - return ( ( (unsigned32)address % CPU_ALIGNMENT ) == 0 ); -} - -/*PAGE - * - * _Addresses_Is_in_range - * - */ - -STATIC INLINE boolean _Addresses_Is_in_range ( - void *address, - void *base, - void *limit -) -{ - return ( address >= base && address <= limit ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/chain.inl b/c/src/exec/score/inline/chain.inl deleted file mode 100644 index 63706544e4..0000000000 --- a/c/src/exec/score/inline/chain.inl +++ /dev/null @@ -1,292 +0,0 @@ -/* inline/chain.inl - * - * This include file contains the bodies of the routines which are - * associated with doubly linked chains and inlined. - * - * NOTE: The routines in this file are ordered from simple - * to complex. No other Chain Handler routine is referenced - * unless it has already been defined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_CHAIN_inl -#define __INLINE_CHAIN_inl - -/*PAGE - * - * _Chain_Are_nodes_equal - */ - -STATIC INLINE boolean _Chain_Are_nodes_equal( - Chain_Node *left, - Chain_Node *right -) -{ - return left == right; -} - -/*PAGE - * - * _Chain_Is_null - */ - -STATIC INLINE boolean _Chain_Is_null( - Chain_Control *the_chain -) -{ - return ( the_chain == NULL ); -} - -/*PAGE - * - * _Chain_Is_null_node - */ - -STATIC INLINE boolean _Chain_Is_null_node( - Chain_Node *the_node -) -{ - return ( the_node == NULL ); -} - -/*PAGE - * - * _Chain_Head - */ - -STATIC INLINE Chain_Node *_Chain_Head( - Chain_Control *the_chain -) -{ - return (Chain_Node *) the_chain; -} - -/*PAGE - * - * _Chain_Tail - */ - -STATIC INLINE Chain_Node *_Chain_Tail( - Chain_Control *the_chain -) -{ - return (Chain_Node *) &the_chain->permanent_null; -} - -/*PAGE - * - * _Chain_Is_empty - */ - -STATIC INLINE boolean _Chain_Is_empty( - Chain_Control *the_chain -) -{ - return ( the_chain->first == _Chain_Tail( the_chain ) ); -} - -/*PAGE - * - * _Chain_Is_first - */ - -STATIC INLINE boolean _Chain_Is_first( - Chain_Node *the_node -) -{ - return ( the_node->previous == NULL ); -} - -/*PAGE - * - * _Chain_Is_last - */ - -STATIC INLINE boolean _Chain_Is_last( - Chain_Node *the_node -) -{ - return ( the_node->next == NULL ); -} - -/*PAGE - * - * _Chain_Has_only_one_node - */ - -STATIC INLINE boolean _Chain_Has_only_one_node( - Chain_Control *the_chain -) -{ - return ( the_chain->first == the_chain->last ); -} - -/*PAGE - * - * _Chain_Is_head - */ - -STATIC INLINE boolean _Chain_Is_head( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - return ( the_node == _Chain_Head( the_chain ) ); -} - -/*PAGE - * - * _Chain_Is_tail - */ - -STATIC INLINE boolean _Chain_Is_tail( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - return ( the_node == _Chain_Tail( the_chain ) ); -} - -/*PAGE - * - * Chain_Initialize_empty - */ - -STATIC INLINE void _Chain_Initialize_empty( - Chain_Control *the_chain -) -{ - the_chain->first = _Chain_Tail( the_chain ); - the_chain->permanent_null = NULL; - the_chain->last = _Chain_Head( the_chain ); -} - -/*PAGE - * - * _Chain_Extract_unprotected - */ - -STATIC INLINE void _Chain_Extract_unprotected( - Chain_Node *the_node -) -{ - Chain_Node *next; - Chain_Node *previous; - - next = the_node->next; - previous = the_node->previous; - next->previous = previous; - previous->next = next; -} - -/*PAGE - * - * _Chain_Get_first_unprotected - */ - -STATIC INLINE Chain_Node *_Chain_Get_first_unprotected( - Chain_Control *the_chain -) -{ - Chain_Node *return_node; - Chain_Node *new_first; - - return_node = the_chain->first; - new_first = return_node->next; - the_chain->first = new_first; - new_first->previous = _Chain_Head( the_chain ); - - return return_node; -} - -/*PAGE - * - * Chain_Get_unprotected - */ - -STATIC INLINE Chain_Node *_Chain_Get_unprotected( - Chain_Control *the_chain -) -{ - if ( !_Chain_Is_empty( the_chain ) ) - return _Chain_Get_first_unprotected( the_chain ); - else - return NULL; -} - -/*PAGE - * - * _Chain_Insert_unprotected - */ - -STATIC INLINE void _Chain_Insert_unprotected( - Chain_Node *after_node, - Chain_Node *the_node -) -{ - Chain_Node *before_node; - - the_node->previous = after_node; - before_node = after_node->next; - after_node->next = the_node; - the_node->next = before_node; - before_node->previous = the_node; -} - -/*PAGE - * - * _Chain_Append_unprotected - */ - -STATIC INLINE void _Chain_Append_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - Chain_Node *old_last_node; - - the_node->next = _Chain_Tail( the_chain ); - old_last_node = the_chain->last; - the_chain->last = the_node; - old_last_node->next = the_node; - the_node->previous = old_last_node; -} - -/*PAGE - * - * _Chain_Prepend_unprotected - */ - -STATIC INLINE void _Chain_Prepend_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - _Chain_Insert_unprotected( _Chain_Head( the_chain ), the_node ); - -} - -/*PAGE - * - * _Chain_Prepend - */ - -STATIC INLINE void _Chain_Prepend( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - _Chain_Insert( _Chain_Head( the_chain ), the_node ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/heap.inl b/c/src/exec/score/inline/heap.inl deleted file mode 100644 index 58be9b02af..0000000000 --- a/c/src/exec/score/inline/heap.inl +++ /dev/null @@ -1,203 +0,0 @@ -/* heap.inl - * - * This file contains the static inline implementation of the inlined - * routines from the heap handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __HEAP_inl -#define __HEAP_inl - -#include - -/*PAGE - * - * _Heap_Head - * - */ - -STATIC INLINE Heap_Block *_Heap_Head ( - Heap_Control *the_heap -) -{ - return (Heap_Block *)&the_heap->start; -} - -/*PAGE - * - * _Heap_Tail - * - */ - -STATIC INLINE Heap_Block *_Heap_Tail ( - Heap_Control *the_heap -) -{ - return (Heap_Block *)&the_heap->final; -} - -/*PAGE - * - * _Heap_Previous_block - * - */ - -STATIC INLINE Heap_Block *_Heap_Previous_block ( - Heap_Block *the_block -) -{ - return (Heap_Block *) _Addresses_Subtract_offset( - (void *)the_block, - the_block->back_flag & ~ HEAP_BLOCK_USED - ); -} - -/*PAGE - * - * _Heap_Next_block - * - * NOTE: Next_block assumes that the block is free. - */ - -STATIC INLINE Heap_Block *_Heap_Next_block ( - Heap_Block *the_block -) -{ - return (Heap_Block *) _Addresses_Add_offset( - (void *)the_block, - the_block->front_flag & ~ HEAP_BLOCK_USED - ); -} - -/*PAGE - * - * _Heap_Block_at - * - */ - -STATIC INLINE Heap_Block *_Heap_Block_at( - void *base, - unsigned32 offset -) -{ - return (Heap_Block *) _Addresses_Add_offset( (void *)base, offset ); -} - -/*PAGE - * - * _Heap_Is_previous_block_free - * - */ - -STATIC INLINE boolean _Heap_Is_previous_block_free ( - Heap_Block *the_block -) -{ - return !(the_block->back_flag & HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Is_block_free - * - */ - -STATIC INLINE boolean _Heap_Is_block_free ( - Heap_Block *the_block -) -{ - return !(the_block->front_flag & HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Is_block_used - * - */ - -STATIC INLINE boolean _Heap_Is_block_used ( - Heap_Block *the_block -) -{ - return (the_block->front_flag & HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Block_size - * - */ - -STATIC INLINE unsigned32 _Heap_Block_size ( - Heap_Block *the_block -) -{ - return (the_block->front_flag & ~HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Start_of_user_area - * - */ - -STATIC INLINE void *_Heap_Start_of_user_area ( - Heap_Block *the_block -) -{ - return (void *) &the_block->next; -} - -/*PAGE - * - * _Heap_Is_block_in - * - */ - -STATIC INLINE boolean _Heap_Is_block_in ( - Heap_Control *the_heap, - Heap_Block *the_block -) -{ - return _Addresses_Is_in_range( the_block, the_heap->start, the_heap->final ); -} - -/*PAGE - * - * _Heap_Is_page_size_valid - * - */ - -STATIC INLINE boolean _Heap_Is_page_size_valid( - unsigned32 page_size -) -{ - return ((page_size != 0) && - ((page_size % CPU_HEAP_ALIGNMENT) == 0)); -} - -/*PAGE - * - * _Heap_Build_flag - * - */ - -STATIC INLINE unsigned32 _Heap_Build_flag ( - unsigned32 size, - unsigned32 in_use_flag -) -{ - return size | in_use_flag; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/isr.inl b/c/src/exec/score/inline/isr.inl deleted file mode 100644 index f44880c3b6..0000000000 --- a/c/src/exec/score/inline/isr.inl +++ /dev/null @@ -1,70 +0,0 @@ -/* isr.inl - * - * This include file contains the static implementation of all - * inlined routines in the Interrupt Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __ISR_inl -#define __ISR_inl - -/*PAGE - * - * _ISR_Handler_initialization - * - */ - -STATIC INLINE void _ISR_Handler_initialization ( void ) -{ - _ISR_Signals_to_thread_executing = FALSE; - _ISR_Nest_level = 0; -} - -/*PAGE - * - * _ISR_Is_in_progress - * - */ - -STATIC INLINE boolean _ISR_Is_in_progress( void ) -{ - return (_ISR_Nest_level != 0); -} - -/*PAGE - * - * _ISR_Is_vector_number_valid - * - */ - -STATIC INLINE boolean _ISR_Is_vector_number_valid ( - unsigned32 vector -) -{ - return ( vector < CPU_INTERRUPT_NUMBER_OF_VECTORS ); -} - -/*PAGE - * - * _ISR_Is_valid_user_handler - * - */ - -STATIC INLINE boolean _ISR_Is_valid_user_handler ( - void *handler -) -{ - return ( handler != NULL); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/mppkt.inl b/c/src/exec/score/inline/mppkt.inl deleted file mode 100644 index 22ec30a28c..0000000000 --- a/c/src/exec/score/inline/mppkt.inl +++ /dev/null @@ -1,49 +0,0 @@ -/* inline/mppkt.inl - * - * This package is the implementation of the Packet Handler - * routines which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_MP_PACKET_inl -#define __INLINE_MP_PACKET_inl - -/*PAGE - * - * _Mp_packet_Is_valid_packet_class - * - * NOTE: Check for lower bounds (MP_PACKET_CLASSES_FIRST ) is unnecessary - * because this enum starts at lower bound of zero. - */ - -STATIC INLINE boolean _Mp_packet_Is_valid_packet_class ( - rtems_mp_packet_classes the_packet_class -) -{ - return ( the_packet_class <= MP_PACKET_CLASSES_LAST ); -} - -/*PAGE - * - * _Mp_packet_Is_null - * - */ - -STATIC INLINE boolean _Mp_packet_Is_null ( - rtems_packet_prefix *the_packet -) -{ - return the_packet == NULL; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/object.inl b/c/src/exec/score/inline/object.inl deleted file mode 100644 index 9c2110077c..0000000000 --- a/c/src/exec/score/inline/object.inl +++ /dev/null @@ -1,198 +0,0 @@ -/* object.inl - * - * This include file contains the static inline implementation of all - * of the inlined routines in the Object Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OBJECTS_inl -#define __OBJECTS_inl - -/*PAGE - * - * _Objects_Is_name_valid - * - */ - -STATIC INLINE boolean _Objects_Is_name_valid ( - Objects_Name name -) -{ - return ( name != 0 ); -} - -/*PAGE - * - * rtems_name_to_characters - * - */ - -STATIC INLINE void rtems_name_to_characters( - Objects_Name name, - char *c1, - char *c2, - char *c3, - char *c4 -) -{ - *c1 = (name >> 24) & 0xff; - *c2 = (name >> 16) & 0xff; - *c3 = (name >> 8) & 0xff; - *c4 = name & 0xff; -} - -/*PAGE - * - * _Objects_Build_id - * - */ - -STATIC INLINE Objects_Id _Objects_Build_id( - unsigned32 node, - unsigned32 index -) -{ - return ( (node << 16) | index ); -} - -/*PAGE - * - * rtems_get_node - * - */ - -STATIC INLINE unsigned32 rtems_get_node( - Objects_Id id -) -{ - return (id >> 16); -} - -/*PAGE - * - * rtems_get_index - * - */ - -STATIC INLINE unsigned32 rtems_get_index( - Objects_Id id -) -{ - return (id &0xFFFF); -} - -/*PAGE - * - * _Objects_Is_local_node - * - */ - -STATIC INLINE boolean _Objects_Is_local_node( - unsigned32 node -) -{ - return ( node == _Objects_Local_node ); -} - -/*PAGE - * - * _Objects_Is_local_id - * - */ - -STATIC INLINE boolean _Objects_Is_local_id( - Objects_Id id -) -{ - return _Objects_Is_local_node( rtems_get_node(id) ); -} - -/*PAGE - * - * _Objects_Are_ids_equal - * - */ - -STATIC INLINE boolean _Objects_Are_ids_equal( - Objects_Id left, - Objects_Id right -) -{ - return ( left == right ); -} - -/*PAGE - * - * _Objects_Allocate - * - */ - -STATIC INLINE Objects_Control *_Objects_Allocate( - Objects_Information *information -) -{ - return (Objects_Control *) _Chain_Get( &information->Inactive ); -} - -/*PAGE - * - * _Objects_Free - * - */ - -STATIC INLINE void _Objects_Free( - Objects_Information *information, - Objects_Control *the_object -) -{ - _Chain_Append( &information->Inactive, &the_object->Node ); -} - -/*PAGE - * - * _Objects_Open - * - */ - -STATIC INLINE void _Objects_Open( - Objects_Information *information, - Objects_Control *the_object, - Objects_Name name -) -{ - unsigned32 index; - - index = rtems_get_index( the_object->id ); - information->local_table[ index ] = the_object; - information->name_table[ index ] = name; -} - -/*PAGE - * - * _Objects_Close - * - */ - -STATIC INLINE void _Objects_Close( - Objects_Information *information, - Objects_Control *the_object -) -{ - unsigned32 index; - - index = rtems_get_index( the_object->id ); - information->local_table[ index ] = NULL; - information->name_table[ index ] = 0; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/objectmp.inl b/c/src/exec/score/inline/objectmp.inl deleted file mode 100644 index e09a3df528..0000000000 --- a/c/src/exec/score/inline/objectmp.inl +++ /dev/null @@ -1,62 +0,0 @@ -/* inline/objectmp.inl - * - * This include file contains the bodies of all inlined routines - * which deal with global objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_MP_OBJECTS_inl -#define __INLINE_MP_OBJECTS_inl - -/*PAGE - * - * _Objects_MP_Allocate_global_object - * - */ - -STATIC INLINE Objects_MP_Control *_Objects_MP_Allocate_global_object ( - void -) -{ - return (Objects_MP_Control *) - _Chain_Get( &_Objects_MP_Inactive_global_objects ); -} - -/*PAGE - * _Objects_MP_Free_global_object - * - */ - -STATIC INLINE void _Objects_MP_Free_global_object ( - Objects_MP_Control *the_object -) -{ - _Chain_Append( - &_Objects_MP_Inactive_global_objects, - &the_object->Object.Node - ); -} - -/*PAGE - * _Objects_MP_Is_null_global_object - * - */ - -STATIC INLINE boolean _Objects_MP_Is_null_global_object ( - Objects_MP_Control *the_object -) -{ - return( the_object == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/priority.inl b/c/src/exec/score/inline/priority.inl deleted file mode 100644 index 9e7c159f65..0000000000 --- a/c/src/exec/score/inline/priority.inl +++ /dev/null @@ -1,168 +0,0 @@ -/* priority.inl - * - * This file contains the static inline implementation of all inlined - * routines in the Priority Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PRIORITY_inl -#define __PRIORITY_inl - -#include - -/*PAGE - * - * _Priority_Handler_initialization - * - */ - -STATIC INLINE void _Priority_Handler_initialization( void ) -{ - unsigned32 index; - - _Priority_Major_bit_map = 0; - for ( index=0 ; index <16 ; index++ ) - _Priority_Bit_map[ index ] = 0; -} - -/*PAGE - * - * _Priority_Is_valid - * - */ - -STATIC INLINE boolean _Priority_Is_valid ( - rtems_task_priority the_priority -) -{ - return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) && - ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) ); -} - -/*PAGE - * - * _Priority_Major - * - */ - -STATIC INLINE unsigned32 _Priority_Major ( - rtems_task_priority the_priority -) -{ - return ( the_priority / 16 ); -} - -/*PAGE - * - * _Priority_Minor - * - */ - -STATIC INLINE unsigned32 _Priority_Minor ( - rtems_task_priority the_priority -) -{ - return ( the_priority % 16 ); -} - -/*PAGE - * - * _Priority_Add_to_bit_map - * - */ - -STATIC INLINE void _Priority_Add_to_bit_map ( - Priority_Information *the_priority_map -) -{ - *the_priority_map->minor |= the_priority_map->ready_minor; - _Priority_Major_bit_map |= the_priority_map->ready_major; -} - -/*PAGE - * - * _Priority_Remove_from_bit_map - * - */ - -STATIC INLINE void _Priority_Remove_from_bit_map ( - Priority_Information *the_priority_map -) -{ - *the_priority_map->minor &= the_priority_map->block_minor; - if ( *the_priority_map->minor == 0 ) - _Priority_Major_bit_map &= the_priority_map->block_major; -} - -/*PAGE - * - * _Priority_Get_highest - * - */ - -STATIC INLINE rtems_task_priority _Priority_Get_highest( void ) -{ - Priority_Bit_map_control minor; - Priority_Bit_map_control major; - - _Bitfield_Find_first_bit( _Priority_Major_bit_map, major ); - _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); - - return (_CPU_Priority_Bits_index( major ) << 4) + - _CPU_Priority_Bits_index( minor ); -} - -/*PAGE - * - * _Priority_Initialize_information - * - */ - -STATIC INLINE void _Priority_Initialize_information( - Priority_Information *the_priority_map, - rtems_task_priority new_priority -) -{ - Priority_Bit_map_control major; - Priority_Bit_map_control minor; - Priority_Bit_map_control mask; - - major = _Priority_Major( new_priority ); - minor = _Priority_Minor( new_priority ); - - the_priority_map->minor = - &_Priority_Bit_map[ _CPU_Priority_Bits_index(major) ]; - - mask = _CPU_Priority_Mask( major ); - the_priority_map->ready_major = mask; - the_priority_map->block_major = ~mask; - - mask = _CPU_Priority_Mask( minor ); - the_priority_map->ready_minor = mask; - the_priority_map->block_minor = ~mask; -} - -/*PAGE - * - * _Priority_Is_group_empty - * - */ - -STATIC INLINE boolean _Priority_Is_group_empty ( - rtems_task_priority the_priority -) -{ - return the_priority == 0; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/address.inl b/c/src/exec/score/inline/rtems/score/address.inl deleted file mode 100644 index f9189e625e..0000000000 --- a/c/src/exec/score/inline/rtems/score/address.inl +++ /dev/null @@ -1,109 +0,0 @@ -/* inline/address.inl - * - * This include file contains the bodies of the routines - * about addresses which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ADDRESSES_inl -#define __INLINE_ADDRESSES_inl - -/*PAGE - * - * _Addresses_Add_offset - * - */ - -STATIC INLINE void *_Addresses_Add_offset ( - void *base, - unsigned32 offset -) -{ - return (base + offset); -} - -/*PAGE - * - * _Addresses_Subtract_offset - * - */ - -STATIC INLINE void *_Addresses_Subtract_offset ( - void *base, - unsigned32 offset -) -{ - return (base - offset); -} - -/*PAGE - * - * _Addresses_Add - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -STATIC INLINE void *_Addresses_Add ( - void *left, - void *right -) -{ - return (left + (unsigned32)right); -} - -/*PAGE - * - * _Addresses_Subtract - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -STATIC INLINE unsigned32 _Addresses_Subtract ( - void *left, - void *right -) -{ - return (left - right); -} - -/*PAGE - * - * _Addresses_Is_aligned - * - */ - -STATIC INLINE boolean _Addresses_Is_aligned ( - void *address -) -{ - return ( ( (unsigned32)address % CPU_ALIGNMENT ) == 0 ); -} - -/*PAGE - * - * _Addresses_Is_in_range - * - */ - -STATIC INLINE boolean _Addresses_Is_in_range ( - void *address, - void *base, - void *limit -) -{ - return ( address >= base && address <= limit ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/chain.inl b/c/src/exec/score/inline/rtems/score/chain.inl deleted file mode 100644 index 63706544e4..0000000000 --- a/c/src/exec/score/inline/rtems/score/chain.inl +++ /dev/null @@ -1,292 +0,0 @@ -/* inline/chain.inl - * - * This include file contains the bodies of the routines which are - * associated with doubly linked chains and inlined. - * - * NOTE: The routines in this file are ordered from simple - * to complex. No other Chain Handler routine is referenced - * unless it has already been defined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_CHAIN_inl -#define __INLINE_CHAIN_inl - -/*PAGE - * - * _Chain_Are_nodes_equal - */ - -STATIC INLINE boolean _Chain_Are_nodes_equal( - Chain_Node *left, - Chain_Node *right -) -{ - return left == right; -} - -/*PAGE - * - * _Chain_Is_null - */ - -STATIC INLINE boolean _Chain_Is_null( - Chain_Control *the_chain -) -{ - return ( the_chain == NULL ); -} - -/*PAGE - * - * _Chain_Is_null_node - */ - -STATIC INLINE boolean _Chain_Is_null_node( - Chain_Node *the_node -) -{ - return ( the_node == NULL ); -} - -/*PAGE - * - * _Chain_Head - */ - -STATIC INLINE Chain_Node *_Chain_Head( - Chain_Control *the_chain -) -{ - return (Chain_Node *) the_chain; -} - -/*PAGE - * - * _Chain_Tail - */ - -STATIC INLINE Chain_Node *_Chain_Tail( - Chain_Control *the_chain -) -{ - return (Chain_Node *) &the_chain->permanent_null; -} - -/*PAGE - * - * _Chain_Is_empty - */ - -STATIC INLINE boolean _Chain_Is_empty( - Chain_Control *the_chain -) -{ - return ( the_chain->first == _Chain_Tail( the_chain ) ); -} - -/*PAGE - * - * _Chain_Is_first - */ - -STATIC INLINE boolean _Chain_Is_first( - Chain_Node *the_node -) -{ - return ( the_node->previous == NULL ); -} - -/*PAGE - * - * _Chain_Is_last - */ - -STATIC INLINE boolean _Chain_Is_last( - Chain_Node *the_node -) -{ - return ( the_node->next == NULL ); -} - -/*PAGE - * - * _Chain_Has_only_one_node - */ - -STATIC INLINE boolean _Chain_Has_only_one_node( - Chain_Control *the_chain -) -{ - return ( the_chain->first == the_chain->last ); -} - -/*PAGE - * - * _Chain_Is_head - */ - -STATIC INLINE boolean _Chain_Is_head( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - return ( the_node == _Chain_Head( the_chain ) ); -} - -/*PAGE - * - * _Chain_Is_tail - */ - -STATIC INLINE boolean _Chain_Is_tail( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - return ( the_node == _Chain_Tail( the_chain ) ); -} - -/*PAGE - * - * Chain_Initialize_empty - */ - -STATIC INLINE void _Chain_Initialize_empty( - Chain_Control *the_chain -) -{ - the_chain->first = _Chain_Tail( the_chain ); - the_chain->permanent_null = NULL; - the_chain->last = _Chain_Head( the_chain ); -} - -/*PAGE - * - * _Chain_Extract_unprotected - */ - -STATIC INLINE void _Chain_Extract_unprotected( - Chain_Node *the_node -) -{ - Chain_Node *next; - Chain_Node *previous; - - next = the_node->next; - previous = the_node->previous; - next->previous = previous; - previous->next = next; -} - -/*PAGE - * - * _Chain_Get_first_unprotected - */ - -STATIC INLINE Chain_Node *_Chain_Get_first_unprotected( - Chain_Control *the_chain -) -{ - Chain_Node *return_node; - Chain_Node *new_first; - - return_node = the_chain->first; - new_first = return_node->next; - the_chain->first = new_first; - new_first->previous = _Chain_Head( the_chain ); - - return return_node; -} - -/*PAGE - * - * Chain_Get_unprotected - */ - -STATIC INLINE Chain_Node *_Chain_Get_unprotected( - Chain_Control *the_chain -) -{ - if ( !_Chain_Is_empty( the_chain ) ) - return _Chain_Get_first_unprotected( the_chain ); - else - return NULL; -} - -/*PAGE - * - * _Chain_Insert_unprotected - */ - -STATIC INLINE void _Chain_Insert_unprotected( - Chain_Node *after_node, - Chain_Node *the_node -) -{ - Chain_Node *before_node; - - the_node->previous = after_node; - before_node = after_node->next; - after_node->next = the_node; - the_node->next = before_node; - before_node->previous = the_node; -} - -/*PAGE - * - * _Chain_Append_unprotected - */ - -STATIC INLINE void _Chain_Append_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - Chain_Node *old_last_node; - - the_node->next = _Chain_Tail( the_chain ); - old_last_node = the_chain->last; - the_chain->last = the_node; - old_last_node->next = the_node; - the_node->previous = old_last_node; -} - -/*PAGE - * - * _Chain_Prepend_unprotected - */ - -STATIC INLINE void _Chain_Prepend_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - _Chain_Insert_unprotected( _Chain_Head( the_chain ), the_node ); - -} - -/*PAGE - * - * _Chain_Prepend - */ - -STATIC INLINE void _Chain_Prepend( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - _Chain_Insert( _Chain_Head( the_chain ), the_node ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/heap.inl b/c/src/exec/score/inline/rtems/score/heap.inl deleted file mode 100644 index 58be9b02af..0000000000 --- a/c/src/exec/score/inline/rtems/score/heap.inl +++ /dev/null @@ -1,203 +0,0 @@ -/* heap.inl - * - * This file contains the static inline implementation of the inlined - * routines from the heap handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __HEAP_inl -#define __HEAP_inl - -#include - -/*PAGE - * - * _Heap_Head - * - */ - -STATIC INLINE Heap_Block *_Heap_Head ( - Heap_Control *the_heap -) -{ - return (Heap_Block *)&the_heap->start; -} - -/*PAGE - * - * _Heap_Tail - * - */ - -STATIC INLINE Heap_Block *_Heap_Tail ( - Heap_Control *the_heap -) -{ - return (Heap_Block *)&the_heap->final; -} - -/*PAGE - * - * _Heap_Previous_block - * - */ - -STATIC INLINE Heap_Block *_Heap_Previous_block ( - Heap_Block *the_block -) -{ - return (Heap_Block *) _Addresses_Subtract_offset( - (void *)the_block, - the_block->back_flag & ~ HEAP_BLOCK_USED - ); -} - -/*PAGE - * - * _Heap_Next_block - * - * NOTE: Next_block assumes that the block is free. - */ - -STATIC INLINE Heap_Block *_Heap_Next_block ( - Heap_Block *the_block -) -{ - return (Heap_Block *) _Addresses_Add_offset( - (void *)the_block, - the_block->front_flag & ~ HEAP_BLOCK_USED - ); -} - -/*PAGE - * - * _Heap_Block_at - * - */ - -STATIC INLINE Heap_Block *_Heap_Block_at( - void *base, - unsigned32 offset -) -{ - return (Heap_Block *) _Addresses_Add_offset( (void *)base, offset ); -} - -/*PAGE - * - * _Heap_Is_previous_block_free - * - */ - -STATIC INLINE boolean _Heap_Is_previous_block_free ( - Heap_Block *the_block -) -{ - return !(the_block->back_flag & HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Is_block_free - * - */ - -STATIC INLINE boolean _Heap_Is_block_free ( - Heap_Block *the_block -) -{ - return !(the_block->front_flag & HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Is_block_used - * - */ - -STATIC INLINE boolean _Heap_Is_block_used ( - Heap_Block *the_block -) -{ - return (the_block->front_flag & HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Block_size - * - */ - -STATIC INLINE unsigned32 _Heap_Block_size ( - Heap_Block *the_block -) -{ - return (the_block->front_flag & ~HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Start_of_user_area - * - */ - -STATIC INLINE void *_Heap_Start_of_user_area ( - Heap_Block *the_block -) -{ - return (void *) &the_block->next; -} - -/*PAGE - * - * _Heap_Is_block_in - * - */ - -STATIC INLINE boolean _Heap_Is_block_in ( - Heap_Control *the_heap, - Heap_Block *the_block -) -{ - return _Addresses_Is_in_range( the_block, the_heap->start, the_heap->final ); -} - -/*PAGE - * - * _Heap_Is_page_size_valid - * - */ - -STATIC INLINE boolean _Heap_Is_page_size_valid( - unsigned32 page_size -) -{ - return ((page_size != 0) && - ((page_size % CPU_HEAP_ALIGNMENT) == 0)); -} - -/*PAGE - * - * _Heap_Build_flag - * - */ - -STATIC INLINE unsigned32 _Heap_Build_flag ( - unsigned32 size, - unsigned32 in_use_flag -) -{ - return size | in_use_flag; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/isr.inl b/c/src/exec/score/inline/rtems/score/isr.inl deleted file mode 100644 index f44880c3b6..0000000000 --- a/c/src/exec/score/inline/rtems/score/isr.inl +++ /dev/null @@ -1,70 +0,0 @@ -/* isr.inl - * - * This include file contains the static implementation of all - * inlined routines in the Interrupt Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __ISR_inl -#define __ISR_inl - -/*PAGE - * - * _ISR_Handler_initialization - * - */ - -STATIC INLINE void _ISR_Handler_initialization ( void ) -{ - _ISR_Signals_to_thread_executing = FALSE; - _ISR_Nest_level = 0; -} - -/*PAGE - * - * _ISR_Is_in_progress - * - */ - -STATIC INLINE boolean _ISR_Is_in_progress( void ) -{ - return (_ISR_Nest_level != 0); -} - -/*PAGE - * - * _ISR_Is_vector_number_valid - * - */ - -STATIC INLINE boolean _ISR_Is_vector_number_valid ( - unsigned32 vector -) -{ - return ( vector < CPU_INTERRUPT_NUMBER_OF_VECTORS ); -} - -/*PAGE - * - * _ISR_Is_valid_user_handler - * - */ - -STATIC INLINE boolean _ISR_Is_valid_user_handler ( - void *handler -) -{ - return ( handler != NULL); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/mppkt.inl b/c/src/exec/score/inline/rtems/score/mppkt.inl deleted file mode 100644 index 22ec30a28c..0000000000 --- a/c/src/exec/score/inline/rtems/score/mppkt.inl +++ /dev/null @@ -1,49 +0,0 @@ -/* inline/mppkt.inl - * - * This package is the implementation of the Packet Handler - * routines which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_MP_PACKET_inl -#define __INLINE_MP_PACKET_inl - -/*PAGE - * - * _Mp_packet_Is_valid_packet_class - * - * NOTE: Check for lower bounds (MP_PACKET_CLASSES_FIRST ) is unnecessary - * because this enum starts at lower bound of zero. - */ - -STATIC INLINE boolean _Mp_packet_Is_valid_packet_class ( - rtems_mp_packet_classes the_packet_class -) -{ - return ( the_packet_class <= MP_PACKET_CLASSES_LAST ); -} - -/*PAGE - * - * _Mp_packet_Is_null - * - */ - -STATIC INLINE boolean _Mp_packet_Is_null ( - rtems_packet_prefix *the_packet -) -{ - return the_packet == NULL; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/object.inl b/c/src/exec/score/inline/rtems/score/object.inl deleted file mode 100644 index 9c2110077c..0000000000 --- a/c/src/exec/score/inline/rtems/score/object.inl +++ /dev/null @@ -1,198 +0,0 @@ -/* object.inl - * - * This include file contains the static inline implementation of all - * of the inlined routines in the Object Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OBJECTS_inl -#define __OBJECTS_inl - -/*PAGE - * - * _Objects_Is_name_valid - * - */ - -STATIC INLINE boolean _Objects_Is_name_valid ( - Objects_Name name -) -{ - return ( name != 0 ); -} - -/*PAGE - * - * rtems_name_to_characters - * - */ - -STATIC INLINE void rtems_name_to_characters( - Objects_Name name, - char *c1, - char *c2, - char *c3, - char *c4 -) -{ - *c1 = (name >> 24) & 0xff; - *c2 = (name >> 16) & 0xff; - *c3 = (name >> 8) & 0xff; - *c4 = name & 0xff; -} - -/*PAGE - * - * _Objects_Build_id - * - */ - -STATIC INLINE Objects_Id _Objects_Build_id( - unsigned32 node, - unsigned32 index -) -{ - return ( (node << 16) | index ); -} - -/*PAGE - * - * rtems_get_node - * - */ - -STATIC INLINE unsigned32 rtems_get_node( - Objects_Id id -) -{ - return (id >> 16); -} - -/*PAGE - * - * rtems_get_index - * - */ - -STATIC INLINE unsigned32 rtems_get_index( - Objects_Id id -) -{ - return (id &0xFFFF); -} - -/*PAGE - * - * _Objects_Is_local_node - * - */ - -STATIC INLINE boolean _Objects_Is_local_node( - unsigned32 node -) -{ - return ( node == _Objects_Local_node ); -} - -/*PAGE - * - * _Objects_Is_local_id - * - */ - -STATIC INLINE boolean _Objects_Is_local_id( - Objects_Id id -) -{ - return _Objects_Is_local_node( rtems_get_node(id) ); -} - -/*PAGE - * - * _Objects_Are_ids_equal - * - */ - -STATIC INLINE boolean _Objects_Are_ids_equal( - Objects_Id left, - Objects_Id right -) -{ - return ( left == right ); -} - -/*PAGE - * - * _Objects_Allocate - * - */ - -STATIC INLINE Objects_Control *_Objects_Allocate( - Objects_Information *information -) -{ - return (Objects_Control *) _Chain_Get( &information->Inactive ); -} - -/*PAGE - * - * _Objects_Free - * - */ - -STATIC INLINE void _Objects_Free( - Objects_Information *information, - Objects_Control *the_object -) -{ - _Chain_Append( &information->Inactive, &the_object->Node ); -} - -/*PAGE - * - * _Objects_Open - * - */ - -STATIC INLINE void _Objects_Open( - Objects_Information *information, - Objects_Control *the_object, - Objects_Name name -) -{ - unsigned32 index; - - index = rtems_get_index( the_object->id ); - information->local_table[ index ] = the_object; - information->name_table[ index ] = name; -} - -/*PAGE - * - * _Objects_Close - * - */ - -STATIC INLINE void _Objects_Close( - Objects_Information *information, - Objects_Control *the_object -) -{ - unsigned32 index; - - index = rtems_get_index( the_object->id ); - information->local_table[ index ] = NULL; - information->name_table[ index ] = 0; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/objectmp.inl b/c/src/exec/score/inline/rtems/score/objectmp.inl deleted file mode 100644 index e09a3df528..0000000000 --- a/c/src/exec/score/inline/rtems/score/objectmp.inl +++ /dev/null @@ -1,62 +0,0 @@ -/* inline/objectmp.inl - * - * This include file contains the bodies of all inlined routines - * which deal with global objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_MP_OBJECTS_inl -#define __INLINE_MP_OBJECTS_inl - -/*PAGE - * - * _Objects_MP_Allocate_global_object - * - */ - -STATIC INLINE Objects_MP_Control *_Objects_MP_Allocate_global_object ( - void -) -{ - return (Objects_MP_Control *) - _Chain_Get( &_Objects_MP_Inactive_global_objects ); -} - -/*PAGE - * _Objects_MP_Free_global_object - * - */ - -STATIC INLINE void _Objects_MP_Free_global_object ( - Objects_MP_Control *the_object -) -{ - _Chain_Append( - &_Objects_MP_Inactive_global_objects, - &the_object->Object.Node - ); -} - -/*PAGE - * _Objects_MP_Is_null_global_object - * - */ - -STATIC INLINE boolean _Objects_MP_Is_null_global_object ( - Objects_MP_Control *the_object -) -{ - return( the_object == NULL ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/priority.inl b/c/src/exec/score/inline/rtems/score/priority.inl deleted file mode 100644 index 9e7c159f65..0000000000 --- a/c/src/exec/score/inline/rtems/score/priority.inl +++ /dev/null @@ -1,168 +0,0 @@ -/* priority.inl - * - * This file contains the static inline implementation of all inlined - * routines in the Priority Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PRIORITY_inl -#define __PRIORITY_inl - -#include - -/*PAGE - * - * _Priority_Handler_initialization - * - */ - -STATIC INLINE void _Priority_Handler_initialization( void ) -{ - unsigned32 index; - - _Priority_Major_bit_map = 0; - for ( index=0 ; index <16 ; index++ ) - _Priority_Bit_map[ index ] = 0; -} - -/*PAGE - * - * _Priority_Is_valid - * - */ - -STATIC INLINE boolean _Priority_Is_valid ( - rtems_task_priority the_priority -) -{ - return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) && - ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) ); -} - -/*PAGE - * - * _Priority_Major - * - */ - -STATIC INLINE unsigned32 _Priority_Major ( - rtems_task_priority the_priority -) -{ - return ( the_priority / 16 ); -} - -/*PAGE - * - * _Priority_Minor - * - */ - -STATIC INLINE unsigned32 _Priority_Minor ( - rtems_task_priority the_priority -) -{ - return ( the_priority % 16 ); -} - -/*PAGE - * - * _Priority_Add_to_bit_map - * - */ - -STATIC INLINE void _Priority_Add_to_bit_map ( - Priority_Information *the_priority_map -) -{ - *the_priority_map->minor |= the_priority_map->ready_minor; - _Priority_Major_bit_map |= the_priority_map->ready_major; -} - -/*PAGE - * - * _Priority_Remove_from_bit_map - * - */ - -STATIC INLINE void _Priority_Remove_from_bit_map ( - Priority_Information *the_priority_map -) -{ - *the_priority_map->minor &= the_priority_map->block_minor; - if ( *the_priority_map->minor == 0 ) - _Priority_Major_bit_map &= the_priority_map->block_major; -} - -/*PAGE - * - * _Priority_Get_highest - * - */ - -STATIC INLINE rtems_task_priority _Priority_Get_highest( void ) -{ - Priority_Bit_map_control minor; - Priority_Bit_map_control major; - - _Bitfield_Find_first_bit( _Priority_Major_bit_map, major ); - _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); - - return (_CPU_Priority_Bits_index( major ) << 4) + - _CPU_Priority_Bits_index( minor ); -} - -/*PAGE - * - * _Priority_Initialize_information - * - */ - -STATIC INLINE void _Priority_Initialize_information( - Priority_Information *the_priority_map, - rtems_task_priority new_priority -) -{ - Priority_Bit_map_control major; - Priority_Bit_map_control minor; - Priority_Bit_map_control mask; - - major = _Priority_Major( new_priority ); - minor = _Priority_Minor( new_priority ); - - the_priority_map->minor = - &_Priority_Bit_map[ _CPU_Priority_Bits_index(major) ]; - - mask = _CPU_Priority_Mask( major ); - the_priority_map->ready_major = mask; - the_priority_map->block_major = ~mask; - - mask = _CPU_Priority_Mask( minor ); - the_priority_map->ready_minor = mask; - the_priority_map->block_minor = ~mask; -} - -/*PAGE - * - * _Priority_Is_group_empty - * - */ - -STATIC INLINE boolean _Priority_Is_group_empty ( - rtems_task_priority the_priority -) -{ - return the_priority == 0; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/stack.inl b/c/src/exec/score/inline/rtems/score/stack.inl deleted file mode 100644 index 24a6d9d873..0000000000 --- a/c/src/exec/score/inline/rtems/score/stack.inl +++ /dev/null @@ -1,63 +0,0 @@ -/* stack.inl - * - * This file contains the static inline implementation of the inlined - * routines from the Stack Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STACK_inl -#define __STACK_inl - -/*PAGE - * - * _Stack_Initialize - * - */ - -STATIC INLINE void _Stack_Initialize ( - Stack_Control *the_stack, - void *starting_address, - unsigned32 size -) -{ - the_stack->area = starting_address; - the_stack->size = size; -} - -/*PAGE - * - * _Stack_Is_enough - * - */ - -STATIC INLINE boolean _Stack_Is_enough ( - unsigned32 size -) -{ - return ( size >= RTEMS_MINIMUM_STACK_SIZE ); -} - -/*PAGE - * - * _Stack_Adjust_size - * - */ - -STATIC INLINE unsigned32 _Stack_Adjust_size ( - unsigned32 size -) -{ - return size + CPU_STACK_ALIGNMENT; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/states.inl b/c/src/exec/score/inline/rtems/score/states.inl deleted file mode 100644 index 316f40e4eb..0000000000 --- a/c/src/exec/score/inline/rtems/score/states.inl +++ /dev/null @@ -1,285 +0,0 @@ -/* states.inl - * - * This file contains the macro implementation of the inlined - * routines associated with RTEMS state information. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STATES_inl -#define __STATES_inl - -/*PAGE - * - * _States_Set - * - */ - -STATIC INLINE States_Control _States_Set ( - States_Control states_to_set, - States_Control current_state -) -{ - return (current_state | states_to_set); -} - -/*PAGE - * - * _States_Clear - * - */ - -STATIC INLINE States_Control _States_Clear ( - States_Control states_to_clear, - States_Control current_state -) -{ - return (current_state & ~states_to_clear); -} - -/*PAGE - * - * _States_Is_ready - * - */ - -STATIC INLINE boolean _States_Is_ready ( - States_Control the_states -) -{ - return (the_states == STATES_READY); -} - -/*PAGE - * - * _States_Is_only_dormant - * - */ - -STATIC INLINE boolean _States_Is_only_dormant ( - States_Control the_states -) -{ - return (the_states == STATES_DORMANT); -} - -/*PAGE - * - * _States_Is_dormant - * - */ - -STATIC INLINE boolean _States_Is_dormant ( - States_Control the_states -) -{ - return (the_states & STATES_DORMANT); -} - -/*PAGE - * - * _States_Is_suspended - * - */ - -STATIC INLINE boolean _States_Is_suspended ( - States_Control the_states -) -{ - return (the_states & STATES_SUSPENDED); -} - -/*PAGE - * - * _States_Is_Transient - * - */ - -STATIC INLINE boolean _States_Is_transient ( - States_Control the_states -) -{ - return (the_states & STATES_TRANSIENT); -} - -/*PAGE - * - * _States_Is_delaying - * - */ - -STATIC INLINE boolean _States_Is_delaying ( - States_Control the_states -) -{ - return (the_states & STATES_DELAYING); -} - -/*PAGE - * - * _States_Is_waiting_for_buffer - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_buffer ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_BUFFER); -} - -/*PAGE - * - * _States_Is_waiting_for_segment - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_segment ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_SEGMENT); -} - -/*PAGE - * - * _States_Is_waiting_for_message - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_message ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_MESSAGE); -} - -/*PAGE - * - * _States_Is_waiting_for_event - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_event ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_EVENT); -} - -/*PAGE - * - * _States_Is_waiting_for_semaphore - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_semaphore ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_SEMAPHORE); -} - -/*PAGE - * - * _States_Is_waiting_for_time - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_time ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_TIME); -} - -/*PAGE - * - * _States_Is_waiting_for_rpc_reply - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_rpc_reply ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_RPC_REPLY); -} - -/*PAGE - * - * _States_Is_waiting_for_period - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_period ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_PERIOD); -} - -/*PAGE - * - * _States_Is_locally_blocked - * - */ - -STATIC INLINE boolean _States_Is_locally_blocked ( - States_Control the_states -) -{ - return (the_states & STATES_LOCALLY_BLOCKED); -} - -/*PAGE - * - * _States_Is_waiting_on_thread_queue - * - */ - -STATIC INLINE boolean _States_Is_waiting_on_thread_queue ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_ON_THREAD_QUEUE); -} - -/*PAGE - * - * _States_Is_blocked - * - */ - -STATIC INLINE boolean _States_Is_blocked ( - States_Control the_states -) -{ - return (the_states & STATES_BLOCKED); -} - -/*PAGEPAGE - * - * - * _States_Are_set - * - */ - -STATIC INLINE boolean _States_Are_set ( - States_Control the_states, - States_Control mask -) -{ - return ( (the_states & mask) != STATES_READY); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/sysstate.inl b/c/src/exec/score/inline/rtems/score/sysstate.inl deleted file mode 100644 index 14d838cb14..0000000000 --- a/c/src/exec/score/inline/rtems/score/sysstate.inl +++ /dev/null @@ -1,103 +0,0 @@ -/* sysstates.inl - * - * This file contains the inline implementation of routines regarding the - * system state. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SYSTEM_STATE_inl -#define __SYSTEM_STATE_inl - -/*PAGE - * - * _System_state_Set - */ - -STATIC INLINE void _System_state_Set ( - System_state_Codes state -) -{ - _System_state_Current = state; -} - -/*PAGE - * - * _System_state_Get - */ - -STATIC INLINE System_state_Codes _System_state_Get ( void ) -{ - return _System_state_Current; -} - -/*PAGE - * - * _System_state_Is_before_initialization - */ - -STATIC INLINE boolean _System_state_Is_before_initialization ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_BEFORE_INITIALIZATION); -} - -/*PAGE - * - * _System_state_Is_before_multitasking - */ - -STATIC INLINE boolean _System_state_Is_before_multitasking ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_BEFORE_MULTITASKING); -} - -/*PAGE - * - * _System_state_Is_begin_multitasking - */ - -STATIC INLINE boolean _System_state_Is_begin_multitasking ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_BEGIN_MULTITASKING); -} - -/*PAGE - * - * _System_state_Is_up - */ - -STATIC INLINE boolean _System_state_Is_up ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_UP); -} - -/*PAGE - * - * _System_state_Is_failed - */ - -STATIC INLINE boolean _System_state_Is_failed ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_FAILED); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/thread.inl b/c/src/exec/score/inline/rtems/score/thread.inl deleted file mode 100644 index 35b8eeccfe..0000000000 --- a/c/src/exec/score/inline/rtems/score/thread.inl +++ /dev/null @@ -1,252 +0,0 @@ -/* thread.inl - * - * This file contains the macro implementation of the inlined - * routines from the Thread handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_inl -#define __THREAD_inl - -/*PAGE - * - * _Thread_Stop_multitasking - * - */ - -STATIC INLINE void _Thread_Stop_multitasking( void ) -{ - _Context_Switch( &_Thread_Executing->Registers, &_Thread_BSP_context ); -} - -/*PAGE - * - * _Thread_Is_executing - * - */ - -STATIC INLINE boolean _Thread_Is_executing ( - Thread_Control *the_thread -) -{ - return ( the_thread == _Thread_Executing ); -} - -/*PAGE - * - * _Thread_Is_heir - * - */ - -STATIC INLINE boolean _Thread_Is_heir ( - Thread_Control *the_thread -) -{ - return ( the_thread == _Thread_Heir ); -} - -/*PAGE - * - * _Thread_Is_executing_also_the_heir - * - */ - -STATIC INLINE boolean _Thread_Is_executing_also_the_heir( void ) -{ - return ( _Thread_Executing == _Thread_Heir ); -} - -/*PAGE - * - * _Thread_Resume - * - */ - -STATIC INLINE void _Thread_Resume ( - Thread_Control *the_thread -) -{ - _Thread_Clear_state( the_thread, STATES_SUSPENDED ); -} - -/*PAGE - * - * _Thread_Unblock - * - */ - -STATIC INLINE void _Thread_Unblock ( - Thread_Control *the_thread -) -{ - _Thread_Clear_state( the_thread, STATES_BLOCKED ); -} - -/*PAGE - * - * _Thread_Restart_self - * - */ - -STATIC INLINE void _Thread_Restart_self( void ) -{ - if ( _Thread_Executing->fp_context != NULL ) - _Context_Restore_fp( &_Thread_Executing->fp_context ); - - _CPU_Context_Restart_self( &_Thread_Executing->Registers ); -} - -/*PAGE - * - * _Thread_Calculate_heir - * - */ - -STATIC INLINE void _Thread_Calculate_heir( void ) -{ - _Thread_Heir = (Thread_Control *) - _Thread_Ready_chain[ _Priority_Get_highest() ].first; -} - -/*PAGE - * - * _Thread_Is_allocated_fp - * - */ - -STATIC INLINE boolean _Thread_Is_allocated_fp ( - Thread_Control *the_thread -) -{ - return ( the_thread == _Thread_Allocated_fp ); -} - -/*PAGE - * - * _Thread_Deallocate_fp - * - */ - -STATIC INLINE void _Thread_Deallocate_fp( void ) -{ - _Thread_Allocated_fp = NULL; -} - -/*PAGE - * - * _Thread_Disable_dispatch - * - */ - -STATIC INLINE void _Thread_Disable_dispatch( void ) -{ - _Thread_Dispatch_disable_level += 1; -} - -/*PAGE - * - * _Thread_Enable_dispatch - * - */ - -#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE ) -STATIC INLINE void _Thread_Enable_dispatch() -{ - if ( (--_Thread_Dispatch_disable_level) == 0 ) - _Thread_Dispatch(); -} -#endif - -#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE ) -void _Thread_Enable_dispatch( void ); -#endif - -/*PAGE - * - * _Thread_Unnest_dispatch - * - */ - -STATIC INLINE void _Thread_Unnest_dispatch( void ) -{ - _Thread_Dispatch_disable_level -= 1; -} - -/*PAGE - * - * _Thread_Is_dispatching_enabled - * - */ - -STATIC INLINE boolean _Thread_Is_dispatching_enabled( void ) -{ - return ( _Thread_Dispatch_disable_level == 0 ); -} - -/*PAGE - * - * _Thread_Is_context_switch_necessary - * - */ - -STATIC INLINE boolean _Thread_Is_context_switch_necessary( void ) -{ - return ( _Context_Switch_necessary ); -} - -/*PAGE - * - * _Thread_Dispatch_initialization - * - */ - -STATIC INLINE void _Thread_Dispatch_initialization( void ) -{ - _Thread_Dispatch_disable_level = 1; -} - -/*PAGE - * - * _Thread_Is_null - * - */ - -STATIC INLINE boolean _Thread_Is_null ( - Thread_Control *the_thread -) -{ - return ( the_thread == NULL ); -} - -/*PAGE - * - * _Thread_Get - * - */ - -STATIC INLINE Thread_Control *_Thread_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { - _Thread_Disable_dispatch(); - *location = OBJECTS_LOCAL; - return( _Thread_Executing ); - } - - return (Thread_Control *) - _Objects_Get( &_Thread_Information, id, location ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/threadmp.inl b/c/src/exec/score/inline/rtems/score/threadmp.inl deleted file mode 100644 index f4beba59ed..0000000000 --- a/c/src/exec/score/inline/rtems/score/threadmp.inl +++ /dev/null @@ -1,53 +0,0 @@ -/* inline/threadmp.inl - * - * This include file contains the bodies of all inlined routines - * for the multiprocessing part of thread package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_MP_THREAD_inl -#define __INLINE_MP_THREAD_inl - -/*PAGE - * - * _Thread_MP_Is_receive - * - */ - -STATIC INLINE boolean _Thread_MP_Is_receive ( - Thread_Control *the_thread -) -{ - return the_thread == _Thread_MP_Receive; -} - -/*PAGE - * - * _Thread_MP_Free_proxy - * - */ - -STATIC INLINE void _Thread_MP_Free_proxy ( - Thread_Control *the_thread -) -{ - Thread_Proxy_control *the_proxy; - - the_proxy = (Thread_Proxy_control *) the_thread; - - _Chain_Extract( &the_proxy->Active ); - - _Chain_Append( &_Thread_MP_Inactive_proxies, &the_thread->Object.Node ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/tod.inl b/c/src/exec/score/inline/rtems/score/tod.inl deleted file mode 100644 index dadcdabcda..0000000000 --- a/c/src/exec/score/inline/rtems/score/tod.inl +++ /dev/null @@ -1,72 +0,0 @@ -/* tod.inl - * - * This file contains the static inline implementation of the inlined routines - * from the Time of Day Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIME_OF_DAY_inl -#define __TIME_OF_DAY_inl - -/*PAGE - * - * _TOD_Is_set - * - */ - -STATIC INLINE boolean _TOD_Is_set( void ) -{ - return _Watchdog_Is_active( &_TOD_Seconds_watchdog ); -} - -/*PAGE - * - * _TOD_Tickle_ticks - * - */ - -STATIC INLINE void _TOD_Tickle_ticks( void ) -{ - _TOD_Current.ticks += 1; - _TOD_Ticks_since_boot += 1; -} - -/*PAGE - * - * _TOD_Deactivate - * - */ - -STATIC INLINE void _TOD_Deactivate( void ) -{ - _Watchdog_Remove( &_TOD_Seconds_watchdog ); -} - -/*PAGE - * - * _TOD_Activate - * - */ - -STATIC INLINE void _TOD_Activate( - rtems_interval ticks -) -{ - _Watchdog_Insert_ticks( - &_TOD_Seconds_watchdog, - ticks, - WATCHDOG_ACTIVATE_NOW - ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/tqdata.inl b/c/src/exec/score/inline/rtems/score/tqdata.inl deleted file mode 100644 index 7ec1e9e186..0000000000 --- a/c/src/exec/score/inline/rtems/score/tqdata.inl +++ /dev/null @@ -1,47 +0,0 @@ -/* tqdata.inl - * - * This file contains the static inline implementation of the inlined - * routines needed to support the Thread Queue Data. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_QUEUE_DATA_inl -#define __THREAD_QUEUE_DATA_inl - -/*PAGE - * - * _Thread_queue_Header_number - * - */ - -STATIC INLINE unsigned32 _Thread_queue_Header_number ( - rtems_task_priority the_priority -) -{ - return ( the_priority >> 6 ); -} - -/*PAGE - * - * _Thread_queue_Is_reverse_search - * - */ - -STATIC INLINE boolean _Thread_queue_Is_reverse_search ( - rtems_task_priority the_priority -) -{ - return ( the_priority & 0x20 ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/userext.inl b/c/src/exec/score/inline/rtems/score/userext.inl deleted file mode 100644 index 1558da968a..0000000000 --- a/c/src/exec/score/inline/rtems/score/userext.inl +++ /dev/null @@ -1,268 +0,0 @@ -/* userext.inl - * - * This file contains the macro implementation of the inlined routines - * from the User Extension Handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __USER_EXTENSIONS_inl -#define __USER_EXTENSIONS_inl - -/*PAGE - * - * _User_extensions_Handler_initialization - * - */ - -STATIC INLINE void _User_extensions_Handler_initialization ( - rtems_extensions_table *initial_extensions -) -{ - _Chain_Initialize_empty( &_User_extensions_List ); - - if ( initial_extensions ) { - _User_extensions_Initial.Callouts = *initial_extensions; - _Chain_Append( &_User_extensions_List, &_User_extensions_Initial.Node ); - } -} - -/*PAGE - * - * _User_extensions_Add_set - */ - -STATIC INLINE void _User_extensions_Add_set ( - User_extensions_Control *the_extension, - rtems_extensions_table *extension_table -) -{ - the_extension->Callouts = *extension_table; - - _Chain_Append( &_User_extensions_List, &the_extension->Node ); -} - -/*PAGE - * - * _User_extensions_Remove_set - */ - -STATIC INLINE void _User_extensions_Remove_set ( - User_extensions_Control *the_extension -) -{ - _Chain_Extract( &the_extension->Node ); -} - -/*PAGE - * - * _User_extensions_Task_create - * - */ - -STATIC INLINE void _User_extensions_Task_create ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_create != NULL ) - (*the_extension->Callouts.rtems_task_create)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_delete - */ - -STATIC INLINE void _User_extensions_Task_delete ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_delete != NULL ) - (*the_extension->Callouts.rtems_task_delete)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_start - * - */ - -STATIC INLINE void _User_extensions_Task_start ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_start != NULL ) - (*the_extension->Callouts.rtems_task_start)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_restart - * - */ - -STATIC INLINE void _User_extensions_Task_restart ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_restart != NULL ) - (*the_extension->Callouts.rtems_task_restart)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_switch - * - */ - -STATIC INLINE void _User_extensions_Task_switch ( - Thread_Control *executing, - Thread_Control *heir -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.task_switch != NULL ) - (*the_extension->Callouts.task_switch)( executing, heir ); - } -} - -/*PAGE - * - * _User_extensions_Task_begin - * - */ - -STATIC INLINE void _User_extensions_Task_begin ( - Thread_Control *executing -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.task_begin != NULL ) - (*the_extension->Callouts.task_begin)( executing ); - } -} - -/*PAGE - * - * _User_extensions_Task_exitted - */ - -STATIC INLINE void _User_extensions_Task_exitted ( - Thread_Control *executing -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.task_exitted != NULL ) - (*the_extension->Callouts.task_exitted)( executing ); - } -} - -/*PAGE - * - * _User_extensions_Fatal - */ - -STATIC INLINE void _User_extensions_Fatal ( - unsigned32 the_error -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.fatal != NULL ) - (*the_extension->Callouts.fatal)( the_error ); - } -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/watchdog.inl b/c/src/exec/score/inline/rtems/score/watchdog.inl deleted file mode 100644 index d5d12cbeef..0000000000 --- a/c/src/exec/score/inline/rtems/score/watchdog.inl +++ /dev/null @@ -1,296 +0,0 @@ -/* watchdog.inl - * - * This file contains the static inline implementation of all inlined - * routines in the Watchdog Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WATCHDOG_inl -#define __WATCHDOG_inl - -/*PAGE - * - * _Watchdog_Initialize - * - */ - -STATIC INLINE void _Watchdog_Initialize( - Watchdog_Control *the_watchdog, - rtems_timer_service_routine_entry routine, - Objects_Id id, - void *user_data -) -{ - the_watchdog->state = WATCHDOG_INACTIVE; - the_watchdog->routine = routine; - the_watchdog->id = id; - the_watchdog->user_data = user_data; -} - -/*PAGE - * - * _Watchdog_Is_active - * - */ - -STATIC INLINE boolean _Watchdog_Is_active( - Watchdog_Control *the_watchdog -) -{ - - return ( the_watchdog->state == WATCHDOG_ACTIVE ); - -} - -/*PAGE - * - * _Watchdog_Activate - * - */ - -STATIC INLINE void _Watchdog_Activate( - Watchdog_Control *the_watchdog -) -{ - - the_watchdog->state = WATCHDOG_ACTIVE; - -} - -/*PAGE - * - * _Watchdog_Deactivate - * - */ - -STATIC INLINE void _Watchdog_Deactivate( - Watchdog_Control *the_watchdog -) -{ - - the_watchdog->state = WATCHDOG_REMOVE_IT; - -} - -/*PAGE - * - * _Watchdog_Tickle_ticks - * - */ - -STATIC INLINE void _Watchdog_Tickle_ticks( void ) -{ - - _Watchdog_Tickle( &_Watchdog_Ticks_chain ); - -} - -/*PAGE - * - * _Watchdog_Tickle_seconds - * - */ - -STATIC INLINE void _Watchdog_Tickle_seconds( void ) -{ - - _Watchdog_Tickle( &_Watchdog_Seconds_chain ); - -} - -/*PAGE - * - * _Watchdog_Insert_ticks - * - */ - -STATIC INLINE void _Watchdog_Insert_ticks( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -) -{ - - the_watchdog->initial = units; - - _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog, insert_mode ); - -} - -/*PAGE - * - * _Watchdog_Insert_seconds - * - */ - -STATIC INLINE void _Watchdog_Insert_seconds( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -) -{ - - the_watchdog->initial = units; - - _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog, insert_mode ); - -} - -/*PAGE - * - * _Watchdog_Adjust_seconds - * - */ - -STATIC INLINE void _Watchdog_Adjust_seconds( - Watchdog_Adjust_directions direction, - rtems_interval units -) -{ - - _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units ); - -} - -/*PAGE - * - * _Watchdog_Adjust_ticks - * - */ - -STATIC INLINE void _Watchdog_Adjust_ticks( - Watchdog_Adjust_directions direction, - rtems_interval units -) -{ - - _Watchdog_Adjust( &_Watchdog_Ticks_chain, direction, units ); - -} - -/*PAGE - * - * _Watchdog_Reset - * - */ - -STATIC INLINE void _Watchdog_Reset( - Watchdog_Control *the_watchdog -) -{ - - (void) _Watchdog_Remove( the_watchdog ); - - _Watchdog_Insert( - &_Watchdog_Ticks_chain, - the_watchdog, - WATCHDOG_ACTIVATE_NOW - ); - -} - -/*PAGE - * - * _Watchdog_Next - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Next( - Watchdog_Control *the_watchdog -) -{ - - return ( (Watchdog_Control *) the_watchdog->Node.next ); - -} - -/*PAGE - * - * _Watchdog_Previous - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Previous( - Watchdog_Control *the_watchdog -) -{ - - return ( (Watchdog_Control *) the_watchdog->Node.previous ); - -} - -/*PAGE - * - * _Watchdog_First - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_First( - Chain_Control *header -) -{ - - return ( (Watchdog_Control *) header->first ); - -} - -/*PAGE - * - * _Watchdog_Last - * - */ -STATIC INLINE Watchdog_Control *_Watchdog_Last( - Chain_Control *header -) -{ - - return ( (Watchdog_Control *) header->last ); - -} - -/*PAGE - * - * _Watchdog_Get_sync - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Get_sync( void ) -{ - return (Watchdog_Control *) _Watchdog_Sync; -} - -/*PAGE - * - * _Watchdog_Set_sync - * - */ - -STATIC INLINE void _Watchdog_Set_sync( - Watchdog_Control *the_watchdog -) -{ - _Watchdog_Sync = (Watchdog_Synchronization_pointer) the_watchdog; -} - -/*PAGE - * - * _Watchdog_Clear_sync - * - */ - -STATIC INLINE void _Watchdog_Clear_sync( void ) -{ - _Watchdog_Sync = NULL; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/rtems/score/wkspace.inl b/c/src/exec/score/inline/rtems/score/wkspace.inl deleted file mode 100644 index fee7623a6c..0000000000 --- a/c/src/exec/score/inline/rtems/score/wkspace.inl +++ /dev/null @@ -1,104 +0,0 @@ -/* wkspace.inl - * - * This include file contains the bodies of the routines which contains - * information related to the RTEMS RAM Workspace. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WORKSPACE_inl -#define __WORKSPACE_inl - -/*PAGE - * - * _Workspace_Handler_initialization - * - */ - -STATIC INLINE void _Workspace_Handler_initialization( - void *starting_address, - unsigned32 size -) -{ - unsigned32 *zero_out_array; - unsigned32 index; - unsigned32 memory_available; - - if ( (starting_address == NULL) || - !_Addresses_Is_aligned( starting_address ) ) - rtems_fatal_error_occurred( RTEMS_INVALID_ADDRESS ); - - if ( _CPU_Table.do_zero_of_workspace ) { - for( zero_out_array = (unsigned32 *) starting_address, index = 0 ; - index < size / 4 ; - index++ ) - zero_out_array[ index ] = 0; - } - - memory_available = _Heap_Initialize( - &_Workspace_Area, - starting_address, - size, - CPU_HEAP_ALIGNMENT - ); - - if ( memory_available == 0 ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); -} - -/*PAGE - * - * _Workspace_Allocate - * - */ - -STATIC INLINE void *_Workspace_Allocate( - unsigned32 size -) -{ - return _Heap_Allocate( &_Workspace_Area, size ); -} - -/*PAGE - * - * _Workspace_Allocate_or_fatal_error - * - */ - -STATIC INLINE void *_Workspace_Allocate_or_fatal_error( - unsigned32 size -) -{ - void *memory; - - memory = _Workspace_Allocate( size ); - - if ( memory == NULL ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); - - return memory; -} - -/*PAGE - * - * _Workspace_Free - * - */ - -STATIC INLINE boolean _Workspace_Free( - void *block -) -{ - return _Heap_Free( &_Workspace_Area, block ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/stack.inl b/c/src/exec/score/inline/stack.inl deleted file mode 100644 index 24a6d9d873..0000000000 --- a/c/src/exec/score/inline/stack.inl +++ /dev/null @@ -1,63 +0,0 @@ -/* stack.inl - * - * This file contains the static inline implementation of the inlined - * routines from the Stack Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STACK_inl -#define __STACK_inl - -/*PAGE - * - * _Stack_Initialize - * - */ - -STATIC INLINE void _Stack_Initialize ( - Stack_Control *the_stack, - void *starting_address, - unsigned32 size -) -{ - the_stack->area = starting_address; - the_stack->size = size; -} - -/*PAGE - * - * _Stack_Is_enough - * - */ - -STATIC INLINE boolean _Stack_Is_enough ( - unsigned32 size -) -{ - return ( size >= RTEMS_MINIMUM_STACK_SIZE ); -} - -/*PAGE - * - * _Stack_Adjust_size - * - */ - -STATIC INLINE unsigned32 _Stack_Adjust_size ( - unsigned32 size -) -{ - return size + CPU_STACK_ALIGNMENT; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/states.inl b/c/src/exec/score/inline/states.inl deleted file mode 100644 index 316f40e4eb..0000000000 --- a/c/src/exec/score/inline/states.inl +++ /dev/null @@ -1,285 +0,0 @@ -/* states.inl - * - * This file contains the macro implementation of the inlined - * routines associated with RTEMS state information. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STATES_inl -#define __STATES_inl - -/*PAGE - * - * _States_Set - * - */ - -STATIC INLINE States_Control _States_Set ( - States_Control states_to_set, - States_Control current_state -) -{ - return (current_state | states_to_set); -} - -/*PAGE - * - * _States_Clear - * - */ - -STATIC INLINE States_Control _States_Clear ( - States_Control states_to_clear, - States_Control current_state -) -{ - return (current_state & ~states_to_clear); -} - -/*PAGE - * - * _States_Is_ready - * - */ - -STATIC INLINE boolean _States_Is_ready ( - States_Control the_states -) -{ - return (the_states == STATES_READY); -} - -/*PAGE - * - * _States_Is_only_dormant - * - */ - -STATIC INLINE boolean _States_Is_only_dormant ( - States_Control the_states -) -{ - return (the_states == STATES_DORMANT); -} - -/*PAGE - * - * _States_Is_dormant - * - */ - -STATIC INLINE boolean _States_Is_dormant ( - States_Control the_states -) -{ - return (the_states & STATES_DORMANT); -} - -/*PAGE - * - * _States_Is_suspended - * - */ - -STATIC INLINE boolean _States_Is_suspended ( - States_Control the_states -) -{ - return (the_states & STATES_SUSPENDED); -} - -/*PAGE - * - * _States_Is_Transient - * - */ - -STATIC INLINE boolean _States_Is_transient ( - States_Control the_states -) -{ - return (the_states & STATES_TRANSIENT); -} - -/*PAGE - * - * _States_Is_delaying - * - */ - -STATIC INLINE boolean _States_Is_delaying ( - States_Control the_states -) -{ - return (the_states & STATES_DELAYING); -} - -/*PAGE - * - * _States_Is_waiting_for_buffer - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_buffer ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_BUFFER); -} - -/*PAGE - * - * _States_Is_waiting_for_segment - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_segment ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_SEGMENT); -} - -/*PAGE - * - * _States_Is_waiting_for_message - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_message ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_MESSAGE); -} - -/*PAGE - * - * _States_Is_waiting_for_event - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_event ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_EVENT); -} - -/*PAGE - * - * _States_Is_waiting_for_semaphore - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_semaphore ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_SEMAPHORE); -} - -/*PAGE - * - * _States_Is_waiting_for_time - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_time ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_TIME); -} - -/*PAGE - * - * _States_Is_waiting_for_rpc_reply - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_rpc_reply ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_RPC_REPLY); -} - -/*PAGE - * - * _States_Is_waiting_for_period - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_period ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_PERIOD); -} - -/*PAGE - * - * _States_Is_locally_blocked - * - */ - -STATIC INLINE boolean _States_Is_locally_blocked ( - States_Control the_states -) -{ - return (the_states & STATES_LOCALLY_BLOCKED); -} - -/*PAGE - * - * _States_Is_waiting_on_thread_queue - * - */ - -STATIC INLINE boolean _States_Is_waiting_on_thread_queue ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_ON_THREAD_QUEUE); -} - -/*PAGE - * - * _States_Is_blocked - * - */ - -STATIC INLINE boolean _States_Is_blocked ( - States_Control the_states -) -{ - return (the_states & STATES_BLOCKED); -} - -/*PAGEPAGE - * - * - * _States_Are_set - * - */ - -STATIC INLINE boolean _States_Are_set ( - States_Control the_states, - States_Control mask -) -{ - return ( (the_states & mask) != STATES_READY); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/sysstate.inl b/c/src/exec/score/inline/sysstate.inl deleted file mode 100644 index 14d838cb14..0000000000 --- a/c/src/exec/score/inline/sysstate.inl +++ /dev/null @@ -1,103 +0,0 @@ -/* sysstates.inl - * - * This file contains the inline implementation of routines regarding the - * system state. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SYSTEM_STATE_inl -#define __SYSTEM_STATE_inl - -/*PAGE - * - * _System_state_Set - */ - -STATIC INLINE void _System_state_Set ( - System_state_Codes state -) -{ - _System_state_Current = state; -} - -/*PAGE - * - * _System_state_Get - */ - -STATIC INLINE System_state_Codes _System_state_Get ( void ) -{ - return _System_state_Current; -} - -/*PAGE - * - * _System_state_Is_before_initialization - */ - -STATIC INLINE boolean _System_state_Is_before_initialization ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_BEFORE_INITIALIZATION); -} - -/*PAGE - * - * _System_state_Is_before_multitasking - */ - -STATIC INLINE boolean _System_state_Is_before_multitasking ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_BEFORE_MULTITASKING); -} - -/*PAGE - * - * _System_state_Is_begin_multitasking - */ - -STATIC INLINE boolean _System_state_Is_begin_multitasking ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_BEGIN_MULTITASKING); -} - -/*PAGE - * - * _System_state_Is_up - */ - -STATIC INLINE boolean _System_state_Is_up ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_UP); -} - -/*PAGE - * - * _System_state_Is_failed - */ - -STATIC INLINE boolean _System_state_Is_failed ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_FAILED); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/thread.inl b/c/src/exec/score/inline/thread.inl deleted file mode 100644 index 35b8eeccfe..0000000000 --- a/c/src/exec/score/inline/thread.inl +++ /dev/null @@ -1,252 +0,0 @@ -/* thread.inl - * - * This file contains the macro implementation of the inlined - * routines from the Thread handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_inl -#define __THREAD_inl - -/*PAGE - * - * _Thread_Stop_multitasking - * - */ - -STATIC INLINE void _Thread_Stop_multitasking( void ) -{ - _Context_Switch( &_Thread_Executing->Registers, &_Thread_BSP_context ); -} - -/*PAGE - * - * _Thread_Is_executing - * - */ - -STATIC INLINE boolean _Thread_Is_executing ( - Thread_Control *the_thread -) -{ - return ( the_thread == _Thread_Executing ); -} - -/*PAGE - * - * _Thread_Is_heir - * - */ - -STATIC INLINE boolean _Thread_Is_heir ( - Thread_Control *the_thread -) -{ - return ( the_thread == _Thread_Heir ); -} - -/*PAGE - * - * _Thread_Is_executing_also_the_heir - * - */ - -STATIC INLINE boolean _Thread_Is_executing_also_the_heir( void ) -{ - return ( _Thread_Executing == _Thread_Heir ); -} - -/*PAGE - * - * _Thread_Resume - * - */ - -STATIC INLINE void _Thread_Resume ( - Thread_Control *the_thread -) -{ - _Thread_Clear_state( the_thread, STATES_SUSPENDED ); -} - -/*PAGE - * - * _Thread_Unblock - * - */ - -STATIC INLINE void _Thread_Unblock ( - Thread_Control *the_thread -) -{ - _Thread_Clear_state( the_thread, STATES_BLOCKED ); -} - -/*PAGE - * - * _Thread_Restart_self - * - */ - -STATIC INLINE void _Thread_Restart_self( void ) -{ - if ( _Thread_Executing->fp_context != NULL ) - _Context_Restore_fp( &_Thread_Executing->fp_context ); - - _CPU_Context_Restart_self( &_Thread_Executing->Registers ); -} - -/*PAGE - * - * _Thread_Calculate_heir - * - */ - -STATIC INLINE void _Thread_Calculate_heir( void ) -{ - _Thread_Heir = (Thread_Control *) - _Thread_Ready_chain[ _Priority_Get_highest() ].first; -} - -/*PAGE - * - * _Thread_Is_allocated_fp - * - */ - -STATIC INLINE boolean _Thread_Is_allocated_fp ( - Thread_Control *the_thread -) -{ - return ( the_thread == _Thread_Allocated_fp ); -} - -/*PAGE - * - * _Thread_Deallocate_fp - * - */ - -STATIC INLINE void _Thread_Deallocate_fp( void ) -{ - _Thread_Allocated_fp = NULL; -} - -/*PAGE - * - * _Thread_Disable_dispatch - * - */ - -STATIC INLINE void _Thread_Disable_dispatch( void ) -{ - _Thread_Dispatch_disable_level += 1; -} - -/*PAGE - * - * _Thread_Enable_dispatch - * - */ - -#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE ) -STATIC INLINE void _Thread_Enable_dispatch() -{ - if ( (--_Thread_Dispatch_disable_level) == 0 ) - _Thread_Dispatch(); -} -#endif - -#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE ) -void _Thread_Enable_dispatch( void ); -#endif - -/*PAGE - * - * _Thread_Unnest_dispatch - * - */ - -STATIC INLINE void _Thread_Unnest_dispatch( void ) -{ - _Thread_Dispatch_disable_level -= 1; -} - -/*PAGE - * - * _Thread_Is_dispatching_enabled - * - */ - -STATIC INLINE boolean _Thread_Is_dispatching_enabled( void ) -{ - return ( _Thread_Dispatch_disable_level == 0 ); -} - -/*PAGE - * - * _Thread_Is_context_switch_necessary - * - */ - -STATIC INLINE boolean _Thread_Is_context_switch_necessary( void ) -{ - return ( _Context_Switch_necessary ); -} - -/*PAGE - * - * _Thread_Dispatch_initialization - * - */ - -STATIC INLINE void _Thread_Dispatch_initialization( void ) -{ - _Thread_Dispatch_disable_level = 1; -} - -/*PAGE - * - * _Thread_Is_null - * - */ - -STATIC INLINE boolean _Thread_Is_null ( - Thread_Control *the_thread -) -{ - return ( the_thread == NULL ); -} - -/*PAGE - * - * _Thread_Get - * - */ - -STATIC INLINE Thread_Control *_Thread_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { - _Thread_Disable_dispatch(); - *location = OBJECTS_LOCAL; - return( _Thread_Executing ); - } - - return (Thread_Control *) - _Objects_Get( &_Thread_Information, id, location ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/threadmp.inl b/c/src/exec/score/inline/threadmp.inl deleted file mode 100644 index f4beba59ed..0000000000 --- a/c/src/exec/score/inline/threadmp.inl +++ /dev/null @@ -1,53 +0,0 @@ -/* inline/threadmp.inl - * - * This include file contains the bodies of all inlined routines - * for the multiprocessing part of thread package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_MP_THREAD_inl -#define __INLINE_MP_THREAD_inl - -/*PAGE - * - * _Thread_MP_Is_receive - * - */ - -STATIC INLINE boolean _Thread_MP_Is_receive ( - Thread_Control *the_thread -) -{ - return the_thread == _Thread_MP_Receive; -} - -/*PAGE - * - * _Thread_MP_Free_proxy - * - */ - -STATIC INLINE void _Thread_MP_Free_proxy ( - Thread_Control *the_thread -) -{ - Thread_Proxy_control *the_proxy; - - the_proxy = (Thread_Proxy_control *) the_thread; - - _Chain_Extract( &the_proxy->Active ); - - _Chain_Append( &_Thread_MP_Inactive_proxies, &the_thread->Object.Node ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/tod.inl b/c/src/exec/score/inline/tod.inl deleted file mode 100644 index dadcdabcda..0000000000 --- a/c/src/exec/score/inline/tod.inl +++ /dev/null @@ -1,72 +0,0 @@ -/* tod.inl - * - * This file contains the static inline implementation of the inlined routines - * from the Time of Day Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIME_OF_DAY_inl -#define __TIME_OF_DAY_inl - -/*PAGE - * - * _TOD_Is_set - * - */ - -STATIC INLINE boolean _TOD_Is_set( void ) -{ - return _Watchdog_Is_active( &_TOD_Seconds_watchdog ); -} - -/*PAGE - * - * _TOD_Tickle_ticks - * - */ - -STATIC INLINE void _TOD_Tickle_ticks( void ) -{ - _TOD_Current.ticks += 1; - _TOD_Ticks_since_boot += 1; -} - -/*PAGE - * - * _TOD_Deactivate - * - */ - -STATIC INLINE void _TOD_Deactivate( void ) -{ - _Watchdog_Remove( &_TOD_Seconds_watchdog ); -} - -/*PAGE - * - * _TOD_Activate - * - */ - -STATIC INLINE void _TOD_Activate( - rtems_interval ticks -) -{ - _Watchdog_Insert_ticks( - &_TOD_Seconds_watchdog, - ticks, - WATCHDOG_ACTIVATE_NOW - ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/tqdata.inl b/c/src/exec/score/inline/tqdata.inl deleted file mode 100644 index 7ec1e9e186..0000000000 --- a/c/src/exec/score/inline/tqdata.inl +++ /dev/null @@ -1,47 +0,0 @@ -/* tqdata.inl - * - * This file contains the static inline implementation of the inlined - * routines needed to support the Thread Queue Data. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_QUEUE_DATA_inl -#define __THREAD_QUEUE_DATA_inl - -/*PAGE - * - * _Thread_queue_Header_number - * - */ - -STATIC INLINE unsigned32 _Thread_queue_Header_number ( - rtems_task_priority the_priority -) -{ - return ( the_priority >> 6 ); -} - -/*PAGE - * - * _Thread_queue_Is_reverse_search - * - */ - -STATIC INLINE boolean _Thread_queue_Is_reverse_search ( - rtems_task_priority the_priority -) -{ - return ( the_priority & 0x20 ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/userext.inl b/c/src/exec/score/inline/userext.inl deleted file mode 100644 index 1558da968a..0000000000 --- a/c/src/exec/score/inline/userext.inl +++ /dev/null @@ -1,268 +0,0 @@ -/* userext.inl - * - * This file contains the macro implementation of the inlined routines - * from the User Extension Handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __USER_EXTENSIONS_inl -#define __USER_EXTENSIONS_inl - -/*PAGE - * - * _User_extensions_Handler_initialization - * - */ - -STATIC INLINE void _User_extensions_Handler_initialization ( - rtems_extensions_table *initial_extensions -) -{ - _Chain_Initialize_empty( &_User_extensions_List ); - - if ( initial_extensions ) { - _User_extensions_Initial.Callouts = *initial_extensions; - _Chain_Append( &_User_extensions_List, &_User_extensions_Initial.Node ); - } -} - -/*PAGE - * - * _User_extensions_Add_set - */ - -STATIC INLINE void _User_extensions_Add_set ( - User_extensions_Control *the_extension, - rtems_extensions_table *extension_table -) -{ - the_extension->Callouts = *extension_table; - - _Chain_Append( &_User_extensions_List, &the_extension->Node ); -} - -/*PAGE - * - * _User_extensions_Remove_set - */ - -STATIC INLINE void _User_extensions_Remove_set ( - User_extensions_Control *the_extension -) -{ - _Chain_Extract( &the_extension->Node ); -} - -/*PAGE - * - * _User_extensions_Task_create - * - */ - -STATIC INLINE void _User_extensions_Task_create ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_create != NULL ) - (*the_extension->Callouts.rtems_task_create)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_delete - */ - -STATIC INLINE void _User_extensions_Task_delete ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_delete != NULL ) - (*the_extension->Callouts.rtems_task_delete)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_start - * - */ - -STATIC INLINE void _User_extensions_Task_start ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_start != NULL ) - (*the_extension->Callouts.rtems_task_start)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_restart - * - */ - -STATIC INLINE void _User_extensions_Task_restart ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_restart != NULL ) - (*the_extension->Callouts.rtems_task_restart)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_switch - * - */ - -STATIC INLINE void _User_extensions_Task_switch ( - Thread_Control *executing, - Thread_Control *heir -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.task_switch != NULL ) - (*the_extension->Callouts.task_switch)( executing, heir ); - } -} - -/*PAGE - * - * _User_extensions_Task_begin - * - */ - -STATIC INLINE void _User_extensions_Task_begin ( - Thread_Control *executing -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.task_begin != NULL ) - (*the_extension->Callouts.task_begin)( executing ); - } -} - -/*PAGE - * - * _User_extensions_Task_exitted - */ - -STATIC INLINE void _User_extensions_Task_exitted ( - Thread_Control *executing -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.task_exitted != NULL ) - (*the_extension->Callouts.task_exitted)( executing ); - } -} - -/*PAGE - * - * _User_extensions_Fatal - */ - -STATIC INLINE void _User_extensions_Fatal ( - unsigned32 the_error -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.fatal != NULL ) - (*the_extension->Callouts.fatal)( the_error ); - } -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/watchdog.inl b/c/src/exec/score/inline/watchdog.inl deleted file mode 100644 index d5d12cbeef..0000000000 --- a/c/src/exec/score/inline/watchdog.inl +++ /dev/null @@ -1,296 +0,0 @@ -/* watchdog.inl - * - * This file contains the static inline implementation of all inlined - * routines in the Watchdog Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WATCHDOG_inl -#define __WATCHDOG_inl - -/*PAGE - * - * _Watchdog_Initialize - * - */ - -STATIC INLINE void _Watchdog_Initialize( - Watchdog_Control *the_watchdog, - rtems_timer_service_routine_entry routine, - Objects_Id id, - void *user_data -) -{ - the_watchdog->state = WATCHDOG_INACTIVE; - the_watchdog->routine = routine; - the_watchdog->id = id; - the_watchdog->user_data = user_data; -} - -/*PAGE - * - * _Watchdog_Is_active - * - */ - -STATIC INLINE boolean _Watchdog_Is_active( - Watchdog_Control *the_watchdog -) -{ - - return ( the_watchdog->state == WATCHDOG_ACTIVE ); - -} - -/*PAGE - * - * _Watchdog_Activate - * - */ - -STATIC INLINE void _Watchdog_Activate( - Watchdog_Control *the_watchdog -) -{ - - the_watchdog->state = WATCHDOG_ACTIVE; - -} - -/*PAGE - * - * _Watchdog_Deactivate - * - */ - -STATIC INLINE void _Watchdog_Deactivate( - Watchdog_Control *the_watchdog -) -{ - - the_watchdog->state = WATCHDOG_REMOVE_IT; - -} - -/*PAGE - * - * _Watchdog_Tickle_ticks - * - */ - -STATIC INLINE void _Watchdog_Tickle_ticks( void ) -{ - - _Watchdog_Tickle( &_Watchdog_Ticks_chain ); - -} - -/*PAGE - * - * _Watchdog_Tickle_seconds - * - */ - -STATIC INLINE void _Watchdog_Tickle_seconds( void ) -{ - - _Watchdog_Tickle( &_Watchdog_Seconds_chain ); - -} - -/*PAGE - * - * _Watchdog_Insert_ticks - * - */ - -STATIC INLINE void _Watchdog_Insert_ticks( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -) -{ - - the_watchdog->initial = units; - - _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog, insert_mode ); - -} - -/*PAGE - * - * _Watchdog_Insert_seconds - * - */ - -STATIC INLINE void _Watchdog_Insert_seconds( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -) -{ - - the_watchdog->initial = units; - - _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog, insert_mode ); - -} - -/*PAGE - * - * _Watchdog_Adjust_seconds - * - */ - -STATIC INLINE void _Watchdog_Adjust_seconds( - Watchdog_Adjust_directions direction, - rtems_interval units -) -{ - - _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units ); - -} - -/*PAGE - * - * _Watchdog_Adjust_ticks - * - */ - -STATIC INLINE void _Watchdog_Adjust_ticks( - Watchdog_Adjust_directions direction, - rtems_interval units -) -{ - - _Watchdog_Adjust( &_Watchdog_Ticks_chain, direction, units ); - -} - -/*PAGE - * - * _Watchdog_Reset - * - */ - -STATIC INLINE void _Watchdog_Reset( - Watchdog_Control *the_watchdog -) -{ - - (void) _Watchdog_Remove( the_watchdog ); - - _Watchdog_Insert( - &_Watchdog_Ticks_chain, - the_watchdog, - WATCHDOG_ACTIVATE_NOW - ); - -} - -/*PAGE - * - * _Watchdog_Next - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Next( - Watchdog_Control *the_watchdog -) -{ - - return ( (Watchdog_Control *) the_watchdog->Node.next ); - -} - -/*PAGE - * - * _Watchdog_Previous - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Previous( - Watchdog_Control *the_watchdog -) -{ - - return ( (Watchdog_Control *) the_watchdog->Node.previous ); - -} - -/*PAGE - * - * _Watchdog_First - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_First( - Chain_Control *header -) -{ - - return ( (Watchdog_Control *) header->first ); - -} - -/*PAGE - * - * _Watchdog_Last - * - */ -STATIC INLINE Watchdog_Control *_Watchdog_Last( - Chain_Control *header -) -{ - - return ( (Watchdog_Control *) header->last ); - -} - -/*PAGE - * - * _Watchdog_Get_sync - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Get_sync( void ) -{ - return (Watchdog_Control *) _Watchdog_Sync; -} - -/*PAGE - * - * _Watchdog_Set_sync - * - */ - -STATIC INLINE void _Watchdog_Set_sync( - Watchdog_Control *the_watchdog -) -{ - _Watchdog_Sync = (Watchdog_Synchronization_pointer) the_watchdog; -} - -/*PAGE - * - * _Watchdog_Clear_sync - * - */ - -STATIC INLINE void _Watchdog_Clear_sync( void ) -{ - _Watchdog_Sync = NULL; -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/inline/wkspace.inl b/c/src/exec/score/inline/wkspace.inl deleted file mode 100644 index fee7623a6c..0000000000 --- a/c/src/exec/score/inline/wkspace.inl +++ /dev/null @@ -1,104 +0,0 @@ -/* wkspace.inl - * - * This include file contains the bodies of the routines which contains - * information related to the RTEMS RAM Workspace. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WORKSPACE_inl -#define __WORKSPACE_inl - -/*PAGE - * - * _Workspace_Handler_initialization - * - */ - -STATIC INLINE void _Workspace_Handler_initialization( - void *starting_address, - unsigned32 size -) -{ - unsigned32 *zero_out_array; - unsigned32 index; - unsigned32 memory_available; - - if ( (starting_address == NULL) || - !_Addresses_Is_aligned( starting_address ) ) - rtems_fatal_error_occurred( RTEMS_INVALID_ADDRESS ); - - if ( _CPU_Table.do_zero_of_workspace ) { - for( zero_out_array = (unsigned32 *) starting_address, index = 0 ; - index < size / 4 ; - index++ ) - zero_out_array[ index ] = 0; - } - - memory_available = _Heap_Initialize( - &_Workspace_Area, - starting_address, - size, - CPU_HEAP_ALIGNMENT - ); - - if ( memory_available == 0 ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); -} - -/*PAGE - * - * _Workspace_Allocate - * - */ - -STATIC INLINE void *_Workspace_Allocate( - unsigned32 size -) -{ - return _Heap_Allocate( &_Workspace_Area, size ); -} - -/*PAGE - * - * _Workspace_Allocate_or_fatal_error - * - */ - -STATIC INLINE void *_Workspace_Allocate_or_fatal_error( - unsigned32 size -) -{ - void *memory; - - memory = _Workspace_Allocate( size ); - - if ( memory == NULL ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); - - return memory; -} - -/*PAGE - * - * _Workspace_Free - * - */ - -STATIC INLINE boolean _Workspace_Free( - void *block -) -{ - return _Heap_Free( &_Workspace_Area, block ); -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/README b/c/src/exec/score/macros/README deleted file mode 100644 index b2f0c4d481..0000000000 --- a/c/src/exec/score/macros/README +++ /dev/null @@ -1,18 +0,0 @@ -# -# $Id$ -# - -The files in this directory are not considered the "primary" source -of inlined routines for RTEMS. The "inline" directory contains -the implementations of the inlined basis which are regularly -tested. In general, an effort is made to keep the contents of -this directory up to date but testing is only performed irregularly -and even then it is usually with a single target processor and BSP. - -The primary purpose of the code in this directory is to insure -that RTEMS can be compiled using a C compiler which does not support -static inline routines. - -These were last successfully tested on 2/1/95 on a prerelease version -of 3.2.0. The testing was done only on the Force CPU386 i386 target board. -No testing was done on version of the code in the final release. diff --git a/c/src/exec/score/macros/address.inl b/c/src/exec/score/macros/address.inl deleted file mode 100644 index f2672f2500..0000000000 --- a/c/src/exec/score/macros/address.inl +++ /dev/null @@ -1,79 +0,0 @@ -/* macros/address.h - * - * This include file contains the bodies of the routines - * about addresses which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_ADDRESSES_h -#define __MACROS_ADDRESSES_h - -/*PAGE - * - * _Addresses_Add_offset - * - */ - -#define _Addresses_Add_offset( _base, _offset ) \ - ((void *)(_base) + (_offset)) - -/*PAGE - * - * _Addresses_Subtract_offset - * - */ - -#define _Addresses_Subtract_offset( _base, _offset ) \ - ((void *)(_base) - (_offset)) - -/*PAGE - * - * _Addresses_Add - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -#define _Addresses_Add( _left, _right ) \ - ((void *)(_left) + (unsigned32)(_right)) - -/*PAGE - * - * _Addresses_Subtract - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -#define _Addresses_Subtract( _left, _right ) \ - ((void *)(_left) - (void *)(_right)) - -/*PAGE - * - * _Addresses_Is_aligned - * - */ - -#define _Addresses_Is_aligned( _address ) \ - ( ( (unsigned32)(_address) % 4 ) == 0 ) - -/*PAGE - * - * _Addresses_Is_in_range - * - */ - -#define _Addresses_Is_in_range( _address, _base, _limit ) \ - ( (_address) >= (_base) && (_address) <= (_limit) ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/chain.inl b/c/src/exec/score/macros/chain.inl deleted file mode 100644 index a53b3fc270..0000000000 --- a/c/src/exec/score/macros/chain.inl +++ /dev/null @@ -1,200 +0,0 @@ -/* macros/chain.h - * - * This include file contains the bodies of the routines which are - * associated with doubly linked chains and inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_CHAIN_h -#define __MACROS_CHAIN_h - -/*PAGE - * - * _Chain_Are_nodes_equal - */ - -#define _Chain_Are_nodes_equal( _left, _right ) \ - ( (_left) == (_right) ) - -/*PAGE - * - * _Chain_Is_null - */ - -#define _Chain_Is_null( _the_chain ) \ - ( (_the_chain) == NULL ) - -/*PAGE - * - * _Chain_Is_null_node - */ - -#define _Chain_Is_null_node( _the_node ) \ - ( (_the_node) == NULL ) - -/*PAGE - * - * _Chain_Head - */ - -#define _Chain_Head( _the_chain ) \ - ((Chain_Node *) (_the_chain)) - -/*PAGE - * - * _Chain_Tail - */ - -#define _Chain_Tail( _the_chain ) \ - ((Chain_Node *) &(_the_chain)->permanent_null) - -/*PAGE - * - * _Chain_Is_empty - */ - -#define _Chain_Is_empty( _the_chain ) \ - ( (_the_chain)->first == _Chain_Tail( (_the_chain) ) ) - -/*PAGE - * - * _Chain_Is_first - */ - -#define _Chain_Is_first( _the_node ) \ - ( (the_node)->previous == NULL ) - -/*PAGE - * - * _Chain_Is_last - */ - -#define _Chain_Is_last( _the_node ) \ - ( (_the_node)->next == NULL ) - -/*PAGE - * - * _Chain_Has_only_one_node - */ - -#define _Chain_Has_only_one_node( _the_chain ) \ - ( (_the_chain)->first == (_the_chain)->last ) - -/*PAGE - * - * _Chain_Is_head - */ - -#define _Chain_Is_head( _the_chain, _the_node ) \ - ( (_the_node) == _Chain_Head( (_the_chain) ) ) - -/*PAGE - * - * _Chain_Is_tail - */ - -#define _Chain_Is_tail( _the_chain, _the_node ) \ - ( (_the_node) == _Chain_Tail( (_the_chain) ) ) - -/*PAGE - * - * Chain_Initialize_empty - */ - -#define _Chain_Initialize_empty( _the_chain ) \ -{ \ - (_the_chain)->first = _Chain_Tail( (_the_chain) ); \ - (_the_chain)->permanent_null = NULL; \ - (_the_chain)->last = _Chain_Head( (_the_chain) ); \ -} - -/*PAGE - * - * _Chain_Extract_unprotected - */ - -#define _Chain_Extract_unprotected( _the_node ) \ -{ \ - Chain_Node *_next; \ - Chain_Node *_previous; \ - \ - _next = (_the_node)->next; \ - _previous = (_the_node)->previous; \ - _next->previous = _previous; \ - _previous->next = _next; \ -} - -/*PAGE - * - * _Chain_Get_unprotected - */ - -/*PAGE - * - * Chain_Get_unprotected - */ - -#define _Chain_Get_unprotected( _the_chain ) \ - (( !_Chain_Is_empty( (_the_chain) ) ) \ - ? _Chain_Get_unprotected( (_the_chain) ) \ - : NULL) - -/*PAGE - * - * _Chain_Insert_unprotected - */ - -#define _Chain_Insert_unprotected( _after_node, _the_node ) \ -{ \ - Chain_Node *_before_node; \ - \ - (_the_node)->previous = (_after_node); \ - _before_node = (_after_node)->next; \ - (_after_node)->next = (_the_node); \ - (_the_node)->next = _before_node; \ - _before_node->previous = (_the_node); \ -} - -/*PAGE - * - * _Chain_Append_unprotected - */ - -#define _Chain_Append_unprotected( _the_chain, _the_node ) \ -{ \ - Chain_Node *_old_last_node; \ - \ - (_the_node)->next = _Chain_Tail( (_the_chain) ); \ - _old_last_node = (_the_chain)->last; \ - (_the_chain)->last = (_the_node); \ - _old_last_node->next = (_the_node); \ - (_the_node)->previous = _old_last_node; \ -} - -/*PAGE - * - * _Chain_Prepend_unprotected - */ - -#define _Chain_Prepend_unprotected( _the_chain, _the_node ) \ - _Chain_Insert_unprotected( _Chain_Head( (_the_chain) ), (_the_node) ) - -/*PAGE - * - * _Chain_Prepend - */ - -#define _Chain_Prepend( _the_chain, _the_node ) \ - _Chain_Insert( _Chain_Head( (_the_chain) ), (_the_node) ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/heap.inl b/c/src/exec/score/macros/heap.inl deleted file mode 100644 index 6f06478207..0000000000 --- a/c/src/exec/score/macros/heap.inl +++ /dev/null @@ -1,136 +0,0 @@ -/* heap.inl - * - * This file contains the macro implementation of the inlined - * routines from the heap handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __HEAP_inl -#define __HEAP_inl - -#include - -/*PAGE - * - * _Heap_Head - */ - -#define _Heap_Head( _the_heap ) \ - ((Heap_Block *)&(_the_heap)->start) - -/*PAGE - * - * _Heap_Tail - */ - -#define _Heap_Tail( _the_heap ) \ - ((Heap_Block *)&(_the_heap)->final) - -/*PAGE - * - * _Heap_Previous_block - */ - -#define _Heap_Previous_block( _the_block ) \ - ( (Heap_Block *) _Addresses_Subtract_offset( \ - (void *)(_the_block), \ - (_the_block)->back_flag & ~ HEAP_BLOCK_USED \ - ) - -/*PAGE - * - * _Heap_Next_block - */ - -#define _Heap_Next_block( _the_block ) \ - ( (Heap_Block *) _Addresses_Add_offset( \ - (void *)(_the_block), \ - (_the_block)->front_flag & ~ HEAP_BLOCK_USED \ - ) - -/*PAGE - * - * _Heap_Block_at - */ - -#define _Heap_Block_at( _base, _offset ) \ - ( (Heap_Block *) \ - _Addresses_Add_offset( (void *)(_base), (_offset) ) ) - -/*PAGE - * - * _Heap_Is_previous_block_free - */ - -#define _Heap_Is_previous_block_free( _the_block ) \ - ( !((_the_block)->back_flag & HEAP_BLOCK_USED) ) - -/*PAGE - * - * _Heap_Is_block_free - */ - -#define _Heap_Is_block_free( _the_block ) \ - ( !((_the_block)->front_flag & HEAP_BLOCK_USED) ) - -/*PAGE - * - * _Heap_Is_block_used - */ - -#define _Heap_Is_block_used( _the_block ) \ - ((_the_block)->front_flag & HEAP_BLOCK_USED) - -/*PAGE - * - * _Heap_Block_size - */ - -#define _Heap_Block_size( _the_block ) \ - ((_the_block)->front_flag & ~HEAP_BLOCK_USED) - -/*PAGE - * - * _Heap_Start_of_user_area - */ - -#define _Heap_Start_of_user_area( _the_block ) \ - ((void *) &(_the_block)->next) - -/*PAGE - * - * _Heap_Is_block_in - */ - -#define _Heap_Is_block_in( _the_heap, _the_block ) \ - ( ((_the_block) >= (_the_heap)->start) && \ - ((_the_block) <= (_the_heap)->final) ) - -/*PAGE - * - * _Heap_Is_page_size_valid - */ - -#define _Heap_Is_page_size_valid( _page_size ) \ - ( ((_page_size) != 0) && \ - (((_page_size) % CPU_HEAP_ALIGNMENT) == 0) ) - -/*PAGE - * - * _Heap_Build_flag - */ - -#define _Heap_Build_flag( _size, _in_use_flag ) \ - ( (_size) | (_in_use_flag)) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/isr.inl b/c/src/exec/score/macros/isr.inl deleted file mode 100644 index 93f234c7ff..0000000000 --- a/c/src/exec/score/macros/isr.inl +++ /dev/null @@ -1,60 +0,0 @@ -/* isr.inl - * - * This include file contains the macro implementation of all - * inlined routines in the Interrupt Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __ISR_inl -#define __ISR_inl - -/*PAGE - * - * _ISR_Handler_initialization - * - */ - -#define _ISR_Handler_initialization() \ - { \ - _ISR_Signals_to_thread_executing = FALSE; \ - _ISR_Nest_level = 0; \ - } - -/*PAGE - * - * _ISR_Is_in_progress - * - */ - -#define _ISR_Is_in_progress() \ - (_ISR_Nest_level != 0) - -/*PAGE - * - * _ISR_Is_vector_number_valid - * - */ - -#define _ISR_Is_vector_number_valid( _vector ) \ - ( (_vector) < CPU_INTERRUPT_NUMBER_OF_VECTORS ) - -/*PAGE - * - * _ISR_Is_valid_user_handler - * - */ - -#define _ISR_Is_valid_user_handler( _handler ) \ - ((_handler) != NULL) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/mppkt.inl b/c/src/exec/score/macros/mppkt.inl deleted file mode 100644 index ff1d51034b..0000000000 --- a/c/src/exec/score/macros/mppkt.inl +++ /dev/null @@ -1,41 +0,0 @@ -/* macros/mppkt.h - * - * This package is the implementation of the Packet Handler - * routines which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_MP_PACKET_h -#define __MACROS_MP_PACKET_h - -/*PAGE - * - * _Mp_packet_Is_valid_packet_class - * - * NOTE: Check for lower bounds (MP_PACKET_CLASSES_FIRST ) is unnecessary - * because this enum starts at lower bound of zero. - */ - -#define _Mp_packet_Is_valid_packet_class( _the_packet_class ) \ - ( (_the_packet_class) <= MP_PACKET_CLASSES_LAST ) - -/*PAGE - * - * _Mp_packet_Is_null - * - */ - -#define _Mp_packet_Is_null ( _the_packet ) \ - ( (_the_packet) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/object.inl b/c/src/exec/score/macros/object.inl deleted file mode 100644 index f4fdc39d6e..0000000000 --- a/c/src/exec/score/macros/object.inl +++ /dev/null @@ -1,146 +0,0 @@ -/* object.inl - * - * This include file contains the macro implementation of all - * of the inlined routines in the Object Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OBJECTS_inl -#define __OBJECTS_inl - -/*PAGE - * - * _Objects_Is_name_valid - * - */ - -#define _Objects_Is_name_valid( _name ) \ - ( (_name) != 0 ) - -/* - * rtems_name_to_characters - * - */ - -#define rtems_name_to_characters( _name, _c1, _c2, _c3, _c4 ) \ - { \ - (*(_c1) = ((_name) >> 24) & 0xff; \ - (*(_c2) = ((_name) >> 16) & 0xff; \ - (*(_c3) = ((_name) >> 8) & 0xff; \ - (*(_c4) = ((_name)) & 0xff; \ - } -); - -/*PAGE - * - * _Objects_Build_id - * - */ - -#define _Objects_Build_id( _node, _index ) \ - ( ((_node) << 16) | (_index) ) - -/*PAGE - * - * rtems_get_node - * - */ - -#define rtems_get_node( _id ) \ - ((_id) >> 16) - -/*PAGE - * - * rtems_get_index - * - */ - -#define rtems_get_index( _id ) \ - ((_id) & 0xFFFF) - -/*PAGE - * - * _Objects_Is_local_node - * - */ - -#define _Objects_Is_local_node( _node ) \ - ( (_node) == _Objects_Local_node ) - -/*PAGE - * - * _Objects_Is_local_id - * - */ - -#define _Objects_Is_local_id( _id ) \ - _Objects_Is_local_node( rtems_get_node(_id) ) - -/*PAGE - * - * _Objects_Are_ids_equal - * - */ - -#define _Objects_Are_ids_equal( _left, _right ) \ - ( (_left) == (_right) ) - -/*PAGE - * - * _Objects_Allocate - * - */ - -#define _Objects_Allocate( _information ) \ - (Objects_Control *) _Chain_Get( &(_information)->Inactive ) - -/*PAGE - * - * _Objects_Free - * - */ - -#define _Objects_Free( _information, _the_object ) \ - _Chain_Append( &(_information)->Inactive, &(_the_object)->Node ) - -/*PAGE - * - * _Objects_Open - * - */ - -#define _Objects_Open( _information, _the_object, _name ) \ - { \ - unsigned32 _index; \ - \ - _index = rtems_get_index( (_the_object)->id ); \ - (_information)->local_table[ _index ] = (_the_object); \ - (_information)->name_table[ _index ] = (_name); \ - } - -/*PAGE - * - * _Objects_Close - * - */ - -#define _Objects_Close( _information, _the_object ) \ - { \ - unsigned32 _index; \ - \ - _index = rtems_get_index( (_the_object)->id ); \ - (_information)->local_table[ _index ] = NULL; \ - (_information)->name_table[ _index ] = 0; \ - } - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/objectmp.inl b/c/src/exec/score/macros/objectmp.inl deleted file mode 100644 index 2f1c5ac7fa..0000000000 --- a/c/src/exec/score/macros/objectmp.inl +++ /dev/null @@ -1,50 +0,0 @@ -/* macros/objectmp.inl - * - * This include file contains the bodies of all inlined routines - * which deal with global objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_MP_OBJECTS_inl -#define __MACROS_MP_OBJECTS_inl - -/*PAGE - * - * _Objects_MP_Allocate_global_object - * - */ - -#define _Objects_MP_Allocate_global_object() \ - (Objects_MP_Control *) \ - _Chain_Get( &_Objects_MP_Inactive_global_objects ) - -/*PAGE - * _Objects_MP_Free_global_object - * - */ - -#define _Objects_MP_Free_global_object( _the_object ) \ - _Chain_Append( \ - &_Objects_MP_Inactive_global_objects, \ - &(_the_object)->Object.Node \ - ) - -/*PAGE - * _Objects_MP_Is_null_global_object - * - */ - -#define _Objects_MP_Is_null_global_object( _the_object ) \ - ( (_the_object) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/priority.inl b/c/src/exec/score/macros/priority.inl deleted file mode 100644 index 7ad1fd909a..0000000000 --- a/c/src/exec/score/macros/priority.inl +++ /dev/null @@ -1,144 +0,0 @@ -/* priority.inl - * - * This file contains the macro implementation of all inlined routines - * in the Priority Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PRIORITY_inl -#define __PRIORITY_inl - -#include - -/*PAGE - * - * _Priority_Handler_initialization - * - */ - -#define _Priority_Handler_initialization() \ - { \ - unsigned32 index; \ - \ - _Priority_Major_bit_map = 0; \ - for ( index=0 ; index <16 ; index++ ) \ - _Priority_Bit_map[ index ] = 0; \ - } - -/*PAGE - * - * _Priority_Is_valid - * - */ - -#define _Priority_Is_valid( _the_priority ) \ - ( ( (_the_priority) >= RTEMS_MINIMUM_PRIORITY ) && \ - ( (_the_priority) <= RTEMS_MAXIMUM_PRIORITY ) ) - -/*PAGE - * - * _Priority_Major - * - */ - -#define _Priority_Major( _the_priority ) ( (_the_priority) / 16 ) - -/*PAGE - * - * _Priority_Minor - * - */ - -#define _Priority_Minor( _the_priority ) ( (_the_priority) % 16 ) - -/*PAGE - * - * _Priority_Add_to_bit_map - * - */ - -#define _Priority_Add_to_bit_map( _the_priority_map ) \ - { \ - *(_the_priority_map)->minor |= (_the_priority_map)->ready_minor; \ - _Priority_Major_bit_map |= (_the_priority_map)->ready_major; \ - } - -/*PAGE - * - * _Priority_Remove_from_bit_map - * - */ - -#define _Priority_Remove_from_bit_map( _the_priority_map ) \ - { \ - *(_the_priority_map)->minor &= (_the_priority_map)->block_minor; \ - if ( *(_the_priority_map)->minor == 0 ) \ - _Priority_Major_bit_map &= (_the_priority_map)->block_major; \ - } - -/*PAGE - * - * _Priority_Get_highest - * - */ - -#define _Priority_Get_highest( _high_priority ) \ - { \ - Priority_Bit_map_control minor; \ - Priority_Bit_map_control major; \ - \ - _Bitfield_Find_first_bit( _Priority_Major_bit_map, major ); \ - _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); \ - \ - (_high_priority) = (_CPU_Priority_Bits_index( major ) * 16) + \ - _CPU_Priority_Bits_index( minor ); \ - } - -/*PAGE - * - * _Priority_Initialize_information - * - */ - -#define _Priority_Initialize_information( \ - _the_priority_map, _new_priority ) \ - { \ - Priority_Bit_map_control _major; \ - Priority_Bit_map_control _minor; \ - Priority_Bit_map_control _mask; \ - \ - _major = _Priority_Major( (_new_priority) ); \ - _minor = _Priority_Minor( (_new_priority) ); \ - \ - (_the_priority_map)->minor = \ - &_Priority_Bit_map[ _CPU_Priority_Bits_index(_major) ]; \ - \ - _mask = _CPU_Priority_Mask( _major ); \ - (_the_priority_map)->ready_major = _mask; \ - (_the_priority_map)->block_major = ~_mask; \ - \ - _mask = _CPU_Priority_Mask( _minor ); \ - (_the_priority_map)->ready_minor = _mask; \ - (_the_priority_map)->block_minor = ~_mask; \ - } - -/*PAGE - * - * _Priority_Is_group_empty - * - */ - -#define _Priority_Is_group_empty ( _the_priority ) \ - ( (_the_priority) == 0 ) -} -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/README b/c/src/exec/score/macros/rtems/score/README deleted file mode 100644 index b2f0c4d481..0000000000 --- a/c/src/exec/score/macros/rtems/score/README +++ /dev/null @@ -1,18 +0,0 @@ -# -# $Id$ -# - -The files in this directory are not considered the "primary" source -of inlined routines for RTEMS. The "inline" directory contains -the implementations of the inlined basis which are regularly -tested. In general, an effort is made to keep the contents of -this directory up to date but testing is only performed irregularly -and even then it is usually with a single target processor and BSP. - -The primary purpose of the code in this directory is to insure -that RTEMS can be compiled using a C compiler which does not support -static inline routines. - -These were last successfully tested on 2/1/95 on a prerelease version -of 3.2.0. The testing was done only on the Force CPU386 i386 target board. -No testing was done on version of the code in the final release. diff --git a/c/src/exec/score/macros/rtems/score/address.inl b/c/src/exec/score/macros/rtems/score/address.inl deleted file mode 100644 index f2672f2500..0000000000 --- a/c/src/exec/score/macros/rtems/score/address.inl +++ /dev/null @@ -1,79 +0,0 @@ -/* macros/address.h - * - * This include file contains the bodies of the routines - * about addresses which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_ADDRESSES_h -#define __MACROS_ADDRESSES_h - -/*PAGE - * - * _Addresses_Add_offset - * - */ - -#define _Addresses_Add_offset( _base, _offset ) \ - ((void *)(_base) + (_offset)) - -/*PAGE - * - * _Addresses_Subtract_offset - * - */ - -#define _Addresses_Subtract_offset( _base, _offset ) \ - ((void *)(_base) - (_offset)) - -/*PAGE - * - * _Addresses_Add - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -#define _Addresses_Add( _left, _right ) \ - ((void *)(_left) + (unsigned32)(_right)) - -/*PAGE - * - * _Addresses_Subtract - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -#define _Addresses_Subtract( _left, _right ) \ - ((void *)(_left) - (void *)(_right)) - -/*PAGE - * - * _Addresses_Is_aligned - * - */ - -#define _Addresses_Is_aligned( _address ) \ - ( ( (unsigned32)(_address) % 4 ) == 0 ) - -/*PAGE - * - * _Addresses_Is_in_range - * - */ - -#define _Addresses_Is_in_range( _address, _base, _limit ) \ - ( (_address) >= (_base) && (_address) <= (_limit) ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/chain.inl b/c/src/exec/score/macros/rtems/score/chain.inl deleted file mode 100644 index a53b3fc270..0000000000 --- a/c/src/exec/score/macros/rtems/score/chain.inl +++ /dev/null @@ -1,200 +0,0 @@ -/* macros/chain.h - * - * This include file contains the bodies of the routines which are - * associated with doubly linked chains and inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_CHAIN_h -#define __MACROS_CHAIN_h - -/*PAGE - * - * _Chain_Are_nodes_equal - */ - -#define _Chain_Are_nodes_equal( _left, _right ) \ - ( (_left) == (_right) ) - -/*PAGE - * - * _Chain_Is_null - */ - -#define _Chain_Is_null( _the_chain ) \ - ( (_the_chain) == NULL ) - -/*PAGE - * - * _Chain_Is_null_node - */ - -#define _Chain_Is_null_node( _the_node ) \ - ( (_the_node) == NULL ) - -/*PAGE - * - * _Chain_Head - */ - -#define _Chain_Head( _the_chain ) \ - ((Chain_Node *) (_the_chain)) - -/*PAGE - * - * _Chain_Tail - */ - -#define _Chain_Tail( _the_chain ) \ - ((Chain_Node *) &(_the_chain)->permanent_null) - -/*PAGE - * - * _Chain_Is_empty - */ - -#define _Chain_Is_empty( _the_chain ) \ - ( (_the_chain)->first == _Chain_Tail( (_the_chain) ) ) - -/*PAGE - * - * _Chain_Is_first - */ - -#define _Chain_Is_first( _the_node ) \ - ( (the_node)->previous == NULL ) - -/*PAGE - * - * _Chain_Is_last - */ - -#define _Chain_Is_last( _the_node ) \ - ( (_the_node)->next == NULL ) - -/*PAGE - * - * _Chain_Has_only_one_node - */ - -#define _Chain_Has_only_one_node( _the_chain ) \ - ( (_the_chain)->first == (_the_chain)->last ) - -/*PAGE - * - * _Chain_Is_head - */ - -#define _Chain_Is_head( _the_chain, _the_node ) \ - ( (_the_node) == _Chain_Head( (_the_chain) ) ) - -/*PAGE - * - * _Chain_Is_tail - */ - -#define _Chain_Is_tail( _the_chain, _the_node ) \ - ( (_the_node) == _Chain_Tail( (_the_chain) ) ) - -/*PAGE - * - * Chain_Initialize_empty - */ - -#define _Chain_Initialize_empty( _the_chain ) \ -{ \ - (_the_chain)->first = _Chain_Tail( (_the_chain) ); \ - (_the_chain)->permanent_null = NULL; \ - (_the_chain)->last = _Chain_Head( (_the_chain) ); \ -} - -/*PAGE - * - * _Chain_Extract_unprotected - */ - -#define _Chain_Extract_unprotected( _the_node ) \ -{ \ - Chain_Node *_next; \ - Chain_Node *_previous; \ - \ - _next = (_the_node)->next; \ - _previous = (_the_node)->previous; \ - _next->previous = _previous; \ - _previous->next = _next; \ -} - -/*PAGE - * - * _Chain_Get_unprotected - */ - -/*PAGE - * - * Chain_Get_unprotected - */ - -#define _Chain_Get_unprotected( _the_chain ) \ - (( !_Chain_Is_empty( (_the_chain) ) ) \ - ? _Chain_Get_unprotected( (_the_chain) ) \ - : NULL) - -/*PAGE - * - * _Chain_Insert_unprotected - */ - -#define _Chain_Insert_unprotected( _after_node, _the_node ) \ -{ \ - Chain_Node *_before_node; \ - \ - (_the_node)->previous = (_after_node); \ - _before_node = (_after_node)->next; \ - (_after_node)->next = (_the_node); \ - (_the_node)->next = _before_node; \ - _before_node->previous = (_the_node); \ -} - -/*PAGE - * - * _Chain_Append_unprotected - */ - -#define _Chain_Append_unprotected( _the_chain, _the_node ) \ -{ \ - Chain_Node *_old_last_node; \ - \ - (_the_node)->next = _Chain_Tail( (_the_chain) ); \ - _old_last_node = (_the_chain)->last; \ - (_the_chain)->last = (_the_node); \ - _old_last_node->next = (_the_node); \ - (_the_node)->previous = _old_last_node; \ -} - -/*PAGE - * - * _Chain_Prepend_unprotected - */ - -#define _Chain_Prepend_unprotected( _the_chain, _the_node ) \ - _Chain_Insert_unprotected( _Chain_Head( (_the_chain) ), (_the_node) ) - -/*PAGE - * - * _Chain_Prepend - */ - -#define _Chain_Prepend( _the_chain, _the_node ) \ - _Chain_Insert( _Chain_Head( (_the_chain) ), (_the_node) ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/heap.inl b/c/src/exec/score/macros/rtems/score/heap.inl deleted file mode 100644 index 6f06478207..0000000000 --- a/c/src/exec/score/macros/rtems/score/heap.inl +++ /dev/null @@ -1,136 +0,0 @@ -/* heap.inl - * - * This file contains the macro implementation of the inlined - * routines from the heap handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __HEAP_inl -#define __HEAP_inl - -#include - -/*PAGE - * - * _Heap_Head - */ - -#define _Heap_Head( _the_heap ) \ - ((Heap_Block *)&(_the_heap)->start) - -/*PAGE - * - * _Heap_Tail - */ - -#define _Heap_Tail( _the_heap ) \ - ((Heap_Block *)&(_the_heap)->final) - -/*PAGE - * - * _Heap_Previous_block - */ - -#define _Heap_Previous_block( _the_block ) \ - ( (Heap_Block *) _Addresses_Subtract_offset( \ - (void *)(_the_block), \ - (_the_block)->back_flag & ~ HEAP_BLOCK_USED \ - ) - -/*PAGE - * - * _Heap_Next_block - */ - -#define _Heap_Next_block( _the_block ) \ - ( (Heap_Block *) _Addresses_Add_offset( \ - (void *)(_the_block), \ - (_the_block)->front_flag & ~ HEAP_BLOCK_USED \ - ) - -/*PAGE - * - * _Heap_Block_at - */ - -#define _Heap_Block_at( _base, _offset ) \ - ( (Heap_Block *) \ - _Addresses_Add_offset( (void *)(_base), (_offset) ) ) - -/*PAGE - * - * _Heap_Is_previous_block_free - */ - -#define _Heap_Is_previous_block_free( _the_block ) \ - ( !((_the_block)->back_flag & HEAP_BLOCK_USED) ) - -/*PAGE - * - * _Heap_Is_block_free - */ - -#define _Heap_Is_block_free( _the_block ) \ - ( !((_the_block)->front_flag & HEAP_BLOCK_USED) ) - -/*PAGE - * - * _Heap_Is_block_used - */ - -#define _Heap_Is_block_used( _the_block ) \ - ((_the_block)->front_flag & HEAP_BLOCK_USED) - -/*PAGE - * - * _Heap_Block_size - */ - -#define _Heap_Block_size( _the_block ) \ - ((_the_block)->front_flag & ~HEAP_BLOCK_USED) - -/*PAGE - * - * _Heap_Start_of_user_area - */ - -#define _Heap_Start_of_user_area( _the_block ) \ - ((void *) &(_the_block)->next) - -/*PAGE - * - * _Heap_Is_block_in - */ - -#define _Heap_Is_block_in( _the_heap, _the_block ) \ - ( ((_the_block) >= (_the_heap)->start) && \ - ((_the_block) <= (_the_heap)->final) ) - -/*PAGE - * - * _Heap_Is_page_size_valid - */ - -#define _Heap_Is_page_size_valid( _page_size ) \ - ( ((_page_size) != 0) && \ - (((_page_size) % CPU_HEAP_ALIGNMENT) == 0) ) - -/*PAGE - * - * _Heap_Build_flag - */ - -#define _Heap_Build_flag( _size, _in_use_flag ) \ - ( (_size) | (_in_use_flag)) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/isr.inl b/c/src/exec/score/macros/rtems/score/isr.inl deleted file mode 100644 index 93f234c7ff..0000000000 --- a/c/src/exec/score/macros/rtems/score/isr.inl +++ /dev/null @@ -1,60 +0,0 @@ -/* isr.inl - * - * This include file contains the macro implementation of all - * inlined routines in the Interrupt Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __ISR_inl -#define __ISR_inl - -/*PAGE - * - * _ISR_Handler_initialization - * - */ - -#define _ISR_Handler_initialization() \ - { \ - _ISR_Signals_to_thread_executing = FALSE; \ - _ISR_Nest_level = 0; \ - } - -/*PAGE - * - * _ISR_Is_in_progress - * - */ - -#define _ISR_Is_in_progress() \ - (_ISR_Nest_level != 0) - -/*PAGE - * - * _ISR_Is_vector_number_valid - * - */ - -#define _ISR_Is_vector_number_valid( _vector ) \ - ( (_vector) < CPU_INTERRUPT_NUMBER_OF_VECTORS ) - -/*PAGE - * - * _ISR_Is_valid_user_handler - * - */ - -#define _ISR_Is_valid_user_handler( _handler ) \ - ((_handler) != NULL) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/mppkt.inl b/c/src/exec/score/macros/rtems/score/mppkt.inl deleted file mode 100644 index ff1d51034b..0000000000 --- a/c/src/exec/score/macros/rtems/score/mppkt.inl +++ /dev/null @@ -1,41 +0,0 @@ -/* macros/mppkt.h - * - * This package is the implementation of the Packet Handler - * routines which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_MP_PACKET_h -#define __MACROS_MP_PACKET_h - -/*PAGE - * - * _Mp_packet_Is_valid_packet_class - * - * NOTE: Check for lower bounds (MP_PACKET_CLASSES_FIRST ) is unnecessary - * because this enum starts at lower bound of zero. - */ - -#define _Mp_packet_Is_valid_packet_class( _the_packet_class ) \ - ( (_the_packet_class) <= MP_PACKET_CLASSES_LAST ) - -/*PAGE - * - * _Mp_packet_Is_null - * - */ - -#define _Mp_packet_Is_null ( _the_packet ) \ - ( (_the_packet) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/object.inl b/c/src/exec/score/macros/rtems/score/object.inl deleted file mode 100644 index f4fdc39d6e..0000000000 --- a/c/src/exec/score/macros/rtems/score/object.inl +++ /dev/null @@ -1,146 +0,0 @@ -/* object.inl - * - * This include file contains the macro implementation of all - * of the inlined routines in the Object Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OBJECTS_inl -#define __OBJECTS_inl - -/*PAGE - * - * _Objects_Is_name_valid - * - */ - -#define _Objects_Is_name_valid( _name ) \ - ( (_name) != 0 ) - -/* - * rtems_name_to_characters - * - */ - -#define rtems_name_to_characters( _name, _c1, _c2, _c3, _c4 ) \ - { \ - (*(_c1) = ((_name) >> 24) & 0xff; \ - (*(_c2) = ((_name) >> 16) & 0xff; \ - (*(_c3) = ((_name) >> 8) & 0xff; \ - (*(_c4) = ((_name)) & 0xff; \ - } -); - -/*PAGE - * - * _Objects_Build_id - * - */ - -#define _Objects_Build_id( _node, _index ) \ - ( ((_node) << 16) | (_index) ) - -/*PAGE - * - * rtems_get_node - * - */ - -#define rtems_get_node( _id ) \ - ((_id) >> 16) - -/*PAGE - * - * rtems_get_index - * - */ - -#define rtems_get_index( _id ) \ - ((_id) & 0xFFFF) - -/*PAGE - * - * _Objects_Is_local_node - * - */ - -#define _Objects_Is_local_node( _node ) \ - ( (_node) == _Objects_Local_node ) - -/*PAGE - * - * _Objects_Is_local_id - * - */ - -#define _Objects_Is_local_id( _id ) \ - _Objects_Is_local_node( rtems_get_node(_id) ) - -/*PAGE - * - * _Objects_Are_ids_equal - * - */ - -#define _Objects_Are_ids_equal( _left, _right ) \ - ( (_left) == (_right) ) - -/*PAGE - * - * _Objects_Allocate - * - */ - -#define _Objects_Allocate( _information ) \ - (Objects_Control *) _Chain_Get( &(_information)->Inactive ) - -/*PAGE - * - * _Objects_Free - * - */ - -#define _Objects_Free( _information, _the_object ) \ - _Chain_Append( &(_information)->Inactive, &(_the_object)->Node ) - -/*PAGE - * - * _Objects_Open - * - */ - -#define _Objects_Open( _information, _the_object, _name ) \ - { \ - unsigned32 _index; \ - \ - _index = rtems_get_index( (_the_object)->id ); \ - (_information)->local_table[ _index ] = (_the_object); \ - (_information)->name_table[ _index ] = (_name); \ - } - -/*PAGE - * - * _Objects_Close - * - */ - -#define _Objects_Close( _information, _the_object ) \ - { \ - unsigned32 _index; \ - \ - _index = rtems_get_index( (_the_object)->id ); \ - (_information)->local_table[ _index ] = NULL; \ - (_information)->name_table[ _index ] = 0; \ - } - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/objectmp.inl b/c/src/exec/score/macros/rtems/score/objectmp.inl deleted file mode 100644 index 2f1c5ac7fa..0000000000 --- a/c/src/exec/score/macros/rtems/score/objectmp.inl +++ /dev/null @@ -1,50 +0,0 @@ -/* macros/objectmp.inl - * - * This include file contains the bodies of all inlined routines - * which deal with global objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_MP_OBJECTS_inl -#define __MACROS_MP_OBJECTS_inl - -/*PAGE - * - * _Objects_MP_Allocate_global_object - * - */ - -#define _Objects_MP_Allocate_global_object() \ - (Objects_MP_Control *) \ - _Chain_Get( &_Objects_MP_Inactive_global_objects ) - -/*PAGE - * _Objects_MP_Free_global_object - * - */ - -#define _Objects_MP_Free_global_object( _the_object ) \ - _Chain_Append( \ - &_Objects_MP_Inactive_global_objects, \ - &(_the_object)->Object.Node \ - ) - -/*PAGE - * _Objects_MP_Is_null_global_object - * - */ - -#define _Objects_MP_Is_null_global_object( _the_object ) \ - ( (_the_object) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/priority.inl b/c/src/exec/score/macros/rtems/score/priority.inl deleted file mode 100644 index 7ad1fd909a..0000000000 --- a/c/src/exec/score/macros/rtems/score/priority.inl +++ /dev/null @@ -1,144 +0,0 @@ -/* priority.inl - * - * This file contains the macro implementation of all inlined routines - * in the Priority Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PRIORITY_inl -#define __PRIORITY_inl - -#include - -/*PAGE - * - * _Priority_Handler_initialization - * - */ - -#define _Priority_Handler_initialization() \ - { \ - unsigned32 index; \ - \ - _Priority_Major_bit_map = 0; \ - for ( index=0 ; index <16 ; index++ ) \ - _Priority_Bit_map[ index ] = 0; \ - } - -/*PAGE - * - * _Priority_Is_valid - * - */ - -#define _Priority_Is_valid( _the_priority ) \ - ( ( (_the_priority) >= RTEMS_MINIMUM_PRIORITY ) && \ - ( (_the_priority) <= RTEMS_MAXIMUM_PRIORITY ) ) - -/*PAGE - * - * _Priority_Major - * - */ - -#define _Priority_Major( _the_priority ) ( (_the_priority) / 16 ) - -/*PAGE - * - * _Priority_Minor - * - */ - -#define _Priority_Minor( _the_priority ) ( (_the_priority) % 16 ) - -/*PAGE - * - * _Priority_Add_to_bit_map - * - */ - -#define _Priority_Add_to_bit_map( _the_priority_map ) \ - { \ - *(_the_priority_map)->minor |= (_the_priority_map)->ready_minor; \ - _Priority_Major_bit_map |= (_the_priority_map)->ready_major; \ - } - -/*PAGE - * - * _Priority_Remove_from_bit_map - * - */ - -#define _Priority_Remove_from_bit_map( _the_priority_map ) \ - { \ - *(_the_priority_map)->minor &= (_the_priority_map)->block_minor; \ - if ( *(_the_priority_map)->minor == 0 ) \ - _Priority_Major_bit_map &= (_the_priority_map)->block_major; \ - } - -/*PAGE - * - * _Priority_Get_highest - * - */ - -#define _Priority_Get_highest( _high_priority ) \ - { \ - Priority_Bit_map_control minor; \ - Priority_Bit_map_control major; \ - \ - _Bitfield_Find_first_bit( _Priority_Major_bit_map, major ); \ - _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); \ - \ - (_high_priority) = (_CPU_Priority_Bits_index( major ) * 16) + \ - _CPU_Priority_Bits_index( minor ); \ - } - -/*PAGE - * - * _Priority_Initialize_information - * - */ - -#define _Priority_Initialize_information( \ - _the_priority_map, _new_priority ) \ - { \ - Priority_Bit_map_control _major; \ - Priority_Bit_map_control _minor; \ - Priority_Bit_map_control _mask; \ - \ - _major = _Priority_Major( (_new_priority) ); \ - _minor = _Priority_Minor( (_new_priority) ); \ - \ - (_the_priority_map)->minor = \ - &_Priority_Bit_map[ _CPU_Priority_Bits_index(_major) ]; \ - \ - _mask = _CPU_Priority_Mask( _major ); \ - (_the_priority_map)->ready_major = _mask; \ - (_the_priority_map)->block_major = ~_mask; \ - \ - _mask = _CPU_Priority_Mask( _minor ); \ - (_the_priority_map)->ready_minor = _mask; \ - (_the_priority_map)->block_minor = ~_mask; \ - } - -/*PAGE - * - * _Priority_Is_group_empty - * - */ - -#define _Priority_Is_group_empty ( _the_priority ) \ - ( (_the_priority) == 0 ) -} -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/stack.inl b/c/src/exec/score/macros/rtems/score/stack.inl deleted file mode 100644 index 208503b45f..0000000000 --- a/c/src/exec/score/macros/rtems/score/stack.inl +++ /dev/null @@ -1,50 +0,0 @@ -/* stack.inl - * - * This file contains the macro implementation of the inlined - * routines from the Stack Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STACK_inl -#define __STACK_inl - -/*PAGE - * - * _Stack_Initialize - * - */ - -#define _Stack_Initialize( _the_stack, _starting_address, _size ) \ - { \ - (_the_stack)->area = (_starting_address); \ - (_the_stack)->size = (_size); \ - } - -/*PAGE - * - * _Stack_Is_enough - * - */ - -#define _Stack_Is_enough( _size ) \ - ( (_size) >= RTEMS_MINIMUM_STACK_SIZE ) - -/*PAGE - * - * _Stack_Adjust_size - */ - -#define _Stack_Adjust_size( _size ) \ - ((_size) + CPU_STACK_ALIGNMENT) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/states.inl b/c/src/exec/score/macros/rtems/score/states.inl deleted file mode 100644 index f69c4ba042..0000000000 --- a/c/src/exec/score/macros/rtems/score/states.inl +++ /dev/null @@ -1,201 +0,0 @@ -/* states.inl - * - * This file contains the macro implementation of the inlined - * routines associated with RTEMS state information. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STATES_inl -#define __STATES_inl - -/*PAGE - * - * _States_Set - * - */ - -#define _States_Set( _states_to_set, _current_state ) \ - ((_current_state) | (_states_to_set)) - -/*PAGE - * - * _States_Clear - * - */ - -#define _States_Clear( _states_to_clear, _current_state ) \ - ((_current_state) & ~(_states_to_clear)) - -/*PAGE - * - * _States_Is_ready - * - */ - -#define _States_Is_ready( _the_states ) \ - ( (_the_states) == STATES_READY ) - -/*PAGE - * - * _States_Is_only_dormant - * - */ - -#define _States_Is_only_dormant( _the_states ) \ - ( (_the_states) == STATES_DORMANT ) - -/*PAGE - * - * _States_Is_dormant - * - */ - -#define _States_Is_dormant( _the_states ) \ - ( (_the_states) & STATES_DORMANT ) - -/*PAGE - * - * _States_Is_suspended - * - */ - -#define _States_Is_suspended( _the_states ) \ - ( (_the_states) & STATES_SUSPENDED ) - -/*PAGE - * - * _States_Is_Transient - * - */ - -#define _States_Is_transient( _the_states ) \ - ( (_the_states) & STATES_TRANSIENT ) - -/*PAGE - * - * _States_Is_delaying - * - */ - -#define _States_Is_delaying( _the_states ) \ - ( (_the_states) & STATES_DELAYING ) - -/*PAGE - * - * _States_Is_waiting_for_buffer - * - */ - -#define _States_Is_waiting_for_buffer( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_BUFFER ) - -/*PAGE - * - * _States_Is_waiting_for_segment - * - */ - -#define _States_Is_waiting_for_segment( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_SEGMENT ) - -/*PAGE - * - * _States_Is_waiting_for_message - * - */ - -#define _States_Is_waiting_for_message( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_MESSAGE ) - -/*PAGE - * - * _States_Is_waiting_for_event - * - */ - -#define _States_Is_waiting_for_event( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_EVENT ) - -/*PAGE - * - * _States_Is_waiting_for_semaphore - * - */ - -#define _States_Is_waiting_for_semaphore( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_SEMAPHORE ) - -/*PAGE - * - * _States_Is_waiting_for_time - * - */ - -#define _States_Is_waiting_for_time( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_TIME ) - -/*PAGE - * - * _States_Is_waiting_for_rpc_reply - * - */ - -#define _States_Is_waiting_for_rpc_reply( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_RPC_REPLY ) - -/*PAGE - * - * _States_Is_waiting_for_period - * - */ - -#define _States_Is_waiting_for_period( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_PERIOD ) - -/*PAGE - * - * _States_Is_locally_blocked - * - */ - -#define _States_Is_locally_blocked( _the_states ) \ - ( (_the_states) & STATES_LOCALLY_BLOCKED ) - -/*PAGE - * - * _States_Is_waiting_on_thread_queue - * - */ - -#define _States_Is_waiting_on_thread_queue( _the_states ) \ - ( (_the_states) & STATES_WAITING_ON_THREAD_QUEUE ) - -/*PAGE - * - * _States_Is_blocked - * - */ - -#define _States_Is_blocked( _the_states ) \ - ( (_the_states) & STATES_BLOCKED ) - -/*PAGE - * - * _States_Are_set - * - */ - -#define _States_Are_set( _the_states, _mask ) \ - ( ((_the_states) & (_mask)) != STATES_READY ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/sysstate.inl b/c/src/exec/score/macros/rtems/score/sysstate.inl deleted file mode 100644 index 5cc9f9e9f9..0000000000 --- a/c/src/exec/score/macros/rtems/score/sysstate.inl +++ /dev/null @@ -1,77 +0,0 @@ -/* sysstates.inl - * - * This file contains the macro implementation of routines regarding the - * system state. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SYSTEM_STATE_inl -#define __SYSTEM_STATE_inl - -/*PAGE - * - * _System_state_Set - */ - -#define _System_state_Set( _state ) \ - _System_state_Current = (_state) - -/*PAGE - * - * _System_state_Get - */ - -#define _System_state_Get( void ) \ - (_System_state_Current) - -/*PAGE - * - * _System_state_Is_before_initialization - */ - -#define _System_state_Is_before_initialization( _state ) \ - ((_state) == SYSTEM_STATE_BEFORE_INITIALIZATION) - -/*PAGE - * - * _System_state_Is_before_multitasking - */ - -#define _System_state_Is_before_multitasking( _state ) \ - ((_state) == SYSTEM_STATE_BEFORE_MULTITASKING) - -/*PAGE - * - * _System_state_Is_begin_multitasking - */ - -#define _System_state_Is_begin_multitasking( _state ) \ - ((_state) == SYSTEM_STATE_BEGIN_MULTITASKING) - -/*PAGE - * - * _System_state_Is_up - */ - -#define _System_state_Is_up( _state ) \ - ((_state) == SYSTEM_STATE_UP) - -/*PAGE - * - * _System_state_Is_failed - */ - -#define _System_state_Is_failed( _state ) \ - ((_state) == SYSTEM_STATE_FAILED) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/thread.inl b/c/src/exec/score/macros/rtems/score/thread.inl deleted file mode 100644 index 0e041de5ac..0000000000 --- a/c/src/exec/score/macros/rtems/score/thread.inl +++ /dev/null @@ -1,193 +0,0 @@ -/* thread.inl - * - * This file contains the macro implementation of the inlined - * routines from the Thread handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_inl -#define __THREAD_inl - -/*PAGE - * - * _Thread_Stop_multitasking - * - */ - -#define _Thread_Stop_multitasking() \ - _Context_Switch( &_Thread_Executing->Registers, &_Thread_BSP_context ); - -/*PAGE - * - * _Thread_Is_executing - * - */ - -#define _Thread_Is_executing( _the_thread ) \ - ( (_the_thread) == _Thread_Executing ) - -/*PAGE - * - * _Thread_Is_heir - * - */ - -#define _Thread_Is_heir( _the_thread ) \ - ( (_the_thread) == _Thread_Heir ) - -/*PAGE - * - * _Thread_Is_executing_also_the_heir - * - */ - -#define _Thread_Is_executing_also_the_heir() \ - ( _Thread_Executing == _Thread_Heir ) - -/*PAGE - * - * _Thread_Resume - * - */ - -#define _Thread_Resume( _the_thread ) \ - _Thread_Clear_state( (_the_thread), STATES_SUSPENDED ) - -/*PAGE - * - * _Thread_Unblock - * - */ - -#define _Thread_Unblock( _the_thread ) \ - _Thread_Clear_state( (_the_thread), STATES_BLOCKED ); - -/*PAGE - * - * _Thread_Restart_self - * - */ - -#define _Thread_Restart_self() \ - { \ - if ( _Thread_Executing->fp_context != NULL ) \ - _Context_Restore_fp( &_Thread_Executing->fp_context ); \ - \ - _CPU_Context_Restart_self( &_Thread_Executing->Registers ); \ - } - -/*PAGE - * - * _Thread_Calculate_heir - * - */ - -#define _Thread_Calculate_heir() \ - { \ - rtems_task_priority highest; \ - \ - _Priority_Get_highest( highest ); \ - \ - _Thread_Heir = (Thread_Control *) _Thread_Ready_chain[ highest ].first; \ - } - -/*PAGE - * - * _Thread_Is_allocated_fp - * - */ - -#define _Thread_Is_allocated_fp( _the_thread ) \ - ( (_the_thread) == _Thread_Allocated_fp ) - -/*PAGE - * - * _Thread_Deallocate_fp - * - */ - -#define _Thread_Deallocate_fp() \ - _Thread_Allocated_fp = NULL - -/*PAGE - * - * _Thread_Disable_dispatch - * - */ - -#define _Thread_Disable_dispatch() \ - _Thread_Dispatch_disable_level += 1 - -/*PAGE - * - * _Thread_Enable_dispatch - * - */ - -#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE ) -#define _Thread_Enable_dispatch() \ - { if ( (--_Thread_Dispatch_disable_level) == 0 ) \ - _Thread_Dispatch(); \ - } -#endif - -#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE ) -void _Thread_Enable_dispatch( void ); -#endif - -/*PAGE - * - * _Thread_Unnest_dispatch - * - */ - -#define _Thread_Unnest_dispatch() \ - _Thread_Dispatch_disable_level -= 1 - -/*PAGE - * - * _Thread_Is_dispatching_enabled - * - */ - -#define _Thread_Is_dispatching_enabled() \ - ( _Thread_Dispatch_disable_level == 0 ) - -/*PAGE - * - * _Thread_Is_context_switch_necessary - * - */ - -#define _Thread_Is_context_switch_necessary() \ - ( _Context_Switch_necessary == TRUE ) - -/*PAGE - * - * _Thread_Dispatch_initialization - * - */ - -#define _Thread_Dispatch_initialization() \ - _Thread_Dispatch_disable_level = 1 - -/*PAGE - * - * _Thread_Is_null - * - */ - -#define _Thread_Is_null( _the_thread ) \ - ( (_the_thread) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/threadmp.inl b/c/src/exec/score/macros/rtems/score/threadmp.inl deleted file mode 100644 index c601862f96..0000000000 --- a/c/src/exec/score/macros/rtems/score/threadmp.inl +++ /dev/null @@ -1,50 +0,0 @@ -/* macros/threadmp.h - * - * This include file contains the bodies of all inlined routines - * for the multiprocessing part of thread package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_MP_THREAD_h -#define __MACROS_MP_THREAD_h - -/*PAGE - * - * _Thread_MP_Is_receive - * - */ - -#define _Thread_MP_Is_receive( _the_thread ) \ - ( (_the_thread) == _Thread_MP_Receive) - -/*PAGE - * - * _Thread_MP_Free_proxy - * - */ - -#define _Thread_MP_Free_proxy( _the_thread ) \ -{ \ - Thread_Proxy_control *_the_proxy; \ - \ - _the_proxy = (Thread_Proxy_control *) (_the_thread); \ - \ - _Chain_Extract( &_the_proxy->Active ); \ - \ - _Chain_Append( \ - &_Thread_MP_Inactive_proxies, \ - &(_the_thread)->Object.Node \ - ); \ -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/tod.inl b/c/src/exec/score/macros/rtems/score/tod.inl deleted file mode 100644 index 9360a588b1..0000000000 --- a/c/src/exec/score/macros/rtems/score/tod.inl +++ /dev/null @@ -1,59 +0,0 @@ -/* tod.inl - * - * This file contains the macro implementation of the inlined routines - * from the Time of Day Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIME_OF_DAY_inl -#define __TIME_OF_DAY_inl - -/*PAGE - * - * _TOD_Is_set - * - */ - -#define _TOD_Is_set() \ - _Watchdog_Is_active( &_TOD_Seconds_watchdog ) - -/*PAGE - * - * _TOD_Tickle_ticks - * - */ - -#define _TOD_Tickle_ticks() \ - _TOD_Current.ticks++; \ - _TOD_Ticks_since_boot++ - -/*PAGE - * - * _TOD_Deactivate - * - */ - -#define _TOD_Deactivate() \ - _Watchdog_Remove( &_TOD_Seconds_watchdog ) - -/*PAGE - * - * _TOD_Activate - * - */ - -#define _TOD_Activate( ticks ) \ - _Watchdog_Insert_ticks( &_TOD_Seconds_watchdog, \ - (ticks), WATCHDOG_ACTIVATE_NOW ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/tqdata.inl b/c/src/exec/score/macros/rtems/score/tqdata.inl deleted file mode 100644 index 5f657c1a94..0000000000 --- a/c/src/exec/score/macros/rtems/score/tqdata.inl +++ /dev/null @@ -1,39 +0,0 @@ -/* tqdata.inl - * - * This file contains the macro implementation of the inlined - * routines needed to support the Thread Queue Data. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_QUEUE_DATA_inl -#define __THREAD_QUEUE_DATA_inl - -/*PAGE - * - * _Thread_queue_Header_number - * - */ - -#define _Thread_queue_Header_number( _the_priority ) \ - ( (_the_priority) >> 6 ) - -/*PAGE - * - * _Thread_queue_Is_reverse_search - * - */ - -#define _Thread_queue_Is_reverse_search( _the_priority ) \ - ( (_the_priority) & 0x20 ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/userext.inl b/c/src/exec/score/macros/rtems/score/userext.inl deleted file mode 100644 index 781f30ad40..0000000000 --- a/c/src/exec/score/macros/rtems/score/userext.inl +++ /dev/null @@ -1,184 +0,0 @@ -/* userext.inl - * - * This file contains the macro implementation of the inlined routines - * from the User Extension Handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __USER_EXTENSIONS_inl -#define __USER_EXTENSIONS_inl - -/*PAGE - * - * _User_extensions_Handler_initialization - * - */ - -#define _User_extensions_Handler_initialization( _initial_extensions ) \ - { \ - _Chain_Initialize_empty( &_User_extensions_List ); \ - \ - if ( (_initial_extensions) ) { \ - _User_extensions_Initial.Callouts = *(_initial_extensions); \ - _Chain_Append( \ - &_User_extensions_List, &_User_extensions_Initial.Node ); \ - } \ - } - -/*PAGE - * - * _User_extensions_Add_set - */ - -#define _User_extensions_Add_set( _the_extension, _extension_table ) \ - { \ - (_the_extension)->Callouts = *(_extension_table); \ - \ - _Chain_Append( &_User_extensions_List, &(_the_extension)->Node ); \ - } - -/*PAGE - * - * _User_extensions_Remove_set - */ - -#define _User_extensions_Remove_set( _the_extension ) \ - _Chain_Extract( &(_the_extension)->Node ) - -/*PAGE - * - * _User_extensions_Run_list_forward - * - * NOTE: No parentheses around macro names here to avoid - * messing up the name and function call expansion. - */ - -#define _User_extensions_Run_list_forward( _name, _arguments ) \ - do { \ - Chain_Node *the_node; \ - User_extensions_Control *the_extension; \ - \ - for ( the_node = _User_extensions_List.first ; \ - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; \ - the_node = the_node->next ) { \ - the_extension = (User_extensions_Control *) the_node; \ - \ - if ( the_extension->Callouts.## _name != NULL ) \ - (*the_extension->Callouts.## _name) _arguments; \ - \ - } \ - \ - } while ( 0 ) - -/*PAGE - * - * _User_extensions_Run_list_backward - * - * NOTE: No parentheses around macro names here to avoid - * messing up the name and function call expansion. - */ - -#define _User_extensions_Run_list_backward( _name, _arguments ) \ - do { \ - Chain_Node *the_node; \ - User_extensions_Control *the_extension; \ - \ - for ( the_node = _User_extensions_List.last ; \ - !_Chain_Is_head( &_User_extensions_List, the_node ) ; \ - the_node = the_node->previous ) { \ - the_extension = (User_extensions_Control *) the_node; \ - \ - if ( the_extension->Callouts.## _name != NULL ) \ - (*the_extension->Callouts.## _name) _arguments; \ - \ - } \ - \ - } while ( 0 ) - -/*PAGE - * - * _User_extensions_Task_create - * - */ - -#define _User_extensions_Task_create( _the_thread ) \ - _User_extensions_Run_list_forward(rtems_task_create, \ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_delete - * - */ - -#define _User_extensions_Task_delete( _the_thread ) \ - _User_extensions_Run_list_backward(rtems_task_delete, \ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_start - * - */ - -#define _User_extensions_Task_start( _the_thread ) \ - _User_extensions_Run_list_forward(rtems_task_start, \ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_restart - * - */ - -#define _User_extensions_Task_restart( _the_thread ) \ - _User_extensions_Run_list_forward(rtems_task_restart,\ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_switch - * - */ - -#define _User_extensions_Task_switch( _executing, _heir ) \ - _User_extensions_Run_list_forward(task_switch, (_executing, _heir) ) - -/*PAGE - * - * _User_extensions_Task_begin - * - */ - -#define _User_extensions_Task_begin( _executing ) \ - _User_extensions_Run_list_forward(task_begin, (_executing) ) - -/*PAGE - * - * _User_extensions_Task_exitted - * - */ - -#define _User_extensions_Task_exitted( _executing ) \ - _User_extensions_Run_list_backward(task_exitted, (_executing) ) - -/*PAGE - * - * _User_extensions_Fatal - * - */ - -#define _User_extensions_Fatal( _the_error ) \ - _User_extensions_Run_list_backward(fatal, (_the_error) ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/watchdog.inl b/c/src/exec/score/macros/rtems/score/watchdog.inl deleted file mode 100644 index 1b150d8dab..0000000000 --- a/c/src/exec/score/macros/rtems/score/watchdog.inl +++ /dev/null @@ -1,202 +0,0 @@ -/* watchdog.inl - * - * This file contains the macro implementation of all inlined routines - * in the Watchdog Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WATCHDOG_inl -#define __WATCHDOG_inl - -#include - -/*PAGE - * - * _Watchdog_Initialize - * - */ - -#define _Watchdog_Initialize( _the_watchdog, _routine, _id, _user_data ) \ - { \ - (_the_watchdog)->state = WATCHDOG_INACTIVE; \ - (_the_watchdog)->routine = (_routine); \ - (_the_watchdog)->id = (_id); \ - (_the_watchdog)->user_data = (_user_data); \ - } - -/*PAGE - * - * _Watchdog_Is_active - * - */ - -#define _Watchdog_Is_active( _the_watchdog ) \ - ( (_the_watchdog)->state == WATCHDOG_ACTIVE ) - -/*PAGE - * - * _Watchdog_Activate - * - */ - -#define _Watchdog_Activate( _the_watchdog ) \ - (_the_watchdog)->state = WATCHDOG_ACTIVE - -/*PAGE - * - * _Watchdog_Deactivate - * - */ - -#define _Watchdog_Deactivate( _the_watchdog ) \ - (_the_watchdog)->state = WATCHDOG_REMOVE_IT - -/*PAGE - * - * _Watchdog_Tickle_ticks - * - */ - -#define _Watchdog_Tickle_ticks() \ - _Watchdog_Tickle( &_Watchdog_Ticks_chain ) - -/*PAGE - * - * _Watchdog_Tickle_seconds - * - */ - -#define _Watchdog_Tickle_seconds() \ - _Watchdog_Tickle( &_Watchdog_Seconds_chain ) - -/*PAGE - * - * _Watchdog_Insert_ticks - * - */ - -#define _Watchdog_Insert_ticks( _the_watchdog, _units, _insert_mode ) \ - { \ - (_the_watchdog)->initial = (_units); \ - _Watchdog_Insert( &_Watchdog_Ticks_chain, \ - (_the_watchdog), (_insert_mode) ); \ - } - -/*PAGE - * - * _Watchdog_Insert_seconds - * - */ - -#define _Watchdog_Insert_seconds( _the_watchdog, _units, _insert_mode ) \ - { \ - (_the_watchdog)->initial = (_units); \ - _Watchdog_Insert( &_Watchdog_Seconds_chain, \ - (_the_watchdog), (_insert_mode) ); \ - } - -/*PAGE - * - * _Watchdog_Adjust_seconds - * - */ - -#define _Watchdog_Adjust_seconds( _direction, _units ) \ - _Watchdog_Adjust( &_Watchdog_Seconds_chain, (_direction), (_units) ) - -/*PAGE - * - * _Watchdog_Adjust_ticks - * - */ - -#define _Watchdog_Adjust_ticks( _direction, _units ) \ - _Watchdog_Adjust( &_Watchdog_Ticks_chain, (_direction), (_units) ) - -/*PAGE - * - * _Watchdog_Reset - * - */ - -#define _Watchdog_Reset( _the_watchdog ) \ - { \ - (void) _Watchdog_Remove( (_the_watchdog) ); \ - _Watchdog_Insert( &_Watchdog_Ticks_chain, \ - (_the_watchdog), WATCHDOG_ACTIVATE_NOW ); \ - } - -/*PAGE - * - * _Watchdog_Next - * - */ - -#define _Watchdog_Next( _watchdog ) \ - ((Watchdog_Control *) (_watchdog)->Node.next) - -/*PAGE - * - * _Watchdog_Previous - * - */ - -#define _Watchdog_Previous( _watchdog ) \ - ((Watchdog_Control *) (_watchdog)->Node.previous) - -/*PAGE - * - * _Watchdog_First - * - */ - -#define _Watchdog_First( _header ) \ - ((Watchdog_Control *) (_header)->first) - -/*PAGE - * - * _Watchdog_Last - * - */ - -#define _Watchdog_Last( _header ) \ - ((Watchdog_Control *) (_header)->last) - -/*PAGE - * - * _Watchdog_Get_sync - * - */ - -#define _Watchdog_Get_sync() \ - ((Watchdog_Control *) _Watchdog_Sync) - -/*PAGE - * - * _Watchdog_Set_sync - * - */ - -#define _Watchdog_Set_sync( _the_watchdog ) \ - _Watchdog_Sync = (Watchdog_Synchronization_pointer) (_the_watchdog) - -/*PAGE - * - * _Watchdog_Clear_sync - * - */ - -#define _Watchdog_Clear_sync() \ - _Watchdog_Sync = NULL; - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/rtems/score/wkspace.inl b/c/src/exec/score/macros/rtems/score/wkspace.inl deleted file mode 100644 index 3c516bfb93..0000000000 --- a/c/src/exec/score/macros/rtems/score/wkspace.inl +++ /dev/null @@ -1,101 +0,0 @@ -/* wkspace.inl - * - * This file contains the macro implementation of the inlined routines - * from the RTEMS RAM Workspace Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WORKSPACE_inl -#define __WORKSPACE_inl - -#include -#include -#include - -/*PAGE - * - * _Workspace_Handler_initialization - * - */ - -#define _Workspace_Handler_initialization( _starting_address, _size ) \ -{ \ - unsigned32 *zero_out_array; \ - unsigned32 index; \ - unsigned32 memory_available; \ - \ - if ( ((_starting_address) == NULL) || \ - !_Addresses_Is_aligned( (_starting_address) ) ) \ - rtems_fatal_error_occurred( RTEMS_INVALID_ADDRESS ); \ - \ - if ( _CPU_Table.do_zero_of_workspace ) { \ - for( zero_out_array = (unsigned32 *) (_starting_address), index = 0 ; \ - index < (_size) / 4 ; \ - index++ ) \ - zero_out_array[ index ] = 0; \ - } \ - \ - memory_available = _Heap_Initialize( \ - &_Workspace_Area, \ - (_starting_address), \ - (_size), \ - CPU_ALIGNMENT \ - ); \ - \ - if ( memory_available == 0 ) \ - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); \ -} - -/*PAGE - * - * _Workspace_Allocate - * - */ - -#define _Workspace_Allocate( _size ) \ - _Heap_Allocate( &_Workspace_Area, (_size) ) - -/*PAGE - * - * _Workspace_Allocate_or_fatal_error - * - * NOTE: XXX FIX ME - * - * When not using static inlines, this should really be a function - * somewhere. - */ - -static inline void _Workspace_Allocate_or_fatal_error( - unsigned32 size -) -{ - void *memory; - - memory = _Workspace_Allocate( size ); - - if ( memory == NULL ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); - - return memory; -} - -/*PAGE - * - * _Workspace_Free - * - */ - -#define _Workspace_Free( _block ) \ - _Heap_Free( &_Workspace_Area, (_block) ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/stack.inl b/c/src/exec/score/macros/stack.inl deleted file mode 100644 index 208503b45f..0000000000 --- a/c/src/exec/score/macros/stack.inl +++ /dev/null @@ -1,50 +0,0 @@ -/* stack.inl - * - * This file contains the macro implementation of the inlined - * routines from the Stack Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STACK_inl -#define __STACK_inl - -/*PAGE - * - * _Stack_Initialize - * - */ - -#define _Stack_Initialize( _the_stack, _starting_address, _size ) \ - { \ - (_the_stack)->area = (_starting_address); \ - (_the_stack)->size = (_size); \ - } - -/*PAGE - * - * _Stack_Is_enough - * - */ - -#define _Stack_Is_enough( _size ) \ - ( (_size) >= RTEMS_MINIMUM_STACK_SIZE ) - -/*PAGE - * - * _Stack_Adjust_size - */ - -#define _Stack_Adjust_size( _size ) \ - ((_size) + CPU_STACK_ALIGNMENT) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/states.inl b/c/src/exec/score/macros/states.inl deleted file mode 100644 index f69c4ba042..0000000000 --- a/c/src/exec/score/macros/states.inl +++ /dev/null @@ -1,201 +0,0 @@ -/* states.inl - * - * This file contains the macro implementation of the inlined - * routines associated with RTEMS state information. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STATES_inl -#define __STATES_inl - -/*PAGE - * - * _States_Set - * - */ - -#define _States_Set( _states_to_set, _current_state ) \ - ((_current_state) | (_states_to_set)) - -/*PAGE - * - * _States_Clear - * - */ - -#define _States_Clear( _states_to_clear, _current_state ) \ - ((_current_state) & ~(_states_to_clear)) - -/*PAGE - * - * _States_Is_ready - * - */ - -#define _States_Is_ready( _the_states ) \ - ( (_the_states) == STATES_READY ) - -/*PAGE - * - * _States_Is_only_dormant - * - */ - -#define _States_Is_only_dormant( _the_states ) \ - ( (_the_states) == STATES_DORMANT ) - -/*PAGE - * - * _States_Is_dormant - * - */ - -#define _States_Is_dormant( _the_states ) \ - ( (_the_states) & STATES_DORMANT ) - -/*PAGE - * - * _States_Is_suspended - * - */ - -#define _States_Is_suspended( _the_states ) \ - ( (_the_states) & STATES_SUSPENDED ) - -/*PAGE - * - * _States_Is_Transient - * - */ - -#define _States_Is_transient( _the_states ) \ - ( (_the_states) & STATES_TRANSIENT ) - -/*PAGE - * - * _States_Is_delaying - * - */ - -#define _States_Is_delaying( _the_states ) \ - ( (_the_states) & STATES_DELAYING ) - -/*PAGE - * - * _States_Is_waiting_for_buffer - * - */ - -#define _States_Is_waiting_for_buffer( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_BUFFER ) - -/*PAGE - * - * _States_Is_waiting_for_segment - * - */ - -#define _States_Is_waiting_for_segment( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_SEGMENT ) - -/*PAGE - * - * _States_Is_waiting_for_message - * - */ - -#define _States_Is_waiting_for_message( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_MESSAGE ) - -/*PAGE - * - * _States_Is_waiting_for_event - * - */ - -#define _States_Is_waiting_for_event( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_EVENT ) - -/*PAGE - * - * _States_Is_waiting_for_semaphore - * - */ - -#define _States_Is_waiting_for_semaphore( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_SEMAPHORE ) - -/*PAGE - * - * _States_Is_waiting_for_time - * - */ - -#define _States_Is_waiting_for_time( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_TIME ) - -/*PAGE - * - * _States_Is_waiting_for_rpc_reply - * - */ - -#define _States_Is_waiting_for_rpc_reply( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_RPC_REPLY ) - -/*PAGE - * - * _States_Is_waiting_for_period - * - */ - -#define _States_Is_waiting_for_period( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_PERIOD ) - -/*PAGE - * - * _States_Is_locally_blocked - * - */ - -#define _States_Is_locally_blocked( _the_states ) \ - ( (_the_states) & STATES_LOCALLY_BLOCKED ) - -/*PAGE - * - * _States_Is_waiting_on_thread_queue - * - */ - -#define _States_Is_waiting_on_thread_queue( _the_states ) \ - ( (_the_states) & STATES_WAITING_ON_THREAD_QUEUE ) - -/*PAGE - * - * _States_Is_blocked - * - */ - -#define _States_Is_blocked( _the_states ) \ - ( (_the_states) & STATES_BLOCKED ) - -/*PAGE - * - * _States_Are_set - * - */ - -#define _States_Are_set( _the_states, _mask ) \ - ( ((_the_states) & (_mask)) != STATES_READY ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/sysstate.inl b/c/src/exec/score/macros/sysstate.inl deleted file mode 100644 index 5cc9f9e9f9..0000000000 --- a/c/src/exec/score/macros/sysstate.inl +++ /dev/null @@ -1,77 +0,0 @@ -/* sysstates.inl - * - * This file contains the macro implementation of routines regarding the - * system state. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SYSTEM_STATE_inl -#define __SYSTEM_STATE_inl - -/*PAGE - * - * _System_state_Set - */ - -#define _System_state_Set( _state ) \ - _System_state_Current = (_state) - -/*PAGE - * - * _System_state_Get - */ - -#define _System_state_Get( void ) \ - (_System_state_Current) - -/*PAGE - * - * _System_state_Is_before_initialization - */ - -#define _System_state_Is_before_initialization( _state ) \ - ((_state) == SYSTEM_STATE_BEFORE_INITIALIZATION) - -/*PAGE - * - * _System_state_Is_before_multitasking - */ - -#define _System_state_Is_before_multitasking( _state ) \ - ((_state) == SYSTEM_STATE_BEFORE_MULTITASKING) - -/*PAGE - * - * _System_state_Is_begin_multitasking - */ - -#define _System_state_Is_begin_multitasking( _state ) \ - ((_state) == SYSTEM_STATE_BEGIN_MULTITASKING) - -/*PAGE - * - * _System_state_Is_up - */ - -#define _System_state_Is_up( _state ) \ - ((_state) == SYSTEM_STATE_UP) - -/*PAGE - * - * _System_state_Is_failed - */ - -#define _System_state_Is_failed( _state ) \ - ((_state) == SYSTEM_STATE_FAILED) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/thread.inl b/c/src/exec/score/macros/thread.inl deleted file mode 100644 index 0e041de5ac..0000000000 --- a/c/src/exec/score/macros/thread.inl +++ /dev/null @@ -1,193 +0,0 @@ -/* thread.inl - * - * This file contains the macro implementation of the inlined - * routines from the Thread handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_inl -#define __THREAD_inl - -/*PAGE - * - * _Thread_Stop_multitasking - * - */ - -#define _Thread_Stop_multitasking() \ - _Context_Switch( &_Thread_Executing->Registers, &_Thread_BSP_context ); - -/*PAGE - * - * _Thread_Is_executing - * - */ - -#define _Thread_Is_executing( _the_thread ) \ - ( (_the_thread) == _Thread_Executing ) - -/*PAGE - * - * _Thread_Is_heir - * - */ - -#define _Thread_Is_heir( _the_thread ) \ - ( (_the_thread) == _Thread_Heir ) - -/*PAGE - * - * _Thread_Is_executing_also_the_heir - * - */ - -#define _Thread_Is_executing_also_the_heir() \ - ( _Thread_Executing == _Thread_Heir ) - -/*PAGE - * - * _Thread_Resume - * - */ - -#define _Thread_Resume( _the_thread ) \ - _Thread_Clear_state( (_the_thread), STATES_SUSPENDED ) - -/*PAGE - * - * _Thread_Unblock - * - */ - -#define _Thread_Unblock( _the_thread ) \ - _Thread_Clear_state( (_the_thread), STATES_BLOCKED ); - -/*PAGE - * - * _Thread_Restart_self - * - */ - -#define _Thread_Restart_self() \ - { \ - if ( _Thread_Executing->fp_context != NULL ) \ - _Context_Restore_fp( &_Thread_Executing->fp_context ); \ - \ - _CPU_Context_Restart_self( &_Thread_Executing->Registers ); \ - } - -/*PAGE - * - * _Thread_Calculate_heir - * - */ - -#define _Thread_Calculate_heir() \ - { \ - rtems_task_priority highest; \ - \ - _Priority_Get_highest( highest ); \ - \ - _Thread_Heir = (Thread_Control *) _Thread_Ready_chain[ highest ].first; \ - } - -/*PAGE - * - * _Thread_Is_allocated_fp - * - */ - -#define _Thread_Is_allocated_fp( _the_thread ) \ - ( (_the_thread) == _Thread_Allocated_fp ) - -/*PAGE - * - * _Thread_Deallocate_fp - * - */ - -#define _Thread_Deallocate_fp() \ - _Thread_Allocated_fp = NULL - -/*PAGE - * - * _Thread_Disable_dispatch - * - */ - -#define _Thread_Disable_dispatch() \ - _Thread_Dispatch_disable_level += 1 - -/*PAGE - * - * _Thread_Enable_dispatch - * - */ - -#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE ) -#define _Thread_Enable_dispatch() \ - { if ( (--_Thread_Dispatch_disable_level) == 0 ) \ - _Thread_Dispatch(); \ - } -#endif - -#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE ) -void _Thread_Enable_dispatch( void ); -#endif - -/*PAGE - * - * _Thread_Unnest_dispatch - * - */ - -#define _Thread_Unnest_dispatch() \ - _Thread_Dispatch_disable_level -= 1 - -/*PAGE - * - * _Thread_Is_dispatching_enabled - * - */ - -#define _Thread_Is_dispatching_enabled() \ - ( _Thread_Dispatch_disable_level == 0 ) - -/*PAGE - * - * _Thread_Is_context_switch_necessary - * - */ - -#define _Thread_Is_context_switch_necessary() \ - ( _Context_Switch_necessary == TRUE ) - -/*PAGE - * - * _Thread_Dispatch_initialization - * - */ - -#define _Thread_Dispatch_initialization() \ - _Thread_Dispatch_disable_level = 1 - -/*PAGE - * - * _Thread_Is_null - * - */ - -#define _Thread_Is_null( _the_thread ) \ - ( (_the_thread) == NULL ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/threadmp.inl b/c/src/exec/score/macros/threadmp.inl deleted file mode 100644 index c601862f96..0000000000 --- a/c/src/exec/score/macros/threadmp.inl +++ /dev/null @@ -1,50 +0,0 @@ -/* macros/threadmp.h - * - * This include file contains the bodies of all inlined routines - * for the multiprocessing part of thread package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_MP_THREAD_h -#define __MACROS_MP_THREAD_h - -/*PAGE - * - * _Thread_MP_Is_receive - * - */ - -#define _Thread_MP_Is_receive( _the_thread ) \ - ( (_the_thread) == _Thread_MP_Receive) - -/*PAGE - * - * _Thread_MP_Free_proxy - * - */ - -#define _Thread_MP_Free_proxy( _the_thread ) \ -{ \ - Thread_Proxy_control *_the_proxy; \ - \ - _the_proxy = (Thread_Proxy_control *) (_the_thread); \ - \ - _Chain_Extract( &_the_proxy->Active ); \ - \ - _Chain_Append( \ - &_Thread_MP_Inactive_proxies, \ - &(_the_thread)->Object.Node \ - ); \ -} - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/tod.inl b/c/src/exec/score/macros/tod.inl deleted file mode 100644 index 9360a588b1..0000000000 --- a/c/src/exec/score/macros/tod.inl +++ /dev/null @@ -1,59 +0,0 @@ -/* tod.inl - * - * This file contains the macro implementation of the inlined routines - * from the Time of Day Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIME_OF_DAY_inl -#define __TIME_OF_DAY_inl - -/*PAGE - * - * _TOD_Is_set - * - */ - -#define _TOD_Is_set() \ - _Watchdog_Is_active( &_TOD_Seconds_watchdog ) - -/*PAGE - * - * _TOD_Tickle_ticks - * - */ - -#define _TOD_Tickle_ticks() \ - _TOD_Current.ticks++; \ - _TOD_Ticks_since_boot++ - -/*PAGE - * - * _TOD_Deactivate - * - */ - -#define _TOD_Deactivate() \ - _Watchdog_Remove( &_TOD_Seconds_watchdog ) - -/*PAGE - * - * _TOD_Activate - * - */ - -#define _TOD_Activate( ticks ) \ - _Watchdog_Insert_ticks( &_TOD_Seconds_watchdog, \ - (ticks), WATCHDOG_ACTIVATE_NOW ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/tqdata.inl b/c/src/exec/score/macros/tqdata.inl deleted file mode 100644 index 5f657c1a94..0000000000 --- a/c/src/exec/score/macros/tqdata.inl +++ /dev/null @@ -1,39 +0,0 @@ -/* tqdata.inl - * - * This file contains the macro implementation of the inlined - * routines needed to support the Thread Queue Data. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_QUEUE_DATA_inl -#define __THREAD_QUEUE_DATA_inl - -/*PAGE - * - * _Thread_queue_Header_number - * - */ - -#define _Thread_queue_Header_number( _the_priority ) \ - ( (_the_priority) >> 6 ) - -/*PAGE - * - * _Thread_queue_Is_reverse_search - * - */ - -#define _Thread_queue_Is_reverse_search( _the_priority ) \ - ( (_the_priority) & 0x20 ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/userext.inl b/c/src/exec/score/macros/userext.inl deleted file mode 100644 index 781f30ad40..0000000000 --- a/c/src/exec/score/macros/userext.inl +++ /dev/null @@ -1,184 +0,0 @@ -/* userext.inl - * - * This file contains the macro implementation of the inlined routines - * from the User Extension Handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __USER_EXTENSIONS_inl -#define __USER_EXTENSIONS_inl - -/*PAGE - * - * _User_extensions_Handler_initialization - * - */ - -#define _User_extensions_Handler_initialization( _initial_extensions ) \ - { \ - _Chain_Initialize_empty( &_User_extensions_List ); \ - \ - if ( (_initial_extensions) ) { \ - _User_extensions_Initial.Callouts = *(_initial_extensions); \ - _Chain_Append( \ - &_User_extensions_List, &_User_extensions_Initial.Node ); \ - } \ - } - -/*PAGE - * - * _User_extensions_Add_set - */ - -#define _User_extensions_Add_set( _the_extension, _extension_table ) \ - { \ - (_the_extension)->Callouts = *(_extension_table); \ - \ - _Chain_Append( &_User_extensions_List, &(_the_extension)->Node ); \ - } - -/*PAGE - * - * _User_extensions_Remove_set - */ - -#define _User_extensions_Remove_set( _the_extension ) \ - _Chain_Extract( &(_the_extension)->Node ) - -/*PAGE - * - * _User_extensions_Run_list_forward - * - * NOTE: No parentheses around macro names here to avoid - * messing up the name and function call expansion. - */ - -#define _User_extensions_Run_list_forward( _name, _arguments ) \ - do { \ - Chain_Node *the_node; \ - User_extensions_Control *the_extension; \ - \ - for ( the_node = _User_extensions_List.first ; \ - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; \ - the_node = the_node->next ) { \ - the_extension = (User_extensions_Control *) the_node; \ - \ - if ( the_extension->Callouts.## _name != NULL ) \ - (*the_extension->Callouts.## _name) _arguments; \ - \ - } \ - \ - } while ( 0 ) - -/*PAGE - * - * _User_extensions_Run_list_backward - * - * NOTE: No parentheses around macro names here to avoid - * messing up the name and function call expansion. - */ - -#define _User_extensions_Run_list_backward( _name, _arguments ) \ - do { \ - Chain_Node *the_node; \ - User_extensions_Control *the_extension; \ - \ - for ( the_node = _User_extensions_List.last ; \ - !_Chain_Is_head( &_User_extensions_List, the_node ) ; \ - the_node = the_node->previous ) { \ - the_extension = (User_extensions_Control *) the_node; \ - \ - if ( the_extension->Callouts.## _name != NULL ) \ - (*the_extension->Callouts.## _name) _arguments; \ - \ - } \ - \ - } while ( 0 ) - -/*PAGE - * - * _User_extensions_Task_create - * - */ - -#define _User_extensions_Task_create( _the_thread ) \ - _User_extensions_Run_list_forward(rtems_task_create, \ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_delete - * - */ - -#define _User_extensions_Task_delete( _the_thread ) \ - _User_extensions_Run_list_backward(rtems_task_delete, \ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_start - * - */ - -#define _User_extensions_Task_start( _the_thread ) \ - _User_extensions_Run_list_forward(rtems_task_start, \ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_restart - * - */ - -#define _User_extensions_Task_restart( _the_thread ) \ - _User_extensions_Run_list_forward(rtems_task_restart,\ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_switch - * - */ - -#define _User_extensions_Task_switch( _executing, _heir ) \ - _User_extensions_Run_list_forward(task_switch, (_executing, _heir) ) - -/*PAGE - * - * _User_extensions_Task_begin - * - */ - -#define _User_extensions_Task_begin( _executing ) \ - _User_extensions_Run_list_forward(task_begin, (_executing) ) - -/*PAGE - * - * _User_extensions_Task_exitted - * - */ - -#define _User_extensions_Task_exitted( _executing ) \ - _User_extensions_Run_list_backward(task_exitted, (_executing) ) - -/*PAGE - * - * _User_extensions_Fatal - * - */ - -#define _User_extensions_Fatal( _the_error ) \ - _User_extensions_Run_list_backward(fatal, (_the_error) ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/watchdog.inl b/c/src/exec/score/macros/watchdog.inl deleted file mode 100644 index 1b150d8dab..0000000000 --- a/c/src/exec/score/macros/watchdog.inl +++ /dev/null @@ -1,202 +0,0 @@ -/* watchdog.inl - * - * This file contains the macro implementation of all inlined routines - * in the Watchdog Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WATCHDOG_inl -#define __WATCHDOG_inl - -#include - -/*PAGE - * - * _Watchdog_Initialize - * - */ - -#define _Watchdog_Initialize( _the_watchdog, _routine, _id, _user_data ) \ - { \ - (_the_watchdog)->state = WATCHDOG_INACTIVE; \ - (_the_watchdog)->routine = (_routine); \ - (_the_watchdog)->id = (_id); \ - (_the_watchdog)->user_data = (_user_data); \ - } - -/*PAGE - * - * _Watchdog_Is_active - * - */ - -#define _Watchdog_Is_active( _the_watchdog ) \ - ( (_the_watchdog)->state == WATCHDOG_ACTIVE ) - -/*PAGE - * - * _Watchdog_Activate - * - */ - -#define _Watchdog_Activate( _the_watchdog ) \ - (_the_watchdog)->state = WATCHDOG_ACTIVE - -/*PAGE - * - * _Watchdog_Deactivate - * - */ - -#define _Watchdog_Deactivate( _the_watchdog ) \ - (_the_watchdog)->state = WATCHDOG_REMOVE_IT - -/*PAGE - * - * _Watchdog_Tickle_ticks - * - */ - -#define _Watchdog_Tickle_ticks() \ - _Watchdog_Tickle( &_Watchdog_Ticks_chain ) - -/*PAGE - * - * _Watchdog_Tickle_seconds - * - */ - -#define _Watchdog_Tickle_seconds() \ - _Watchdog_Tickle( &_Watchdog_Seconds_chain ) - -/*PAGE - * - * _Watchdog_Insert_ticks - * - */ - -#define _Watchdog_Insert_ticks( _the_watchdog, _units, _insert_mode ) \ - { \ - (_the_watchdog)->initial = (_units); \ - _Watchdog_Insert( &_Watchdog_Ticks_chain, \ - (_the_watchdog), (_insert_mode) ); \ - } - -/*PAGE - * - * _Watchdog_Insert_seconds - * - */ - -#define _Watchdog_Insert_seconds( _the_watchdog, _units, _insert_mode ) \ - { \ - (_the_watchdog)->initial = (_units); \ - _Watchdog_Insert( &_Watchdog_Seconds_chain, \ - (_the_watchdog), (_insert_mode) ); \ - } - -/*PAGE - * - * _Watchdog_Adjust_seconds - * - */ - -#define _Watchdog_Adjust_seconds( _direction, _units ) \ - _Watchdog_Adjust( &_Watchdog_Seconds_chain, (_direction), (_units) ) - -/*PAGE - * - * _Watchdog_Adjust_ticks - * - */ - -#define _Watchdog_Adjust_ticks( _direction, _units ) \ - _Watchdog_Adjust( &_Watchdog_Ticks_chain, (_direction), (_units) ) - -/*PAGE - * - * _Watchdog_Reset - * - */ - -#define _Watchdog_Reset( _the_watchdog ) \ - { \ - (void) _Watchdog_Remove( (_the_watchdog) ); \ - _Watchdog_Insert( &_Watchdog_Ticks_chain, \ - (_the_watchdog), WATCHDOG_ACTIVATE_NOW ); \ - } - -/*PAGE - * - * _Watchdog_Next - * - */ - -#define _Watchdog_Next( _watchdog ) \ - ((Watchdog_Control *) (_watchdog)->Node.next) - -/*PAGE - * - * _Watchdog_Previous - * - */ - -#define _Watchdog_Previous( _watchdog ) \ - ((Watchdog_Control *) (_watchdog)->Node.previous) - -/*PAGE - * - * _Watchdog_First - * - */ - -#define _Watchdog_First( _header ) \ - ((Watchdog_Control *) (_header)->first) - -/*PAGE - * - * _Watchdog_Last - * - */ - -#define _Watchdog_Last( _header ) \ - ((Watchdog_Control *) (_header)->last) - -/*PAGE - * - * _Watchdog_Get_sync - * - */ - -#define _Watchdog_Get_sync() \ - ((Watchdog_Control *) _Watchdog_Sync) - -/*PAGE - * - * _Watchdog_Set_sync - * - */ - -#define _Watchdog_Set_sync( _the_watchdog ) \ - _Watchdog_Sync = (Watchdog_Synchronization_pointer) (_the_watchdog) - -/*PAGE - * - * _Watchdog_Clear_sync - * - */ - -#define _Watchdog_Clear_sync() \ - _Watchdog_Sync = NULL; - -#endif -/* end of include file */ diff --git a/c/src/exec/score/macros/wkspace.inl b/c/src/exec/score/macros/wkspace.inl deleted file mode 100644 index 3c516bfb93..0000000000 --- a/c/src/exec/score/macros/wkspace.inl +++ /dev/null @@ -1,101 +0,0 @@ -/* wkspace.inl - * - * This file contains the macro implementation of the inlined routines - * from the RTEMS RAM Workspace Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WORKSPACE_inl -#define __WORKSPACE_inl - -#include -#include -#include - -/*PAGE - * - * _Workspace_Handler_initialization - * - */ - -#define _Workspace_Handler_initialization( _starting_address, _size ) \ -{ \ - unsigned32 *zero_out_array; \ - unsigned32 index; \ - unsigned32 memory_available; \ - \ - if ( ((_starting_address) == NULL) || \ - !_Addresses_Is_aligned( (_starting_address) ) ) \ - rtems_fatal_error_occurred( RTEMS_INVALID_ADDRESS ); \ - \ - if ( _CPU_Table.do_zero_of_workspace ) { \ - for( zero_out_array = (unsigned32 *) (_starting_address), index = 0 ; \ - index < (_size) / 4 ; \ - index++ ) \ - zero_out_array[ index ] = 0; \ - } \ - \ - memory_available = _Heap_Initialize( \ - &_Workspace_Area, \ - (_starting_address), \ - (_size), \ - CPU_ALIGNMENT \ - ); \ - \ - if ( memory_available == 0 ) \ - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); \ -} - -/*PAGE - * - * _Workspace_Allocate - * - */ - -#define _Workspace_Allocate( _size ) \ - _Heap_Allocate( &_Workspace_Area, (_size) ) - -/*PAGE - * - * _Workspace_Allocate_or_fatal_error - * - * NOTE: XXX FIX ME - * - * When not using static inlines, this should really be a function - * somewhere. - */ - -static inline void _Workspace_Allocate_or_fatal_error( - unsigned32 size -) -{ - void *memory; - - memory = _Workspace_Allocate( size ); - - if ( memory == NULL ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); - - return memory; -} - -/*PAGE - * - * _Workspace_Free - * - */ - -#define _Workspace_Free( _block ) \ - _Heap_Free( &_Workspace_Area, (_block) ) - -#endif -/* end of include file */ diff --git a/c/src/exec/score/src/chain.c b/c/src/exec/score/src/chain.c deleted file mode 100644 index 88f6759b0b..0000000000 --- a/c/src/exec/score/src/chain.c +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Chain Handler - * - * NOTE: - * - * The order of this file is to allow proper compilation due to the - * order of inlining required by the compiler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/*PAGE - * - * _Chain_Initialize - * - * This kernel routine initializes a doubly linked chain. - * - * Input parameters: - * the_chain - pointer to chain header - * starting_address - starting address of first node - * number_nodes - number of nodes in chain - * node_size - size of node in bytes - * - * Output parameters: NONE - */ - -void _Chain_Initialize( - Chain_Control *the_chain, - void *starting_address, - unsigned32 number_nodes, - unsigned32 node_size -) -{ - unsigned32 count; - Chain_Node *current; - Chain_Node *next; - - count = number_nodes; - current = _Chain_Head( the_chain ); - the_chain->permanent_null = NULL; - next = (Chain_Node *)starting_address; - while ( count-- ) { - current->next = next; - next->previous = current; - current = next; - next = (Chain_Node *) - _Addresses_Add_offset( (void *) next, node_size ); - } - current->next = _Chain_Tail( the_chain ); - the_chain->last = current; -} - -/*PAGE - * - * _Chain_Get_first_unprotected - */ - -#ifndef USE_INLINES -Chain_Node *_Chain_Get_first_unprotected( - Chain_Control *the_chain -) -{ - Chain_Node *return_node; - Chain_Node *new_first; - - return_node = the_chain->first; - new_first = return_node->next; - the_chain->first = new_first; - new_first->previous = _Chain_Head( the_chain ); - - return return_node; -} -#endif /* USE_INLINES */ - -/*PAGE - * - * _Chain_Get - * - * This kernel routine returns a pointer to a node taken from the - * given chain. - * - * Input parameters: - * the_chain - pointer to chain header - * - * Output parameters: - * return_node - pointer to node in chain allocated - * CHAIN_END - if no nodes available - * - * INTERRUPT LATENCY: - * only case - */ - -Chain_Node *_Chain_Get( - Chain_Control *the_chain -) -{ - ISR_Level level; - Chain_Node *return_node; - - return_node = NULL; - _ISR_Disable( level ); - if ( !_Chain_Is_empty( the_chain ) ) - return_node = _Chain_Get_first_unprotected( the_chain ); - _ISR_Enable( level ); - return return_node; -} - -/*PAGE - * - * _Chain_Append - * - * This kernel routine puts a node on the end of the specified chain. - * - * Input parameters: - * the_chain - pointer to chain header - * node - address of node to put at rear of chain - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Chain_Append( - Chain_Control *the_chain, - Chain_Node *node -) -{ - ISR_Level level; - - _ISR_Disable( level ); - _Chain_Append_unprotected( the_chain, node ); - _ISR_Enable( level ); -} - -/*PAGE - * - * _Chain_Extract - * - * This kernel routine deletes the given node from a chain. - * - * Input parameters: - * node - pointer to node in chain to be deleted - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Chain_Extract( - Chain_Node *node -) -{ - ISR_Level level; - - _ISR_Disable( level ); - _Chain_Extract_unprotected( node ); - _ISR_Enable( level ); -} - -/*PAGE - * - * _Chain_Insert - * - * This kernel routine inserts a given node after a specified node - * a requested chain. - * - * Input parameters: - * after_node - pointer to node in chain to be inserted after - * node - pointer to node to be inserted - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Chain_Insert( - Chain_Node *after_node, - Chain_Node *node -) -{ - ISR_Level level; - - _ISR_Disable( level ); - _Chain_Insert_unprotected( after_node, node ); - _ISR_Enable( level ); -} diff --git a/c/src/exec/score/src/coretod.c b/c/src/exec/score/src/coretod.c deleted file mode 100644 index 4689c637d7..0000000000 --- a/c/src/exec/score/src/coretod.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Time of Day (TOD) Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/*PAGE - * - * _TOD_Handler_initialization - * - * This routine initializes the time of day handler. - * - * Input parameters: - * microseconds_per_tick - microseconds between clock ticks - * - * Output parameters: NONE - */ - -void _TOD_Handler_initialization( - unsigned32 microseconds_per_tick -) -{ - _TOD_Microseconds_per_tick = microseconds_per_tick; - - _TOD_Ticks_since_boot = 0; - _TOD_Seconds_since_epoch = 0; - - _TOD_Current.year = TOD_BASE_YEAR; - _TOD_Current.month = 1; - _TOD_Current.day = 1; - _TOD_Current.hour = 0; - _TOD_Current.minute = 0; - _TOD_Current.second = 0; - _TOD_Current.ticks = 0; - - if ( microseconds_per_tick == 0 ) - _TOD_Ticks_per_second = 0; - else - _TOD_Ticks_per_second = - TOD_MICROSECONDS_PER_SECOND / microseconds_per_tick; - - _Watchdog_Initialize( &_TOD_Seconds_watchdog, _TOD_Tickle, 0, NULL ); -} - -/*PAGE - * - * _TOD_Set - * - * This rountine sets the current date and time with the specified - * new date and time structure. - * - * Input parameters: - * the_tod - pointer to the time and date structure - * seconds_since_epoch - seconds since system epoch - * - * Output parameters: NONE - */ - -void _TOD_Set( - rtems_time_of_day *the_tod, - rtems_interval seconds_since_epoch -) -{ - rtems_interval ticks_until_next_second; - - _Thread_Disable_dispatch(); - _TOD_Deactivate(); - - if ( seconds_since_epoch < _TOD_Seconds_since_epoch ) - _Watchdog_Adjust_seconds( WATCHDOG_BACKWARD, - _TOD_Seconds_since_epoch - seconds_since_epoch ); - else - _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, - seconds_since_epoch - _TOD_Seconds_since_epoch ); - - ticks_until_next_second = _TOD_Ticks_per_second; - if ( ticks_until_next_second > _TOD_Current.ticks ) - ticks_until_next_second -= _TOD_Current.ticks; - - _TOD_Current = *the_tod; - _TOD_Seconds_since_epoch = seconds_since_epoch; - _TOD_Activate( ticks_until_next_second ); - - _Thread_Enable_dispatch(); -} - -/*PAGE - * - * _TOD_Validate - * - * This kernel routine checks the validity of a date and time structure. - * - * Input parameters: - * the_tod - pointer to a time and date structure - * - * Output parameters: - * RTEMS_SUCCESSFUL - if the date, time, and tick are valid - * RTEMS_INVALID_CLOCK - if the the_tod is invalid - * - * NOTE: This routine only works for leap-years through 2099. - */ - -rtems_status_code _TOD_Validate( - rtems_time_of_day *the_tod -) -{ - unsigned32 days_in_month; - - if ((the_tod->ticks >= _TOD_Ticks_per_second) || - (the_tod->second >= TOD_SECONDS_PER_MINUTE) || - (the_tod->minute >= TOD_MINUTES_PER_HOUR) || - (the_tod->hour >= TOD_HOURS_PER_DAY) || - (the_tod->month == 0) || - (the_tod->month > TOD_MONTHS_PER_YEAR) || - (the_tod->year < TOD_BASE_YEAR) || - (the_tod->day == 0) ) - return RTEMS_INVALID_CLOCK; - - if ( (the_tod->year % 4) == 0 ) - days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ]; - else - days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ]; - - if ( the_tod->day > days_in_month ) - return RTEMS_INVALID_CLOCK; - - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _TOD_To_seconds - * - * This routine returns the seconds from the epoch until the - * current date and time. - * - * Input parameters: - * the_tod - pointer to the time and date structure - * - * Output parameters: - * returns - seconds since epoch until the_tod - */ - -unsigned32 _TOD_To_seconds( - rtems_time_of_day *the_tod -) -{ - unsigned32 time; - unsigned32 year_mod_4; - - time = the_tod->day - 1; - year_mod_4 = the_tod->year & 3; - - if ( year_mod_4 == 0 ) - time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; - else - time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; - - time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * - ( (TOD_DAYS_PER_YEAR * 4) + 1); - - time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; - - time *= TOD_SECONDS_PER_DAY; - - time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) - * TOD_SECONDS_PER_MINUTE; - - time += the_tod->second; - - return( time ); -} - -/*PAGE - * - * _TOD_Tickle - * - * This routine updates the calendar time and tickles the - * per second watchdog timer chain. - * - * Input parameters: - * ignored - this parameter is ignored - * - * Output parameters: NONE - * - * NOTE: This routine only works for leap-years through 2099. - */ - -void _TOD_Tickle( - Objects_Id id, - void *ignored -) -{ - unsigned32 leap; - - _TOD_Current.ticks = 0; - ++_TOD_Seconds_since_epoch; - if ( ++_TOD_Current.second >= TOD_SECONDS_PER_MINUTE ) { - _TOD_Current.second = 0; - if ( ++_TOD_Current.minute >= TOD_MINUTES_PER_HOUR ) { - _TOD_Current.minute = 0; - if ( ++_TOD_Current.hour >= TOD_HOURS_PER_DAY ) { - _TOD_Current.hour = 0; - if ( _TOD_Current.year & 0x3 ) leap = 0; - else leap = 1; - if ( ++_TOD_Current.day > - _TOD_Days_per_month[ leap ][ _TOD_Current.month ]) { - _TOD_Current.day = 1; - if ( ++_TOD_Current.month > TOD_MONTHS_PER_YEAR ) { - _TOD_Current.month = 1; - _TOD_Current.year++; - } - } - } - } - } - - _Watchdog_Tickle_seconds(); - _Watchdog_Insert_ticks( &_TOD_Seconds_watchdog, _TOD_Ticks_per_second, - WATCHDOG_ACTIVATE_NOW ); -} diff --git a/c/src/exec/score/src/heap.c b/c/src/exec/score/src/heap.c deleted file mode 100644 index 485012ddf7..0000000000 --- a/c/src/exec/score/src/heap.c +++ /dev/null @@ -1,478 +0,0 @@ -/* - * Heap Handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include -#include -#include - -/*PAGE - * - * _Heap_Initialize - * - * This kernel routine initializes a heap. - * - * Input parameters: - * the_heap - pointer to heap header - * starting_address - starting address of heap - * size - size of heap - * page_size - allocatable unit of memory - * - * Output parameters: - * returns - maximum memory available if RTEMS_SUCCESSFUL - * 0 - otherwise - * - * This is what a heap looks like in memory immediately - * after initialization: - * - * +--------------------------------+ - * 0 | size = 0 | status = used | a.k.a. dummy back flag - * +--------------------------------+ - * 4 | size = size-8 | status = free | a.k.a. front flag - * +--------------------------------+ - * 8 | next = PERM HEAP_TAIL | - * +--------------------------------+ - * 12 | previous = PERM HEAP_HEAD | - * +--------------------------------+ - * | | - * | memory available | - * | for allocation | - * | | - * +--------------------------------+ - * size - 8 | size = size-8 | status = free | a.k.a. back flag - * +--------------------------------+ - * size - 4 | size = 0 | status = used | a.k.a. dummy front flag - * +--------------------------------+ - */ - -unsigned32 _Heap_Initialize( - Heap_Control *the_heap, - void *starting_address, - unsigned32 size, - unsigned32 page_size -) -{ - Heap_Block *the_block; - unsigned32 the_size; - - if ( !_Heap_Is_page_size_valid( page_size ) || - (size < HEAP_MINIMUM_SIZE) ) - return 0; - - the_heap->page_size = page_size; - the_size = size - HEAP_OVERHEAD; - - the_block = (Heap_Block *) starting_address; - the_block->back_flag = HEAP_DUMMY_FLAG; - the_block->front_flag = the_size; - the_block->next = _Heap_Tail( the_heap ); - the_block->previous = _Heap_Head( the_heap ); - - the_heap->start = the_block; - the_heap->first = the_block; - the_heap->permanent_null = NULL; - the_heap->last = the_block; - - the_block = _Heap_Next_block( the_block ); - the_block->back_flag = the_size; - the_block->front_flag = HEAP_DUMMY_FLAG; - the_heap->final = the_block; - - return ( the_size - HEAP_BLOCK_USED_OVERHEAD ); -} - -/*PAGE - * - * _Heap_Extend - * - * This routine grows the_heap memory area using the size bytes which - * begin at starting_address. - * - * Input parameters: - * the_heap - pointer to heap header. - * starting_address - pointer to the memory area. - * size - size in bytes of the memory block to allocate. - * - * Output parameters: - * *amount_extended - amount of memory added to the_heap - */ - -Heap_Extend_status _Heap_Extend( - Heap_Control *the_heap, - void *starting_address, - unsigned32 size, - unsigned32 *amount_extended -) -{ - Heap_Block *the_block; - Heap_Block *next_block; - Heap_Block *previous_block; - - /* - * There are five possibilities for the location of starting - * address: - * - * 1. non-contiguous lower address (NOT SUPPORTED) - * 2. contiguous lower address (NOT SUPPORTED) - * 3. in the heap (ERROR) - * 4. contiguous higher address (SUPPORTED) - * 5. non-contiguous higher address (NOT SUPPORTED) - * - * As noted, this code only supports (4). - */ - - if ( starting_address >= (void *) the_heap->start && /* case 3 */ - starting_address <= (void *) the_heap->final - ) - return HEAP_EXTEND_ERROR; - - if ( starting_address < (void *) the_heap->start ) { /* cases 1 and 2 */ - - return HEAP_EXTEND_NOT_IMPLEMENTED; /* cases 1 and 2 */ - - } else { /* cases 4 and 5 */ - - the_block = (Heap_Block *) (starting_address - HEAP_OVERHEAD); - if ( the_block != the_heap->final ) - return HEAP_EXTEND_NOT_IMPLEMENTED; /* case 5 */ - } - - /* - * Currently only case 4 should make it to this point. - */ - - *amount_extended = size - HEAP_BLOCK_USED_OVERHEAD; - - previous_block = the_heap->last; - - the_block = (Heap_Block *) starting_address; - the_block->front_flag = size; - the_block->next = previous_block->next; - the_block->previous = previous_block; - - previous_block->next = the_block; - the_heap->last = the_block; - - next_block = _Heap_Next_block( the_block ); - next_block->back_flag = size; - next_block->front_flag = HEAP_DUMMY_FLAG; - the_heap->final = next_block; - - return HEAP_EXTEND_SUCCESSFUL; -} - -/*PAGE - * - * _Heap_Allocate - * - * This kernel routine allocates the requested size of memory - * from the specified heap. - * - * Input parameters: - * the_heap - pointer to heap header. - * size - size in bytes of the memory block to allocate. - * - * Output parameters: - * returns - starting address of memory block allocated - */ - -void *_Heap_Allocate( - Heap_Control *the_heap, - unsigned32 size -) -{ - unsigned32 excess; - unsigned32 the_size; - Heap_Block *the_block; - Heap_Block *next_block; - Heap_Block *temporary_block; - - excess = size % the_heap->page_size; - the_size = size + HEAP_BLOCK_USED_OVERHEAD; - - if ( excess ) - the_size += the_heap->page_size - excess; - - if ( the_size < sizeof( Heap_Block ) ) - the_size = sizeof( Heap_Block ); - - for ( the_block = the_heap->first; - ; - the_block = the_block->next ) { - if ( the_block == _Heap_Tail( the_heap ) ) - return( NULL ); - if ( the_block->front_flag >= the_size ) - break; - } - - if ( (the_block->front_flag - the_size) > - (the_heap->page_size + HEAP_BLOCK_USED_OVERHEAD) ) { - the_block->front_flag -= the_size; - next_block = _Heap_Next_block( the_block ); - next_block->back_flag = the_block->front_flag; - - temporary_block = _Heap_Block_at( next_block, the_size ); - temporary_block->back_flag = - next_block->front_flag = _Heap_Build_flag( the_size, - HEAP_BLOCK_USED ); - return( _Heap_Start_of_user_area( next_block ) ); - } else { - next_block = _Heap_Next_block( the_block ); - next_block->back_flag = _Heap_Build_flag( the_block->front_flag, - HEAP_BLOCK_USED ); - the_block->front_flag = next_block->back_flag; - the_block->next->previous = the_block->previous; - the_block->previous->next = the_block->next; - return( _Heap_Start_of_user_area( the_block ) ); - } -} - -/*PAGE - * - * _Heap_Size_of_user_area - * - * This kernel routine returns the size of the memory area - * given heap block. - * - * Input parameters: - * the_heap - pointer to heap header - * starting_address - starting address of the memory block to free. - * size - pointer to size of area - * - * Output parameters: - * size - size of area filled in - * TRUE - if starting_address is valid heap address - * FALSE - if starting_address is invalid heap address - */ - -boolean _Heap_Size_of_user_area( - Heap_Control *the_heap, - void *starting_address, - unsigned32 *size -) -{ - Heap_Block *the_block; - Heap_Block *next_block; - unsigned32 the_size; - - the_block = _Heap_Block_at( starting_address, - (sizeof( void * ) * 2) ); - - if ( !_Heap_Is_block_in( the_heap, the_block ) || - _Heap_Is_block_free( the_block ) ) - return( FALSE ); - - the_size = _Heap_Block_size( the_block ); - next_block = _Heap_Block_at( the_block, the_size ); - - if ( !_Heap_Is_block_in( the_heap, next_block ) || - (the_block->front_flag != next_block->back_flag) ) - return( FALSE ); - - *size = the_size; - return( TRUE ); -} - -/*PAGE - * - * _Heap_Free - * - * This kernel routine returns the memory designated by the - * given heap and given starting address to the memory pool. - * - * Input parameters: - * the_heap - pointer to heap header - * starting_address - starting address of the memory block to free. - * - * Output parameters: - * TRUE - if starting_address is valid heap address - * FALSE - if starting_address is invalid heap address - */ - -boolean _Heap_Free( - Heap_Control *the_heap, - void *starting_address -) -{ - Heap_Block *the_block; - Heap_Block *next_block; - Heap_Block *new_next_block; - Heap_Block *previous_block; - Heap_Block *temporary_block; - unsigned32 the_size; - - the_block = _Heap_Block_at( starting_address, - (sizeof( void * ) * 2) ); - - if ( !_Heap_Is_block_in( the_heap, the_block ) || - _Heap_Is_block_free( the_block ) ) { - return( FALSE ); - } - - the_size = _Heap_Block_size( the_block ); - next_block = _Heap_Block_at( the_block, the_size ); - - if ( !_Heap_Is_block_in( the_heap, next_block ) || - (the_block->front_flag != next_block->back_flag) ) { - return( FALSE ); - } - - if ( _Heap_Is_previous_block_free( the_block ) ) { - previous_block = _Heap_Previous_block( the_block ); - - if ( !_Heap_Is_block_in( the_heap, previous_block ) ) { - return( FALSE ); - } - - if ( _Heap_Is_block_free( next_block ) ) { /* coalesce both */ - previous_block->front_flag += next_block->front_flag + the_size; - temporary_block = _Heap_Next_block( previous_block ); - temporary_block->back_flag = previous_block->front_flag; - next_block->next->previous = next_block->previous; - next_block->previous->next = next_block->next; - } - else { /* coalesce prev */ - previous_block->front_flag = - next_block->back_flag = previous_block->front_flag + the_size; - } - } - else if ( _Heap_Is_block_free( next_block ) ) { /* coalesce next */ - the_block->front_flag = the_size + next_block->front_flag; - new_next_block = _Heap_Next_block( the_block ); - new_next_block->back_flag = the_block->front_flag; - the_block->next = next_block->next; - the_block->previous = next_block->previous; - next_block->previous->next = the_block; - next_block->next->previous = the_block; - - if (the_heap->first == next_block) - the_heap->first = the_block; - } - else { /* no coalesce */ - next_block->back_flag = - the_block->front_flag = the_size; - the_block->previous = _Heap_Head( the_heap ); - the_block->next = the_heap->first; - the_heap->first = the_block; - the_block->next->previous = the_block; - } - - return( TRUE ); -} - -/*PAGE - * - * _Heap_Walk - * - * This kernel routine walks the heap and verifies its correctness. - * - * Input parameters: - * the_heap - pointer to heap header - * source - a numeric indicator of the invoker of this routine - * do_dump - when TRUE print the information - * - * Output parameters: NONE - */ - -#include -#include - -void _Heap_Walk( - Heap_Control *the_heap, - int source, - boolean do_dump -) -{ - Heap_Block *the_block; - Heap_Block *next_block; - int notdone = 1; - - /* - * We don't want to allow walking the heap until we have - * transferred control to the user task so we watch the - * system state. - */ - - if ( !_System_state_Is_up( _System_state_Get() ) ) - return; - - the_block = the_heap->start; - - if (do_dump == TRUE) { - printf("\nPASS: %d start @ 0x%p final 0x%p, first 0x%p last 0x%p\n", - source, the_heap->start, the_heap->final, - the_heap->first, the_heap->last - ); - } - - /* - * Handle the 1st block - */ - - if (the_block->back_flag != HEAP_DUMMY_FLAG) { - printf("PASS: %d Back flag of 1st block isn't HEAP_DUMMY_FLAG\n", source); - } - - while (notdone) { - if (do_dump == TRUE) { - printf("PASS: %d Block @ 0x%p Back %d, Front %d", - source, the_block, - the_block->back_flag, the_block->front_flag); - if ( _Heap_Is_block_free(the_block) ) { - printf( " Prev 0x%p, Next 0x%p\n", - the_block->previous, the_block->next); - } else { - printf("\n"); - } - } - - /* - * Handle the last block - */ - - if ( the_block->front_flag != HEAP_DUMMY_FLAG ) { - next_block = _Heap_Next_block(the_block); - if ( the_block->front_flag != next_block->back_flag ) { - printf("PASS: %d Front and back flags don't match\n", source); - printf(" Current Block: Back - %d, Front - %d", - the_block->back_flag, the_block->front_flag); - if (do_dump == TRUE) { - if (_Heap_Is_block_free(the_block)) { - printf(" Prev 0x%p, Next 0x%p\n", - the_block->previous, the_block->next); - } else { - printf("\n"); - } - } else { - printf("\n"); - } - printf(" Next Block: Back - %d, Front - %d", - next_block->back_flag, next_block->front_flag); - if (do_dump == TRUE) { - if (_Heap_Is_block_free(next_block)) { - printf(" Prev 0x%p, Next 0x%p\n", - the_block->previous, the_block->next); - } else { - printf("\n"); - } - } else { - printf("\n"); - } - } - } - - if (the_block->front_flag == HEAP_DUMMY_FLAG) - notdone = 0; - else - the_block = next_block; - } -} diff --git a/c/src/exec/score/src/mpci.c b/c/src/exec/score/src/mpci.c deleted file mode 100644 index e8d3803d76..0000000000 --- a/c/src/exec/score/src/mpci.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Multiprocessing Communications Interface (MPCI) Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _MPCI_Handler_initialization - * - * This subprogram performs the initialization necessary for this handler. - */ - -void _MPCI_Handler_initialization ( void ) -{ - _Thread_queue_Initialize( - &_MPCI_Remote_blocked_threads, - RTEMS_FIFO, - STATES_WAITING_FOR_RPC_REPLY - ); -} - -/*PAGE - * - * _MPCI_Initialization - * - * This subprogram initializes the MPCI driver by - * invoking the user provided MPCI initialization callout. - */ - -void _MPCI_Initialization ( void ) -{ - (*_Configuration_MPCI_table->initialization)( - _Configuration_Table, - &_CPU_Table, - _Configuration_MP_table - ); -} - -/*PAGE - * - * _MPCI_Get_packet - * - * This subprogram obtains a packet by invoking the user provided - * MPCI get packet callout. - */ - -rtems_packet_prefix *_MPCI_Get_packet ( void ) -{ - rtems_packet_prefix *the_packet; - - (*_Configuration_MPCI_table->get_packet)( &the_packet ); - - if ( the_packet == NULL ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); - - /* - * Put in a default timeout that will be used for - * all packets that do not otherwise have a timeout. - */ - - the_packet->timeout = MPCI_DEFAULT_TIMEOUT; - - return the_packet; -} - -/*PAGE - * - * _MPCI_Return_packet - * - * This subprogram returns a packet by invoking the user provided - * MPCI return packet callout. - */ - -void _MPCI_Return_packet ( - rtems_packet_prefix *the_packet -) -{ - (*_Configuration_MPCI_table->return_packet)( the_packet ); -} - -/*PAGE - * - * _MPCI_Send_process_packet - * - * This subprogram sends a process packet by invoking the user provided - * MPCI send callout. - */ - -void _MPCI_Send_process_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -) -{ - the_packet->source_tid = _Thread_Executing->Object.id; - the_packet->to_convert = - ( the_packet->to_convert - sizeof(rtems_packet_prefix) ) / - sizeof(unsigned32); - - (*_Configuration_MPCI_table->send_packet)( destination, the_packet ); -} - -/*PAGE - * - * _MPCI_Send_request_packet - * - * This subprogram sends a request packet by invoking the user provided - * MPCI send callout. - */ - -rtems_status_code _MPCI_Send_request_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet, - States_Control extra_state -) -{ - the_packet->source_tid = _Thread_Executing->Object.id; - the_packet->source_priority = _Thread_Executing->current_priority; - the_packet->to_convert = - ( the_packet->to_convert - sizeof(rtems_packet_prefix) ) / - sizeof(unsigned32); - - _Thread_Executing->Wait.id = the_packet->id; - - _Thread_Executing->Wait.queue = &_MPCI_Remote_blocked_threads; - - _Thread_Disable_dispatch(); - - (*_Configuration_MPCI_table->send_packet)( destination, the_packet ); - - _MPCI_Remote_blocked_threads.sync = TRUE; - - /* - * See if we need a default timeout - */ - - if (the_packet->timeout == MPCI_DEFAULT_TIMEOUT) - the_packet->timeout = _Configuration_MPCI_table->default_timeout; - - _Thread_queue_Enqueue( &_MPCI_Remote_blocked_threads, the_packet->timeout ); - - _Thread_Executing->current_state = - _States_Set( extra_state, _Thread_Executing->current_state ); - - _Thread_Enable_dispatch(); - - return _Thread_Executing->Wait.return_code; -} - -/*PAGE - * - * _MPCI_Send_response_packet - * - * This subprogram sends a response packet by invoking the user provided - * MPCI send callout. - */ - -void _MPCI_Send_response_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -) -{ - the_packet->source_tid = _Thread_Executing->Object.id; - - (*_Configuration_MPCI_table->send_packet)( destination, the_packet ); -} - -/*PAGE - * - * _MPCI_Receive_packet - * - * This subprogram receives a packet by invoking the user provided - * MPCI receive callout. - */ - -rtems_packet_prefix *_MPCI_Receive_packet ( void ) -{ - rtems_packet_prefix *the_packet; - - (*_Configuration_MPCI_table->receive_packet)( &the_packet ); - - return the_packet; -} - -/*PAGE - * - * _MPCI_Process_response - * - * This subprogram obtains a packet by invoking the user provided - * MPCI get packet callout. - */ - -Thread_Control *_MPCI_Process_response ( - rtems_packet_prefix *the_packet -) -{ - Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( the_packet->id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: - the_thread = NULL; /* IMPOSSIBLE */ - break; - case OBJECTS_LOCAL: - _Thread_queue_Extract( &_MPCI_Remote_blocked_threads, the_thread ); - the_thread->Wait.return_code = the_packet->return_code; - _Thread_Unnest_dispatch(); - break; - } - - return the_thread; -} - -/* end of file */ diff --git a/c/src/exec/score/src/object.c b/c/src/exec/score/src/object.c deleted file mode 100644 index 71c365fa1e..0000000000 --- a/c/src/exec/score/src/object.c +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Object Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Objects_Handler_initialization - * - * This routine initializes the object handler. - * - * Input parameters: - * node - local node - * maximum_global_objects - number of configured global objects - * - * Output parameters: NONE - */ - -void _Objects_Handler_initialization( - unsigned32 node, - unsigned32 maximum_global_objects -) -{ - _Objects_Local_node = node; - - _Objects_MP_Handler_initialization( maximum_global_objects ); -} - -/*PAGE - * - * _Objects_Initialize_information - * - * This routine initializes all object information related data structures. - * - * Input parameters: - * information - object class - * supports_global - TRUE if this is a global object class - * maximum - maximum objects of this class - * size - size of this object's control block - * - * Output parameters: NONE - */ - -void _Objects_Initialize_information( - Objects_Information *information, - boolean supports_global, - unsigned32 maximum, - unsigned32 size -) -{ - unsigned32 minimum_index; - unsigned32 index; - Objects_Control *the_object; - - information->maximum = maximum; - - if ( maximum == 0 ) minimum_index = 0; - else minimum_index = 1; - - information->minimum_id = - _Objects_Build_id( _Objects_Local_node, minimum_index ); - - information->maximum_id = - _Objects_Build_id( _Objects_Local_node, maximum ); - - information->local_table = _Workspace_Allocate_or_fatal_error( - (maximum + 1) * sizeof(Objects_Control *) - ); - - information->name_table = _Workspace_Allocate_or_fatal_error( - (maximum + 1) * sizeof(Objects_Name) - ); - - for ( index=0 ; index < maximum ; index++ ) { - information->local_table[ index ] = NULL; - information->name_table[ index ] = 0; - } - - if ( maximum == 0 ) { - _Chain_Initialize_empty( &information->Inactive ); - } else { - - - _Chain_Initialize( - &information->Inactive, - _Workspace_Allocate_or_fatal_error( maximum * size ), - maximum, - size - ); - - the_object = (Objects_Control *) information->Inactive.first; - for ( index=1; - index <= maximum ; - index++ ) { - the_object->id = _Objects_Build_id( _Objects_Local_node, index ); - the_object = (Objects_Control *) the_object->Node.next; - } - - } - - if ( supports_global == TRUE && _Configuration_Is_multiprocessing() ) { - - information->global_table = _Workspace_Allocate_or_fatal_error( - (_Configuration_MP_table->maximum_nodes + 1) * sizeof(Chain_Control) - ); - - for ( index=1; - index <= _Configuration_MP_table->maximum_nodes ; - index++ ) - _Chain_Initialize_empty( &information->global_table[ index ] ); - } - else - information->global_table = NULL; -} - -/*PAGE - * - * _Objects_Name_to_id - * - * These kernel routines search the object table(s) for the given - * object name and returns the associated object id. - * - * Input parameters: - * information - object information - * name - user defined object name - * node - node indentifier (0 indicates any node) - * id - address of return ID - * - * Output parameters: - * obj_id - object id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code _Objects_Name_to_id( - Objects_Information *information, - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - Objects_Name *names; - unsigned32 index; - - if ( name == 0 ) - return( RTEMS_INVALID_NAME ); - - if ( (information->maximum != 0) && - (node == RTEMS_SEARCH_ALL_NODES || - node == RTEMS_SEARCH_LOCAL_NODE || - _Objects_Is_local_node( node )) ) { - for ( names = information->name_table, index = 1; - index <= information->maximum; - index++ - ) - if ( name == names[ index ] ) { - *id = _Objects_Build_id( _Objects_Local_node, index ); - return( RTEMS_SUCCESSFUL ); - } - } - - if ( _Objects_Is_local_node( node ) || node == RTEMS_SEARCH_LOCAL_NODE ) - return( RTEMS_INVALID_NAME ); - - return ( _Objects_MP_Global_name_search( information, name, node, id ) ); -} - -/*PAGE - * - * _Objects_Get - * - * This routine sets the object pointer for the given - * object id based on the given object information structure. - * - * Input parameters: - * information - pointer to entry in table for this class - * id - object id to search for - * location - address of where to store the location - * - * Output parameters: - * returns - address of object if local - * location - one of the following: - * OBJECTS_ERROR - invalid object ID - * OBJECTS_REMOTE - remote object - * OBJECTS_LOCAL - local object - */ - -Objects_Control *_Objects_Get( - Objects_Information *information, - Objects_Id id, - Objects_Locations *location -) -{ - Objects_Control *the_object; - unsigned32 index; - - index = id - information->minimum_id; - if ( information->maximum >= index ) { - _Thread_Disable_dispatch(); - if ( (the_object = information->local_table[index+1]) != NULL ) { - *location = OBJECTS_LOCAL; - return( the_object ); - } - _Thread_Enable_dispatch(); - *location = OBJECTS_ERROR; - return( NULL ); - } - *location = OBJECTS_ERROR; - _Objects_MP_Is_remote( information, id, location, &the_object ); - return the_object; -} diff --git a/c/src/exec/score/src/objectmp.c b/c/src/exec/score/src/objectmp.c deleted file mode 100644 index d75a34b150..0000000000 --- a/c/src/exec/score/src/objectmp.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Multiprocessing Support for the Object Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/*PAGE - * - * _Objects_MP_Handler_initialization - * - */ - -void _Objects_MP_Handler_initialization ( - unsigned32 maximum_global_objects -) -{ - - if ( maximum_global_objects == 0 ) { - _Chain_Initialize_empty( &_Objects_MP_Inactive_global_objects ); - return; - } - - _Chain_Initialize( - &_Objects_MP_Inactive_global_objects, - _Workspace_Allocate_or_fatal_error( - maximum_global_objects * sizeof( Objects_MP_Control ) - ), - maximum_global_objects, - sizeof( Objects_MP_Control ) - ); - -} - -/*PAGE - * - * _Objects_MP_Open - * - */ - -boolean _Objects_MP_Open ( - Objects_Information *information, - Objects_Name the_name, - Objects_Id the_id, - boolean is_fatal_error -) -{ - Objects_MP_Control *the_global_object; - - the_global_object = _Objects_MP_Allocate_global_object(); - if ( _Objects_MP_Is_null_global_object( the_global_object ) ) { - - if ( is_fatal_error == FALSE ) - return FALSE; - - rtems_fatal_error_occurred( RTEMS_TOO_MANY ); - - } - - the_global_object->Object.id = the_id; - the_global_object->name = the_name; - - _Chain_Prepend( - &information->global_table[ rtems_get_node( the_id ) ], - &the_global_object->Object.Node - ); - - return TRUE; -} - -/*PAGE - * - * _Objects_MP_Close - * - */ - -void _Objects_MP_Close ( - Objects_Information *information, - Objects_Id the_id -) -{ - Chain_Control *the_chain; - Chain_Node *the_node; - Objects_MP_Control *the_object; - - the_chain = &information->global_table[ rtems_get_node( the_id ) ]; - - for ( the_node = the_chain->first ; - !_Chain_Is_tail( the_chain, the_node ) ; - the_node = the_node->next ) { - - the_object = (Objects_MP_Control *) the_node; - - if ( _Objects_Are_ids_equal( the_object->Object.id, the_id ) ) { - - _Chain_Extract( the_node ); - _Objects_MP_Free_global_object( the_object ); - - return; - - } - - } - - rtems_fatal_error_occurred( RTEMS_INVALID_ID ); - - -} - -/*PAGE - * - * _Objects_MP_Global_name_search - * - */ - -rtems_status_code _Objects_MP_Global_name_search ( - Objects_Information *information, - Objects_Name the_name, - unsigned32 nodes_to_search, - Objects_Id *the_id -) -{ - unsigned32 low_node; - unsigned32 high_node; - unsigned32 node_index; - Chain_Control *the_chain; - Chain_Node *the_node; - Objects_MP_Control *the_object; - - - if ( nodes_to_search > _Configuration_MP_table->maximum_nodes ) - return ( RTEMS_INVALID_NODE ); - - if ( information->global_table == NULL ) - return ( RTEMS_INVALID_NAME ); - - if ( nodes_to_search == RTEMS_SEARCH_ALL_NODES || - nodes_to_search == RTEMS_SEARCH_OTHER_NODES ) { - low_node = 1; - high_node = _Configuration_MP_table->maximum_nodes; - } else { - low_node = - high_node = nodes_to_search; - } - - _Thread_Disable_dispatch(); - - for ( node_index = low_node ; node_index <= high_node ; node_index++ ) { - - /* - * NOTE: The local node was search (if necessary) by - * _Objects_Name_to_id before this was invoked. - */ - - if ( !_Objects_Is_local_node( node_index ) ) { - the_chain = &information->global_table[ node_index ]; - - for ( the_node = the_chain->first ; - !_Chain_Is_tail( the_chain, the_node ) ; - the_node = the_node->next ) { - - the_object = (Objects_MP_Control *) the_node; - - if ( the_object->name == the_name ) { - *the_id = the_object->Object.id; - _Thread_Enable_dispatch(); - return ( RTEMS_SUCCESSFUL ); - } - } - } - } - - _Thread_Enable_dispatch(); - return ( RTEMS_INVALID_NAME ); -} - -/*PAGE - * - * _Objects_MP_Is_remote - * - */ - -void _Objects_MP_Is_remote ( - Objects_Information *information, - Objects_Id the_id, - Objects_Locations *location, - Objects_Control **the_object -) -{ - unsigned32 node; - Chain_Control *the_chain; - Chain_Node *the_node; - Objects_MP_Control *the_global_object; - - node = rtems_get_node( the_id ); - - /* - * NOTE: The local node was search (if necessary) by - * _Objects_Name_to_id before this was invoked. - * - * The NODE field of an object id cannot be 0 - * because 0 is an invalid node number. - */ - - if ( node == 0 || - _Objects_Is_local_node( node ) || - node > _Configuration_MP_table->maximum_nodes || - information->global_table == NULL ) { - - *location = OBJECTS_ERROR; - *the_object = NULL; - return; - } - - _Thread_Disable_dispatch(); - - the_chain = &information->global_table[ node ]; - - for ( the_node = the_chain->first ; - !_Chain_Is_tail( the_chain, the_node ) ; - the_node = the_node->next ) { - - the_global_object = (Objects_MP_Control *) the_node; - - if ( _Objects_Are_ids_equal( the_global_object->Object.id, the_id ) ) { - _Thread_Unnest_dispatch(); - *location = OBJECTS_REMOTE; - *the_object = (Objects_Control *) the_global_object; - return; - } - } - - _Thread_Enable_dispatch(); - *location = OBJECTS_ERROR; - *the_object = NULL; - -} diff --git a/c/src/exec/score/src/thread.c b/c/src/exec/score/src/thread.c deleted file mode 100644 index 2d9fc33e6b..0000000000 --- a/c/src/exec/score/src/thread.c +++ /dev/null @@ -1,805 +0,0 @@ -/* - * Thread Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Thread_Handler_initialization - * - * This routine initializes all thread manager related data structures. - * - * Input parameters: - * maximum_tasks - number of tasks to initialize - * ticks_per_timeslice - clock ticks per quantum - * - * Output parameters: NONE - */ - -void _Thread_Handler_initialization( - unsigned32 maximum_tasks, - unsigned32 ticks_per_timeslice, - unsigned32 maximum_proxies -) -{ - unsigned32 index; - - _Context_Switch_necessary = FALSE; - _Thread_Executing = NULL; - _Thread_Heir = NULL; - _Thread_Allocated_fp = NULL; - - _Thread_Ticks_remaining_in_timeslice = ticks_per_timeslice; - _Thread_Ticks_per_timeslice = ticks_per_timeslice; - - _Objects_Initialize_information( - &_Thread_Information, - TRUE, - maximum_tasks, - sizeof( Thread_Control ) - ); - - _Thread_Ready_chain = _Workspace_Allocate_or_fatal_error( - (RTEMS_MAXIMUM_PRIORITY + 1) * sizeof(Chain_Control) - ); - - for ( index=0; index <= RTEMS_MAXIMUM_PRIORITY ; index++ ) - _Chain_Initialize_empty( &_Thread_Ready_chain[ index ] ); - - _Thread_MP_Handler_initialization( maximum_proxies ); -} - -/*PAGE - * - * _Thread_Start_multitasking - * - * This kernel routine readies the requested thread, the thread chain - * is adjusted. A new heir thread may be selected. - * - * Input parameters: - * system_thread - pointer to system initialization thread control block - * idle_thread - pointer to idle thread control block - * - * Output parameters: NONE - * - * NOTE: This routine uses the "blocking" heir selection mechanism. - * This insures the correct heir after a thread restart. - * - * INTERRUPT LATENCY: - * ready chain - * select heir - */ - -void _Thread_Start_multitasking( - Thread_Control *system_thread, - Thread_Control *idle_thread -) -{ - - _Thread_Executing = - _Thread_Heir = - _Thread_MP_Receive = system_thread; - - /* - * Scheduling will not work "correctly" until the above - * statements have been executed. - */ - - _Thread_Ready( system_thread ); - _Thread_Ready( idle_thread ); - - _Context_Switch_necessary = FALSE; - - _Context_Switch( &_Thread_BSP_context, &system_thread->Registers ); - -} - -/*PAGE - * - * _Thread_Dispatch - * - * This kernel routine determines if a dispatch is needed, and if so - * dispatches to the heir thread. Once the heir is running an attempt - * is made to dispatch any ASRs. - * - * ALTERNATE ENTRY POINTS: - * void _Thread_Enable_dispatch(); - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * dispatch thread - * no dispatch thread - */ - -#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE ) -void _Thread_Enable_dispatch( void ) -{ - if ( --_Thread_Dispatch_disable_level ) - return; - _Thread_Dispatch(); -} -#endif - -void _Thread_Dispatch( void ) -{ - Thread_Control *executing; - Thread_Control *heir; - ISR_Level level; - rtems_signal_set signal_set; - rtems_mode previous_mode; - - executing = _Thread_Executing; - _ISR_Disable( level ); - while ( _Context_Switch_necessary == TRUE ) { - heir = _Thread_Heir; - _Thread_Dispatch_disable_level = 1; - _Context_Switch_necessary = FALSE; - _Thread_Executing = heir; - _ISR_Enable( level ); - - _User_extensions_Task_switch( executing, heir ); - - _Thread_Ticks_remaining_in_timeslice = _Thread_Ticks_per_timeslice; - - /* - * If the CPU has hardware floating point, then we must address saving - * and restoring it as part of the context switch. - * - * The second conditional compilation section selects the algorithm used - * to context switch between floating point tasks. The deferred algorithm - * can be significantly better in a system with few floating point tasks - * because it reduces the total number of save and restore FP context - * operations. However, this algorithm can not be used on all CPUs due - * to unpredictable use of FP registers by some compilers for integer - * operations. - */ - -#if ( CPU_HARDWARE_FP == TRUE ) -#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE ) - if ( (heir->fp_context != NULL) && !_Thread_Is_allocated_fp( heir ) ) { - if ( _Thread_Allocated_fp != NULL ) - _Context_Save_fp( &_Thread_Allocated_fp->fp_context ); - _Context_Restore_fp( &heir->fp_context ); - _Thread_Allocated_fp = heir; - } -#else - if ( executing->fp_context != NULL ) - _Context_Save_fp( &executing->fp_context ); - - if ( heir->fp_context != NULL ) - _Context_Restore_fp( &heir->fp_context ); -#endif -#endif - - _Context_Switch( &executing->Registers, &heir->Registers ); - - executing = _Thread_Executing; - _ISR_Disable( level ); - } - - _Thread_Dispatch_disable_level = 0; - - if ( _ASR_Are_signals_pending( &executing->Signal ) ) { - signal_set = executing->Signal.signals_posted; - executing->Signal.signals_posted = 0; - _ISR_Enable( level ); - - executing->Signal.nest_level += 1; - if (_Thread_Change_mode( executing->Signal.mode_set, - RTEMS_ALL_MODE_MASKS, &previous_mode )) - _Thread_Dispatch(); - - (*executing->Signal.handler)( signal_set ); - - executing->Signal.nest_level -= 1; - if (_Thread_Change_mode( previous_mode, - RTEMS_ALL_MODE_MASKS, &previous_mode )) - _Thread_Dispatch(); - } - else - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Ready - * - * This kernel routine readies the requested thread, the thread chain - * is adjusted. A new heir thread may be selected. - * - * Input parameters: - * the_thread - pointer to thread control block - * - * Output parameters: NONE - * - * NOTE: This routine uses the "blocking" heir selection mechanism. - * This insures the correct heir after a thread restart. - * - * INTERRUPT LATENCY: - * ready chain - * select heir - */ - -void _Thread_Ready( - Thread_Control *the_thread -) -{ - ISR_Level level; - Thread_Control *heir; - - _ISR_Disable( level ); - - the_thread->current_state = STATES_READY; - - _Priority_Add_to_bit_map( &the_thread->Priority_map ); - - _Chain_Append_unprotected( the_thread->ready, &the_thread->Object.Node ); - - _ISR_Flash( level ); - - _Thread_Calculate_heir(); - - heir = _Thread_Heir; - - if ( !_Thread_Is_executing( heir ) && - _Modes_Is_preempt( _Thread_Executing->current_modes ) ) - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Clear_state - * - * This kernel routine clears the appropriate states in the - * requested thread. The thread ready chain is adjusted if - * necessary and the Heir thread is set accordingly. - * - * Input parameters: - * the_thread - pointer to thread control block - * state - state set to clear - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * priority map - * select heir - */ - -void _Thread_Clear_state( - Thread_Control *the_thread, - States_Control state -) -{ - ISR_Level level; - - _ISR_Disable( level ); - the_thread->current_state = - _States_Clear( state, the_thread->current_state ); - - if ( _States_Is_ready( the_thread->current_state ) ) { - - _Priority_Add_to_bit_map( &the_thread->Priority_map ); - - _Chain_Append_unprotected( the_thread->ready, &the_thread->Object.Node ); - - _ISR_Flash( level ); - - if ( the_thread->current_priority < _Thread_Heir->current_priority ) { - _Thread_Heir = the_thread; - if ( _Modes_Is_preempt( _Thread_Executing->current_modes ) ) - _Context_Switch_necessary = TRUE; - } - } - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Set_state - * - * This kernel routine sets the requested state in the THREAD. The - * THREAD chain is adjusted if necessary. - * - * Input parameters: - * the_thread - pointer to thread control block - * state - state to be set - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * ready chain - * select map - */ - -void _Thread_Set_state( - Thread_Control *the_thread, - States_Control state -) -{ - ISR_Level level; - Chain_Control *ready; - - ready = the_thread->ready; - _ISR_Disable( level ); - if ( !_States_Is_ready( the_thread->current_state ) ) { - the_thread->current_state = - _States_Set( state, the_thread->current_state ); - _ISR_Enable( level ); - return; - } - - the_thread->current_state = state; - - if ( _Chain_Has_only_one_node( ready ) ) { - - _Chain_Initialize_empty( ready ); - _Priority_Remove_from_bit_map( &the_thread->Priority_map ); - - } else - _Chain_Extract_unprotected( &the_thread->Object.Node ); - - _ISR_Flash( level ); - - if ( _Thread_Is_heir( the_thread ) ) - _Thread_Calculate_heir(); - - if ( _Thread_Is_executing( the_thread ) ) - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Set_transient - * - * This kernel routine places the requested thread in the transient state - * which will remove it from the ready queue, if necessary. No - * rescheduling is necessary because it is assumed that the transient - * state will be cleared before dispatching is enabled. - * - * Input parameters: - * the_thread - pointer to thread control block - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Thread_Set_transient( - Thread_Control *the_thread -) -{ - ISR_Level level; - unsigned32 old_state; - Chain_Control *ready; - - ready = the_thread->ready; - _ISR_Disable( level ); - - old_state = the_thread->current_state; - the_thread->current_state = _States_Set( STATES_TRANSIENT, old_state ); - - if ( _States_Is_ready( old_state ) ) { - if ( _Chain_Has_only_one_node( ready ) ) { - - _Chain_Initialize_empty( ready ); - _Priority_Remove_from_bit_map( &the_thread->Priority_map ); - - } else - _Chain_Extract_unprotected( &the_thread->Object.Node ); - } - - _ISR_Enable( level ); - -} - -/*PAGE - * - * _Thread_Reset_timeslice - * - * This routine will remove the running thread from the ready chain - * and place it immediately at the rear of this chain and then the - * timeslice counter is reset. The heir THREAD will be updated if - * the running is also the currently the heir. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * ready chain - * select heir - */ - -void _Thread_Reset_timeslice( void ) -{ - ISR_Level level; - Thread_Control *executing; - Chain_Control *ready; - - executing = _Thread_Executing; - ready = executing->ready; - _ISR_Disable( level ); - if ( _Chain_Has_only_one_node( ready ) ) { - _Thread_Ticks_remaining_in_timeslice = _Thread_Ticks_per_timeslice; - _ISR_Enable( level ); - return; - } - _Chain_Extract_unprotected( &executing->Object.Node ); - _Chain_Append_unprotected( ready, &executing->Object.Node ); - - _ISR_Flash( level ); - - if ( _Thread_Is_heir( executing ) ) - _Thread_Heir = (Thread_Control *) ready->first; - - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Tickle_timeslice - * - * This scheduler routine determines if timeslicing is enabled - * for the currently executing thread and, if so, updates the - * timeslice count and checks for timeslice expiration. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void _Thread_Tickle_timeslice( void ) -{ - if ( ( _Modes_Is_timeslice(_Thread_Executing->current_modes) ) && - ( _States_Is_ready( _Thread_Executing->current_state ) ) && - ( --_Thread_Ticks_remaining_in_timeslice == 0 ) ) { - _Thread_Reset_timeslice(); - } -} - -/*PAGE - * - * _Thread_Yield_processor - * - * This kernel routine will remove the running THREAD from the ready chain - * and place it immediatly at the rear of this chain. Reset timeslice - * and yield the processor functions both use this routine, therefore if - * reset is TRUE and this is the only thread on the chain then the - * timeslice counter is reset. The heir THREAD will be updated if the - * running is also the currently the heir. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * ready chain - * select heir - */ - -void _Thread_Yield_processor( void ) -{ - ISR_Level level; - Thread_Control *executing; - Chain_Control *ready; - - executing = _Thread_Executing; - ready = executing->ready; - _ISR_Disable( level ); - if ( !_Chain_Has_only_one_node( ready ) ) { - _Chain_Extract_unprotected( &executing->Object.Node ); - _Chain_Append_unprotected( ready, &executing->Object.Node ); - - _ISR_Flash( level ); - - if ( _Thread_Is_heir( executing ) ) - _Thread_Heir = (Thread_Control *) ready->first; - _Context_Switch_necessary = TRUE; - } - else if ( !_Thread_Is_heir( executing ) ) - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Load_environment - * - * Load starting environment for another thread from its start area in the - * thread. Only called from t_restart and t_start. - * - * Input parameters: - * the_thread - thread control block pointer - * - * Output parameters: NONE - */ - -void _Thread_Load_environment( - Thread_Control *the_thread -) -{ - if ( the_thread->Start.fp_context ) { - the_thread->fp_context = the_thread->Start.fp_context; - _Context_Initialize_fp( &the_thread->fp_context ); - } - - _Context_Initialize( - &the_thread->Registers, - the_thread->Start.Initial_stack.area, - the_thread->Start.Initial_stack.size, - _Modes_Get_interrupt_level( the_thread->Start.initial_modes ), - _Thread_Handler - ); - -} - -/*PAGE - * - * _Thread_Handler - * - * This routine is the default thread exitted error handler. It is - * returned to when a thread exits. The configured fatal error handler - * is invoked to process the exit. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void _Thread_Handler( void ) -{ - Thread_Control *executing; - - executing = _Thread_Executing; - - _Thread_Dispatch_disable_level = 0; - - /* - * Do the 'begin' here instead of after the context switch. - * This ensures 'switch' extensions can not be called before - * 'begin' extensions. - */ - - _User_extensions_Task_begin( executing ); - - if ( _Thread_Is_context_switch_necessary() ) - _Thread_Dispatch(); - - (*executing->Start.entry_point)( executing->Start.initial_argument ); - - _User_extensions_Task_exitted( executing ); - - rtems_fatal_error_occurred( RTEMS_TASK_EXITTED ); -} - -/*PAGE - * - * _Thread_Delay_ended - * - * This routine processes a thread whose delay period has ended. - * It is called by the watchdog handler. - * - * Input parameters: - * id - thread id - * - * Output parameters: NONE - */ - -void _Thread_Delay_ended( - Objects_Id id, - void *ignored -) -{ - Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: /* impossible */ - break; - case OBJECTS_LOCAL: - _Thread_Unblock( the_thread ); - _Thread_Unnest_dispatch(); - break; - } -} - -/*PAGE - * - * _Thread_Change_priority - * - * This kernel routine changes the priority of the thread. The - * thread chain is adjusted if necessary. - * - * Input parameters: - * the_thread - pointer to thread control block - * new_priority - ultimate priority - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * ready chain - * select heir - */ - -void _Thread_Change_priority( - Thread_Control *the_thread, - rtems_task_priority new_priority -) -{ - ISR_Level level; - - _Thread_Set_transient( the_thread ); - - if ( the_thread->current_priority != new_priority ) - _Thread_Set_priority( the_thread, new_priority ); - - _ISR_Disable( level ); - - the_thread->current_state = - _States_Clear( STATES_TRANSIENT, the_thread->current_state ); - - if ( ! _States_Is_ready( the_thread->current_state ) ) { - _ISR_Enable( level ); - return; - } - - _Priority_Add_to_bit_map( &the_thread->Priority_map ); - _Chain_Append_unprotected( the_thread->ready, &the_thread->Object.Node ); - - _ISR_Flash( level ); - - _Thread_Calculate_heir(); - - if ( !_Thread_Is_executing_also_the_heir() && - _Modes_Is_preempt(_Thread_Executing->current_modes) ) - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Set_priority - * - * This directive enables and disables several modes of - * execution for the requesting thread. - * - * Input parameters: - * the_thread - pointer to thread priority - * new_priority - new priority - * - * Output: NONE - */ - -void _Thread_Set_priority( - Thread_Control *the_thread, - rtems_task_priority new_priority -) -{ - the_thread->current_priority = new_priority; - the_thread->ready = &_Thread_Ready_chain[ new_priority ]; - - _Priority_Initialize_information( &the_thread->Priority_map, new_priority ); -} - -/*PAGE - * - * _Thread_Change_mode - * - * This routine enables and disables several modes of - * execution for the requesting thread. - * - * Input parameters: - * mode - new mode - * mask - mask - * old_mode_set - address of previous mode - * - * Output: - * *old_mode_set - previous mode - * returns TRUE if scheduling necessary - * - * INTERRUPT LATENCY: - * only one case - */ - -boolean _Thread_Change_mode( - unsigned32 new_mode_set, - unsigned32 mask, - unsigned32 *old_mode_set -) -{ - rtems_mode changed; - rtems_mode threads_new_mode_set; - Thread_Control *executing; - boolean need_dispatch; - - executing = _Thread_Executing; - *old_mode_set = executing->current_modes; - - _Modes_Change( executing->current_modes, - new_mode_set, mask, &threads_new_mode_set, &changed ); - - _Modes_Set_interrupt_level( threads_new_mode_set ); - - if ( _Modes_Mask_changed( changed, RTEMS_ASR_MASK ) ) - _ASR_Swap_signals( &executing->Signal ); - - executing->current_modes = threads_new_mode_set; - need_dispatch = TRUE; - - if ( !_States_Is_ready( executing->current_state ) || - ( !_Thread_Is_heir( executing ) && - _Modes_Is_preempt(threads_new_mode_set) ) ) - - _Context_Switch_necessary = TRUE; - - else if ( !_ASR_Are_signals_pending( &executing->Signal ) ) - - need_dispatch = FALSE; - - return need_dispatch; -} - -/*PAGE - * - * _Thread_Get - * - * NOTE: If we are not using static inlines, this must be a real - * subroutine call. - */ - -#ifndef USE_INLINES - -STATIC INLINE Thread_Control *_Thread_Get ( - Objects_Id id, - unsigned32 *location -) -{ - if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { - _Thread_Disable_dispatch(); - *location = OBJECTS_LOCAL; - return( _Thread_Executing ); - } - - return (Thread_Control *) _Objects_Get( &_Thread_Information, id, location ); -} -#endif - diff --git a/c/src/exec/score/src/threadmp.c b/c/src/exec/score/src/threadmp.c deleted file mode 100644 index 5d352e2d25..0000000000 --- a/c/src/exec/score/src/threadmp.c +++ /dev/null @@ -1,229 +0,0 @@ -/* - * Multiprocessing Support for the Thread Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/*PAGE - * - * _Thread_MP_Handler_initialization - * - */ - -void _Thread_MP_Handler_initialization ( - unsigned32 maximum_proxies -) -{ - - _Chain_Initialize_empty( &_Thread_MP_Active_proxies ); - - if ( maximum_proxies == 0 ) { - _Chain_Initialize_empty( &_Thread_MP_Inactive_proxies ); - return; - } - - - _Chain_Initialize( - &_Thread_MP_Inactive_proxies, - _Workspace_Allocate_or_fatal_error( - maximum_proxies * sizeof( Thread_Proxy_control ) - ), - maximum_proxies, - sizeof( Thread_Proxy_control ) - ); - -} - -/*PAGE - * - * _Thread_MP_Allocate_proxy - * - */ - -Thread_Control *_Thread_MP_Allocate_proxy ( - States_Control the_state -) -{ - Thread_Control *the_thread; - Thread_Proxy_control *the_proxy; - - the_thread = (Thread_Control *)_Chain_Get( &_Thread_MP_Inactive_proxies ); - - if ( !_Thread_Is_null( the_thread ) ) { - - the_proxy = (Thread_Proxy_control *) the_thread; - - _Thread_Executing->Wait.return_code = RTEMS_PROXY_BLOCKING; - - the_proxy->receive_packet = _Thread_MP_Receive->receive_packet; - - the_proxy->Object.id = _Thread_MP_Receive->receive_packet->source_tid; - - the_proxy->current_priority = - _Thread_MP_Receive->receive_packet->source_priority; - - the_proxy->current_state = _States_Set( STATES_DORMANT, the_state ); - - the_proxy->Wait = _Thread_Executing->Wait; - - _Chain_Append( &_Thread_MP_Active_proxies, &the_proxy->Active ); - - return the_thread; - } - - rtems_fatal_error_occurred( RTEMS_TOO_MANY ); - - /* - * NOTE: The following return insures that the compiler will - * think that all paths return a value. - */ - - return NULL; -} - -/*PAGE - * - * _Thread_MP_Find_proxy - * - */ - -/* - * The following macro provides the offset of the Active element - * in the Thread_Proxy_control structure. This is the logical - * equivalent of the POSITION attribute in Ada. - */ - -#define _Thread_MP_Proxy_Active_offset \ - ((unsigned32)&(((Thread_Proxy_control *)0))->Active) - -Thread_Control *_Thread_MP_Find_proxy ( - Objects_Id the_id -) -{ - - Chain_Node *proxy_node; - Thread_Control *the_thread; - ISR_Level level; - -restart: - - _ISR_Disable( level ); - - for ( proxy_node = _Thread_MP_Active_proxies.first; - !_Chain_Is_tail( &_Thread_MP_Active_proxies, proxy_node ) ; - ) { - - the_thread = _Addresses_Subtract_offset( - proxy_node, - _Thread_MP_Proxy_Active_offset - ); - - if ( _Objects_Are_ids_equal( the_thread->Object.id, the_id ) ) { - _ISR_Enable( level ); - return the_thread; - } - - _ISR_Flash( level ); - - proxy_node = proxy_node->next; - - /* - * A proxy which is only dormant is not in a blocking state. - * Therefore, we are looking at proxy which has been moved from - * active to inactive chain (by an ISR) and need to restart - * the search. - */ - - if ( _States_Is_only_dormant( the_thread->current_state ) ) { - _ISR_Enable( level ); - goto restart; - } - } - - _ISR_Enable( level ); - return NULL; -} - -/*PAGE - * - * _Thread_MP_Block - * - */ - -void _Thread_MP_Block( void ) -{ - ISR_Level level; - - _ISR_Disable( level ); - - if ( _Thread_MP_Receive->Notepads[ 0 ] != 0 ) { - _Priority_Remove_from_bit_map( &_Thread_MP_Receive->Priority_map ); - - _Thread_MP_Receive->current_state = STATES_SUSPENDED; - - _ISR_Flash( level ); - - _Thread_Calculate_heir(); - - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); - - _Thread_Dispatch_disable_level = 0; - - _Thread_Dispatch(); - - return; - - } - _ISR_Enable( level ); - -} - -/*PAGE - * - * _Thread_MP_Ready - * - */ - -void _Thread_MP_Ready( void ) -{ - ISR_Level level; - - _ISR_Disable( level ); - - if ( _States_Is_suspended( _Thread_MP_Receive->current_state ) ) { - _Priority_Add_to_bit_map( &_Thread_MP_Receive->Priority_map ); - - _Thread_MP_Receive->current_state = STATES_READY; - - _Thread_Heir = _Thread_MP_Receive; - - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); - - if ( _Thread_Is_dispatching_enabled() ) - _Thread_Dispatch(); - - } else { - - _Thread_MP_Receive->Notepads[ 0 ] = 0; - _ISR_Enable( level ); - - } -} diff --git a/c/src/exec/score/src/threadq.c b/c/src/exec/score/src/threadq.c deleted file mode 100644 index 60ffb5db38..0000000000 --- a/c/src/exec/score/src/threadq.c +++ /dev/null @@ -1,837 +0,0 @@ -/* - * Thread Queue Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Thread_queue_Initialize - * - * This routine initializes the specified threadq. - * - * Input parameters: - * the_thread_queue - pointer to a threadq header - * attribute_set - used to determine queueing discipline - * state - state of waiting threads - * - * Output parameters: NONE - */ - -void _Thread_queue_Initialize( - Thread_queue_Control *the_thread_queue, - rtems_attribute attribute_set, - States_Control state -) -{ - unsigned32 index; - - if ( _Attributes_Is_priority( attribute_set ) ) { - the_thread_queue->discipline = THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE; - for( index=0 ; - index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; - index++) - _Chain_Initialize_empty( &the_thread_queue->Queues.Priority[index] ); - } - else { - the_thread_queue->discipline = THREAD_QUEUE_DATA_FIFO_DISCIPLINE; - _Chain_Initialize_empty( &the_thread_queue->Queues.Fifo ); - } - - the_thread_queue->state = state; - -} - -/*PAGE - * - * _Thread_queue_Enqueue - * - * This routine blocks a thread, places it on a thread, and optionally - * starts a timeout timer. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * timeout - interval to wait - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Thread_queue_Enqueue( - Thread_queue_Control *the_thread_queue, - rtems_interval timeout -) -{ - Thread_Control *the_thread; - - the_thread = _Thread_Executing; - - if ( _Thread_MP_Is_receive( the_thread ) ) - the_thread = _Thread_MP_Allocate_proxy( the_thread_queue->state ); - else - _Thread_Set_state( the_thread, the_thread_queue->state ); - - if ( timeout ) { - _Watchdog_Initialize( - &the_thread->Timer, - _Thread_queue_Timeout, - the_thread->Object.id, - NULL - ); - - _Watchdog_Insert_ticks( - &the_thread->Timer, - timeout, - WATCHDOG_NO_ACTIVATE - ); - } - - switch( the_thread_queue->discipline ) { - case THREAD_QUEUE_DATA_FIFO_DISCIPLINE: - _Thread_queue_Enqueue_fifo( the_thread_queue, the_thread, timeout ); - break; - case THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE: - _Thread_queue_Enqueue_priority( - the_thread_queue, the_thread, timeout ); - break; - } -} - -/*PAGE - * - * _Thread_queue_Dequeue - * - * This routine removes a thread from the specified threadq. If the - * threadq discipline is RTEMS_FIFO, it unblocks a thread, and cancels its - * timeout timer. Priority discipline is processed elsewhere. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * - * Output parameters: - * returns - thread dequeued or NULL - * - * INTERRUPT LATENCY: - * check sync - * RTEMS_FIFO - */ - -Thread_Control *_Thread_queue_Dequeue( - Thread_queue_Control *the_thread_queue -) -{ - Thread_Control *the_thread; - ISR_Level level; - - switch ( the_thread_queue->discipline ) { - case THREAD_QUEUE_DATA_FIFO_DISCIPLINE: - the_thread = _Thread_queue_Dequeue_fifo( the_thread_queue ); - break; - case THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE: - the_thread = _Thread_queue_Dequeue_priority( the_thread_queue ); - break; - default: /* this is only to prevent warnings */ - the_thread = NULL; - break; - } - - if ( !_Thread_Is_null( the_thread ) ) - return( the_thread ); - - _ISR_Disable( level ); - if ( the_thread_queue->sync == FALSE ) { - _ISR_Enable( level ); - return( NULL ); - } - - the_thread_queue->sync = FALSE; - _ISR_Enable( level ); - return( _Thread_Executing ); -} - -/*PAGE - * - * _Thread_queue_Extract - * - * This routine removes a specific thread from the specified threadq, - * deletes any timeout, and unblocks the thread. - * - * Input parameters: - * the_thread_queue - pointer to a threadq header - * the_thread - pointer to a thread control block - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: NONE - */ - -void _Thread_queue_Extract( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -) -{ - switch ( the_thread_queue->discipline ) { - case THREAD_QUEUE_DATA_FIFO_DISCIPLINE: - _Thread_queue_Extract_fifo( the_thread_queue, the_thread ); - break; - case THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE: - _Thread_queue_Extract_priority( the_thread_queue, the_thread ); - break; - } -} - -/*PAGE - * - * _Thread_queue_Flush - * - * This kernel routine flushes the given thread queue. - * - * Input parameters: - * the_thread_queue - pointer to threadq to be flushed - * - * Output parameters: NONE - */ - -void _Thread_queue_Flush( - Thread_queue_Control *the_thread_queue, - Thread_queue_Flush_callout remote_extract_callout -) -{ - Thread_Control *the_thread; - - while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) { - if ( _Objects_Is_local_id( the_thread->Object.id ) ) - the_thread->Wait.return_code = RTEMS_OBJECT_WAS_DELETED; - else - ( *remote_extract_callout )( the_thread ); - } -} - -/*PAGE - * - * _Thread_queue_First - * - * This routines returns a pointer to the first thread on the - * specified threadq. - * - * Input parameters: - * the_thread_queue - pointer to thread queue - * - * Output parameters: - * returns - first thread or NULL - */ - -Thread_Control *_Thread_queue_First( - Thread_queue_Control *the_thread_queue -) -{ - Thread_Control *the_thread; - - switch ( the_thread_queue->discipline ) { - case THREAD_QUEUE_DATA_FIFO_DISCIPLINE: - the_thread = _Thread_queue_First_fifo( the_thread_queue ); - break; - case THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE: - the_thread = _Thread_queue_First_priority( the_thread_queue ); - break; - default: /* this is only to prevent warnings */ - the_thread = NULL; - break; - } - - return the_thread; -} - -/*PAGE - * - * _Thread_queue_Timeout - * - * This routine processes a thread which timeouts while waiting on - * a thread queue. It is called by the watchdog handler. - * - * Input parameters: - * id - thread id - * - * Output parameters: NONE - */ - -void _Thread_queue_Timeout( - Objects_Id id, - void *ignored -) -{ - Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: /* impossible */ - break; - case OBJECTS_LOCAL: - the_thread->Wait.return_code = RTEMS_TIMEOUT; - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - _Thread_Unnest_dispatch(); - break; - } -} - -/*PAGE - * - * _Thread_queue_Enqueue_fifo - * - * This routine blocks a thread, places it on a thread, and optionally - * starts a timeout timer. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * the_thread - pointer to the thread to block - * timeout - interval to wait - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Thread_queue_Enqueue_fifo ( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread, - rtems_interval timeout -) -{ - ISR_Level level; - - _ISR_Disable( level ); - if ( the_thread_queue->sync == TRUE ) { - the_thread_queue->sync = FALSE; - - _Chain_Append_unprotected( - &the_thread_queue->Queues.Fifo, - &the_thread->Object.Node - ); - - if ( timeout != RTEMS_NO_TIMEOUT ) - _Watchdog_Activate( &the_thread->Timer ); - - _ISR_Enable( level ); - return; - } - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); - -} - -/*PAGE - * - * _Thread_queue_Dequeue_fifo - * - * This routine removes a thread from the specified threadq. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * - * Output parameters: - * returns - thread dequeued or NULL - * - * INTERRUPT LATENCY: - * check sync - * RTEMS_FIFO - */ - -Thread_Control *_Thread_queue_Dequeue_fifo( - Thread_queue_Control *the_thread_queue -) -{ - ISR_Level level; - Thread_Control *the_thread; - - _ISR_Disable( level ); - if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) { - - the_thread = (Thread_Control *) - _Chain_Get_first_unprotected( &the_thread_queue->Queues.Fifo ); - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); - - return( the_thread ); - } - _ISR_Enable( level ); - return( NULL ); -} - -/*PAGE - * - * _Thread_queue_Extract_fifo - * - * This routine removes a specific thread from the specified threadq, - * deletes any timeout, and unblocks the thread. - * - * Input parameters: - * the_thread_queue - pointer to a threadq header - * the_thread - pointer to the thread to block - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * EXTRACT_FIFO - */ - -void _Thread_queue_Extract_fifo( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -) -{ - ISR_Level level; - - _ISR_Disable( level ); - - if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { - _ISR_Enable( level ); - return; - } - - _Chain_Extract_unprotected( &the_thread->Object.Node ); - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); -} - -/*PAGE - * - * _Thread_queue_First_fifo - * - * This routines returns a pointer to the first thread on the - * specified threadq. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * - * Output parameters: - * returns - first thread or NULL - */ - -Thread_Control *_Thread_queue_First_fifo( - Thread_queue_Control *the_thread_queue -) -{ - if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) - return (Thread_Control *) the_thread_queue->Queues.Fifo.first; - - return NULL; -} - -/*PAGE - * - * _Thread_queue_Enqueue_priority - * - * This routine blocks a thread, places it on a thread, and optionally - * starts a timeout timer. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * thread - thread to insert - * timeout - timeout interval in ticks - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * forward less than - * forward equal - */ - -void _Thread_queue_Enqueue_priority( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread, - rtems_interval timeout -) -{ - rtems_task_priority search_priority; - Thread_Control *search_thread; - ISR_Level level; - Chain_Control *header; - unsigned32 header_index; - Chain_Node *the_node; - Chain_Node *next_node; - Chain_Node *previous_node; - Chain_Node *search_node; - rtems_task_priority priority; - States_Control block_state; - - _Chain_Initialize_empty( &the_thread->Wait.Block2n ); - - priority = the_thread->current_priority; - header_index = _Thread_queue_Header_number( priority ); - header = &the_thread_queue->Queues.Priority[ header_index ]; - block_state = the_thread_queue->state; - - if ( _Thread_queue_Is_reverse_search( priority ) ) - goto restart_reverse_search; - -restart_forward_search: - search_priority = RTEMS_MINIMUM_PRIORITY - 1; - _ISR_Disable( level ); - search_thread = (Thread_Control *) header->first; - while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) { - search_priority = search_thread->current_priority; - if ( priority <= search_priority ) - break; - -#if ( CPU_UNROLL_ENQUEUE_PRIORITY == TRUE ) - search_thread = (Thread_Control *) search_thread->Object.Node.next; - if ( _Chain_Is_tail( header, (Chain_Node *)search_thread ) ) - break; - search_priority = search_thread->current_priority; - if ( priority <= search_priority ) - break; -#endif - _ISR_Flash( level ); - if ( !_States_Are_set( search_thread->current_state, block_state) ) { - _ISR_Enable( level ); - goto restart_forward_search; - } - search_thread = - (Thread_Control *)search_thread->Object.Node.next; - } - if ( the_thread_queue->sync == FALSE ) - goto syncronize; - - the_thread_queue->sync = FALSE; - if ( timeout != RTEMS_NO_TIMEOUT ) - _Watchdog_Activate( &the_thread->Timer ); - - if ( priority == search_priority ) - goto equal_priority; - - search_node = (Chain_Node *) search_thread; - previous_node = search_node->previous; - the_node = (Chain_Node *) the_thread; - - the_node->next = search_node; - the_node->previous = previous_node; - previous_node->next = the_node; - search_node->previous = the_node; - _ISR_Enable( level ); - return; - -restart_reverse_search: - search_priority = RTEMS_MAXIMUM_PRIORITY + 1; - - _ISR_Disable( level ); - search_thread = (Thread_Control *) header->last; - while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) { - search_priority = search_thread->current_priority; - if ( priority >= search_priority ) - break; -#if ( CPU_UNROLL_ENQUEUE_PRIORITY == TRUE ) - search_thread = (Thread_Control *) search_thread->Object.Node.previous; - if ( _Chain_Is_head( header, (Chain_Node *)search_thread ) ) - break; - search_priority = search_thread->current_priority; - if ( priority >= search_priority ) - break; -#endif - _ISR_Flash( level ); - if ( !_States_Are_set( search_thread->current_state, block_state) ) { - _ISR_Enable( level ); - goto restart_reverse_search; - } - search_thread = (Thread_Control *) - search_thread->Object.Node.previous; - } - if ( !the_thread_queue->sync ) - goto syncronize; - - the_thread_queue->sync = FALSE; - if ( timeout != RTEMS_NO_TIMEOUT ) - _Watchdog_Activate( &the_thread->Timer ); - - if ( priority == search_priority ) - goto equal_priority; - - search_node = (Chain_Node *) search_thread; - next_node = search_node->next; - the_node = (Chain_Node *) the_thread; - - the_node->next = next_node; - the_node->previous = search_node; - search_node->next = the_node; - next_node->previous = the_node; - _ISR_Enable( level ); - return; - -equal_priority: /* add at end of priority group */ - search_node = _Chain_Tail( &search_thread->Wait.Block2n ); - previous_node = search_node->previous; - the_node = (Chain_Node *) the_thread; - - the_node->next = search_node; - the_node->previous = previous_node; - previous_node->next = the_node; - search_node->previous = the_node; - _ISR_Enable( level ); - return; - -syncronize: - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); -} - -/*PAGE - * - * _Thread_queue_Dequeue_priority - * - * This routine removes a thread from the specified RTEMS_PRIORITY based - * threadq, unblocks it, and cancels its timeout timer. - * - * Input parameters: - * the_thread_queue - pointer to thread queue - * - * Output parameters: - * returns - thread dequeued or NULL - * - * INTERRUPT LATENCY: - * only case - */ - -Thread_Control *_Thread_queue_Dequeue_priority( - Thread_queue_Control *the_thread_queue -) -{ - unsigned32 index; - ISR_Level level; - Thread_Control *the_thread; - Thread_Control *new_first_thread; - Chain_Node *new_first_node; - Chain_Node *new_second_node; - Chain_Node *last_node; - Chain_Node *next_node; - Chain_Node *previous_node; - - for( index=0 ; - index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; - index++ ) { - _ISR_Disable( level ); - if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) { - the_thread = (Thread_Control *) - the_thread_queue->Queues.Priority[ index ].first; - goto dequeue; - } - _ISR_Enable( level ); - } - return NULL; - -dequeue: - new_first_node = the_thread->Wait.Block2n.first; - new_first_thread = (Thread_Control *) new_first_node; - next_node = the_thread->Object.Node.next; - previous_node = the_thread->Object.Node.previous; - - if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { - last_node = the_thread->Wait.Block2n.last; - new_second_node = new_first_node->next; - - previous_node->next = new_first_node; - next_node->previous = new_first_node; - new_first_node->next = next_node; - new_first_node->previous = previous_node; - - if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) { - /* > two threads on 2-n */ - new_second_node->previous = - _Chain_Head( &new_first_thread->Wait.Block2n ); - - new_first_thread->Wait.Block2n.first = new_second_node; - new_first_thread->Wait.Block2n.last = last_node; - - last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); - } - } else { - previous_node->next = next_node; - next_node->previous = previous_node; - } - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); - return( the_thread ); -} - -/*PAGE - * - * _Thread_queue_Extract_priority - * - * This routine removes a specific thread from the specified threadq, - * deletes any timeout, and unblocks the thread. - * - * Input parameters: - * the_thread_queue - pointer to a threadq header - * the_thread - pointer to a thread control block - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * EXTRACT_PRIORITY - */ - -void _Thread_queue_Extract_priority( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -) -{ - ISR_Level level; - Chain_Node *the_node; - Chain_Node *next_node; - Chain_Node *previous_node; - Thread_Control *new_first_thread; - Chain_Node *new_first_node; - Chain_Node *new_second_node; - Chain_Node *last_node; - - the_node = (Chain_Node *) the_thread; - _ISR_Disable( level ); - if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { - next_node = the_node->next; - previous_node = the_node->previous; - - if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { - new_first_node = the_thread->Wait.Block2n.first; - new_first_thread = (Thread_Control *) new_first_node; - last_node = the_thread->Wait.Block2n.last; - new_second_node = new_first_node->next; - - previous_node->next = new_first_node; - next_node->previous = new_first_node; - new_first_node->next = next_node; - new_first_node->previous = previous_node; - - if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) { - /* > two threads on 2-n */ - new_second_node->previous = - _Chain_Head( &new_first_thread->Wait.Block2n ); - new_first_thread->Wait.Block2n.first = new_second_node; - - new_first_thread->Wait.Block2n.last = last_node; - last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); - } - } else { - previous_node->next = next_node; - next_node->previous = previous_node; - } - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); - } - else - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_queue_First_priority - * - * This routines returns a pointer to the first thread on the - * specified threadq. - * - * Input parameters: - * the_thread_queue - pointer to thread queue - * - * Output parameters: - * returns - first thread or NULL - */ - -Thread_Control *_Thread_queue_First_priority ( - Thread_queue_Control *the_thread_queue -) -{ - unsigned32 index; - - for( index=0 ; - index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; - index++ ) { - if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) - return (Thread_Control *) - the_thread_queue->Queues.Priority[ index ].first; - } - return NULL; -} diff --git a/c/src/exec/score/src/tod.c b/c/src/exec/score/src/tod.c deleted file mode 100644 index 4689c637d7..0000000000 --- a/c/src/exec/score/src/tod.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Time of Day (TOD) Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/*PAGE - * - * _TOD_Handler_initialization - * - * This routine initializes the time of day handler. - * - * Input parameters: - * microseconds_per_tick - microseconds between clock ticks - * - * Output parameters: NONE - */ - -void _TOD_Handler_initialization( - unsigned32 microseconds_per_tick -) -{ - _TOD_Microseconds_per_tick = microseconds_per_tick; - - _TOD_Ticks_since_boot = 0; - _TOD_Seconds_since_epoch = 0; - - _TOD_Current.year = TOD_BASE_YEAR; - _TOD_Current.month = 1; - _TOD_Current.day = 1; - _TOD_Current.hour = 0; - _TOD_Current.minute = 0; - _TOD_Current.second = 0; - _TOD_Current.ticks = 0; - - if ( microseconds_per_tick == 0 ) - _TOD_Ticks_per_second = 0; - else - _TOD_Ticks_per_second = - TOD_MICROSECONDS_PER_SECOND / microseconds_per_tick; - - _Watchdog_Initialize( &_TOD_Seconds_watchdog, _TOD_Tickle, 0, NULL ); -} - -/*PAGE - * - * _TOD_Set - * - * This rountine sets the current date and time with the specified - * new date and time structure. - * - * Input parameters: - * the_tod - pointer to the time and date structure - * seconds_since_epoch - seconds since system epoch - * - * Output parameters: NONE - */ - -void _TOD_Set( - rtems_time_of_day *the_tod, - rtems_interval seconds_since_epoch -) -{ - rtems_interval ticks_until_next_second; - - _Thread_Disable_dispatch(); - _TOD_Deactivate(); - - if ( seconds_since_epoch < _TOD_Seconds_since_epoch ) - _Watchdog_Adjust_seconds( WATCHDOG_BACKWARD, - _TOD_Seconds_since_epoch - seconds_since_epoch ); - else - _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, - seconds_since_epoch - _TOD_Seconds_since_epoch ); - - ticks_until_next_second = _TOD_Ticks_per_second; - if ( ticks_until_next_second > _TOD_Current.ticks ) - ticks_until_next_second -= _TOD_Current.ticks; - - _TOD_Current = *the_tod; - _TOD_Seconds_since_epoch = seconds_since_epoch; - _TOD_Activate( ticks_until_next_second ); - - _Thread_Enable_dispatch(); -} - -/*PAGE - * - * _TOD_Validate - * - * This kernel routine checks the validity of a date and time structure. - * - * Input parameters: - * the_tod - pointer to a time and date structure - * - * Output parameters: - * RTEMS_SUCCESSFUL - if the date, time, and tick are valid - * RTEMS_INVALID_CLOCK - if the the_tod is invalid - * - * NOTE: This routine only works for leap-years through 2099. - */ - -rtems_status_code _TOD_Validate( - rtems_time_of_day *the_tod -) -{ - unsigned32 days_in_month; - - if ((the_tod->ticks >= _TOD_Ticks_per_second) || - (the_tod->second >= TOD_SECONDS_PER_MINUTE) || - (the_tod->minute >= TOD_MINUTES_PER_HOUR) || - (the_tod->hour >= TOD_HOURS_PER_DAY) || - (the_tod->month == 0) || - (the_tod->month > TOD_MONTHS_PER_YEAR) || - (the_tod->year < TOD_BASE_YEAR) || - (the_tod->day == 0) ) - return RTEMS_INVALID_CLOCK; - - if ( (the_tod->year % 4) == 0 ) - days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ]; - else - days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ]; - - if ( the_tod->day > days_in_month ) - return RTEMS_INVALID_CLOCK; - - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _TOD_To_seconds - * - * This routine returns the seconds from the epoch until the - * current date and time. - * - * Input parameters: - * the_tod - pointer to the time and date structure - * - * Output parameters: - * returns - seconds since epoch until the_tod - */ - -unsigned32 _TOD_To_seconds( - rtems_time_of_day *the_tod -) -{ - unsigned32 time; - unsigned32 year_mod_4; - - time = the_tod->day - 1; - year_mod_4 = the_tod->year & 3; - - if ( year_mod_4 == 0 ) - time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; - else - time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; - - time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * - ( (TOD_DAYS_PER_YEAR * 4) + 1); - - time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; - - time *= TOD_SECONDS_PER_DAY; - - time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) - * TOD_SECONDS_PER_MINUTE; - - time += the_tod->second; - - return( time ); -} - -/*PAGE - * - * _TOD_Tickle - * - * This routine updates the calendar time and tickles the - * per second watchdog timer chain. - * - * Input parameters: - * ignored - this parameter is ignored - * - * Output parameters: NONE - * - * NOTE: This routine only works for leap-years through 2099. - */ - -void _TOD_Tickle( - Objects_Id id, - void *ignored -) -{ - unsigned32 leap; - - _TOD_Current.ticks = 0; - ++_TOD_Seconds_since_epoch; - if ( ++_TOD_Current.second >= TOD_SECONDS_PER_MINUTE ) { - _TOD_Current.second = 0; - if ( ++_TOD_Current.minute >= TOD_MINUTES_PER_HOUR ) { - _TOD_Current.minute = 0; - if ( ++_TOD_Current.hour >= TOD_HOURS_PER_DAY ) { - _TOD_Current.hour = 0; - if ( _TOD_Current.year & 0x3 ) leap = 0; - else leap = 1; - if ( ++_TOD_Current.day > - _TOD_Days_per_month[ leap ][ _TOD_Current.month ]) { - _TOD_Current.day = 1; - if ( ++_TOD_Current.month > TOD_MONTHS_PER_YEAR ) { - _TOD_Current.month = 1; - _TOD_Current.year++; - } - } - } - } - } - - _Watchdog_Tickle_seconds(); - _Watchdog_Insert_ticks( &_TOD_Seconds_watchdog, _TOD_Ticks_per_second, - WATCHDOG_ACTIVATE_NOW ); -} diff --git a/c/src/exec/score/src/watchdog.c b/c/src/exec/score/src/watchdog.c deleted file mode 100644 index 7db26c0cd5..0000000000 --- a/c/src/exec/score/src/watchdog.c +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Watchdog Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -/*PAGE - * - * _Watchdog_Handler_initialization - * - * This routine initializes the watchdog handler. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void _Watchdog_Handler_initialization( void ) -{ - _Watchdog_Clear_sync(); - _Chain_Initialize_empty( &_Watchdog_Ticks_chain ); - _Chain_Initialize_empty( &_Watchdog_Seconds_chain ); -} - -/*PAGE - * - * _Watchdog_Remove - * - * The routine removes a watchdog from a delta chain and updates - * the delta counters of the remaining watchdogs. - */ - -Watchdog_States _Watchdog_Remove( - Watchdog_Control *the_watchdog -) -{ - ISR_Level level; - Watchdog_States previous_state; - Watchdog_Control *next_watchdog; - - _ISR_Disable( level ); - previous_state = the_watchdog->state; - switch ( previous_state ) { - case WATCHDOG_INACTIVE: - break; - case WATCHDOG_ACTIVE: - case WATCHDOG_REINSERT: - case WATCHDOG_REMOVE_IT: - - the_watchdog->state = WATCHDOG_INACTIVE; - next_watchdog = _Watchdog_Next( the_watchdog ); - - if ( _Watchdog_Next(next_watchdog) ) - next_watchdog->delta_interval += the_watchdog->delta_interval; - - if ( the_watchdog == _Watchdog_Sync ) - _Watchdog_Sync = _Watchdog_Previous( the_watchdog ); - - _Chain_Extract_unprotected( &the_watchdog->Node ); - break; - } - _ISR_Enable( level ); - return( previous_state ); -} - -/*PAGE - * - * _Watchdog_Adjust - * - * This routine adjusts the delta chain backward or forward in response - * to a time change. - * - * Input parameters: - * header - pointer to the delta chain to be adjusted - * direction - forward or backward adjustment to delta chain - * units - units to adjust - * - * Output parameters: - */ - -void _Watchdog_Adjust( - Chain_Control *header, - Watchdog_Adjust_directions direction, - rtems_interval units -) -{ - if ( !_Chain_Is_empty( header ) ) { - switch ( direction ) { - case WATCHDOG_BACKWARD: - _Watchdog_First( header )->delta_interval += units; - break; - case WATCHDOG_FORWARD: - while ( units ) { - if ( units < _Watchdog_First( header )->delta_interval ) { - _Watchdog_First( header )->delta_interval -= units; - break; - } else { - units -= _Watchdog_First( header )->delta_interval; - _Watchdog_First( header )->delta_interval = 1; - _Watchdog_Tickle( header ); - if ( _Chain_Is_empty( header ) ) - break; - } - } - break; - } - } -} - -/*PAGE - * - * _Watchdog_Insert - * - * This routine inserts a watchdog timer on to the appropriate delta - * chain while updating the delta interval counters. - */ - -void _Watchdog_Insert( - Chain_Control *header, - Watchdog_Control *the_watchdog, - Watchdog_Insert_modes insert_mode -) -{ - ISR_Level level; - Watchdog_Control *after; - - the_watchdog->state = WATCHDOG_REINSERT; - the_watchdog->delta_interval = the_watchdog->initial; - - _ISR_Disable( level ); - - for ( after = _Watchdog_First( header ) ; - ; - after = _Watchdog_Next( _Watchdog_Get_sync() ) ) { - - if ( the_watchdog->delta_interval == 0 || !_Watchdog_Next( after ) ) - break; - - if ( the_watchdog->delta_interval < after->delta_interval ) { - after->delta_interval -= the_watchdog->delta_interval; - break; - } - - the_watchdog->delta_interval -= after->delta_interval; - _Watchdog_Set_sync( after ); - - /* - * If you experience problems comment out the _ISR_Flash line. Under - * certain circumstances, this flash allows interrupts to execute - * which violate the design assumptions. The critical section - * mechanism used here must be redesigned to address this. - */ - - _ISR_Flash( level ); - } - - if ( insert_mode == WATCHDOG_ACTIVATE_NOW ) - _Watchdog_Activate( the_watchdog ); - - _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node ); - - _Watchdog_Clear_sync(); - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Watchdog_Tickle - * - * This routine decrements the delta counter in response to a tick. The - * delta chain is updated accordingly. - * - * Input parameters: - * header - pointer to the delta chain to be tickled - * - * Output parameters: NONE - */ - -void _Watchdog_Tickle( - Chain_Control *header -) -{ - Watchdog_Control *the_watchdog; - - if ( _Chain_Is_empty( header ) ) - return; - - the_watchdog = _Watchdog_First( header ); - the_watchdog->delta_interval--; - if ( the_watchdog->delta_interval != 0 ) - return; - - do { - switch( _Watchdog_Remove( the_watchdog ) ) { - case WATCHDOG_ACTIVE: - (*the_watchdog->routine)( - the_watchdog->id, - the_watchdog->user_data - ); - break; - case WATCHDOG_REINSERT: - _Watchdog_Insert( header, the_watchdog, WATCHDOG_ACTIVATE_NOW ); - break; - case WATCHDOG_INACTIVE: - case WATCHDOG_REMOVE_IT: - break; - } - the_watchdog = _Watchdog_First( header ); - } while ( !_Chain_Is_empty( header ) && - (the_watchdog->delta_interval == 0) ); -} diff --git a/c/src/exec/score/src/wkspace.c b/c/src/exec/score/src/wkspace.c deleted file mode 100644 index 577b0f6c01..0000000000 --- a/c/src/exec/score/src/wkspace.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Workspace Handler - * - * NOTE: - * - * This file only exists to contain the one function which cannot - * be written as a macro when "static inlines" are not used. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -#ifndef USE_INLINES - -/*PAGE - * - * _Workspace_Allocate_or_fatal_error - * - */ - -void *_Workspace_Allocate_or_fatal_error( - unsigned32 size -) -{ - void *memory; - - memory = _Workspace_Allocate( size ); - - if ( memory == NULL ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); - - return memory; -} - -#endif /* USE_INLINES */ - diff --git a/c/src/exec/score/tools/hppa1.1/genoffsets.c b/c/src/exec/score/tools/hppa1.1/genoffsets.c deleted file mode 100644 index 6563681f11..0000000000 --- a/c/src/exec/score/tools/hppa1.1/genoffsets.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - * @(#)genoffsets.c 1.3 - 95/03/15 - * - * - * genoffsets.c - * - * This file generates the offsets.h for the HP PA-RISC port of RTEMS. - * - * NOTE: It only prints the offset for structures actually used - * by the assembly code. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - * - */ - -#include - -#include - -int main( - int argc, - char **argv -) -{ - unsigned int size; - - /* - * Print the file header - */ - -printf( - "/* offsets.h\n" - " *\n" - " * This include file contains the offsets of elements in the\n" - " * C data structures used by the assembly language code for the\n" - " * HP PA-RISC 1.1 port of RTEMS.\n" - " *\n" - " * NOTE: THIS FILE IS AUTOMATICALLY GENERATED!!!!\n" - " * DO NOT EDIT THIS BY HAND!!!!\n" - " *\n" - " * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.\n" - " * On-Line Applications Research Corporation (OAR).\n" - " * All rights assigned to U.S. Government, 1994.\n" - " *\n" - " * This material may be reproduced by or for the U.S. Government pursuant\n" - " * to the copyright license under the clause at DFARS 252.227-7013. This\n" - " * notice must appear in all copies of this file and its derivatives.\n" - " */\n" - "\n" - "#ifndef __OFFSETS_h\n" - "#define __OFFSETS_h\n" - "\n" -); - -/* - * Offsets of elements in the Context_control structure. - */ - -#define PRINT_IT( STRING, TYPE, FIELD ) \ - printf( "#define\t%s\t0x%p\t\t/* %d */\n", \ - STRING, \ - &((TYPE)0)->FIELD, \ - (int) &((TYPE)0)->FIELD ); - -#define PRINT_SIZE( STRING, item ) \ - printf( "#define\t%s\t%d\t\t/* 0x%x */\n", \ - STRING, \ - sizeof(item), \ - sizeof(item) ); - -#define PRINT_COMMENT( STRING ) \ - printf( \ - "\n" \ - "/*\n" \ - " * " STRING "\n" \ - " */\n" \ - "\n" \ - ); - - PRINT_COMMENT("Context_Control information"); - - PRINT_IT( "FLAGS_OFFSET", Context_Control *, flags ); - PRINT_IT( "R1_OFFSET", Context_Control *, gr1 ); - PRINT_IT( "R2_OFFSET", Context_Control *, gr2 ); - PRINT_IT( "R3_OFFSET", Context_Control *, gr3 ); - PRINT_IT( "R4_OFFSET", Context_Control *, gr4 ); - PRINT_IT( "R5_OFFSET", Context_Control *, gr5 ); - PRINT_IT( "R6_OFFSET", Context_Control *, gr6 ); - PRINT_IT( "R7_OFFSET", Context_Control *, gr7 ); - PRINT_IT( "R8_OFFSET", Context_Control *, gr8 ); - PRINT_IT( "R9_OFFSET", Context_Control *, gr9 ); - PRINT_IT( "R10_OFFSET", Context_Control *, gr10 ); - PRINT_IT( "R11_OFFSET", Context_Control *, gr11 ); - PRINT_IT( "R12_OFFSET", Context_Control *, gr12 ); - PRINT_IT( "R13_OFFSET", Context_Control *, gr13 ); - PRINT_IT( "R14_OFFSET", Context_Control *, gr14 ); - PRINT_IT( "R15_OFFSET", Context_Control *, gr15 ); - PRINT_IT( "R16_OFFSET", Context_Control *, gr16 ); - PRINT_IT( "R17_OFFSET", Context_Control *, gr17 ); - PRINT_IT( "R18_OFFSET", Context_Control *, gr18 ); - PRINT_IT( "R19_OFFSET", Context_Control *, gr19 ); - PRINT_IT( "R20_OFFSET", Context_Control *, gr20 ); - PRINT_IT( "R21_OFFSET", Context_Control *, gr21 ); - PRINT_IT( "R22_OFFSET", Context_Control *, gr22 ); - PRINT_IT( "R23_OFFSET", Context_Control *, gr23 ); - PRINT_IT( "R24_OFFSET", Context_Control *, gr24 ); - PRINT_IT( "R25_OFFSET", Context_Control *, gr25 ); - PRINT_IT( "R26_OFFSET", Context_Control *, gr26 ); - PRINT_IT( "R27_OFFSET", Context_Control *, gr27 ); - PRINT_IT( "R28_OFFSET", Context_Control *, gr28 ); - PRINT_IT( "R29_OFFSET", Context_Control *, gr29 ); - PRINT_IT( "R30_OFFSET", Context_Control *, sp ); - PRINT_IT( "R31_OFFSET", Context_Control *, gr31 ); - - /* - * And common aliases for the above - */ - - PRINT_COMMENT("Common aliases for above"); - - PRINT_IT( "RP_OFFSET", Context_Control *, gr2 ); - PRINT_IT( "ARG3_OFFSET", Context_Control *, gr23 ); - PRINT_IT( "ARG2_OFFSET", Context_Control *, gr24 ); - PRINT_IT( "ARG1_OFFSET", Context_Control *, gr25 ); - PRINT_IT( "ARG0_OFFSET", Context_Control *, gr26 ); - PRINT_IT( "SP_OFFSET", Context_Control *, sp ); - PRINT_IT( "DP_OFFSET", Context_Control *, gr27 ); - PRINT_IT( "RET0_OFFSET", Context_Control *, gr28 ); - PRINT_IT( "RET1_OFFSET", Context_Control *, gr29 ); - - PRINT_SIZE("CPU_CONTEXT_SIZE", Context_Control); - - PRINT_COMMENT("Context_Control_fp information"); - - PRINT_SIZE("CPU_CONTEXT_FP_SIZE", Context_Control_fp); - - /* - * And the control registers - */ - - PRINT_COMMENT("Control register portion of context"); - - PRINT_IT( "SAR_OFFSET", Context_Control *, sar ); - PRINT_IT( "IPSW_OFFSET", Context_Control *, ipsw ); - PRINT_IT( "IIR_OFFSET", Context_Control *, iir ); - PRINT_IT( "IOR_OFFSET", Context_Control *, ior ); - PRINT_IT( "ISR_OFFSET", Context_Control *, isr ); - PRINT_IT( "PCOQFRONT_OFFSET", Context_Control *, pcoqfront ); - PRINT_IT( "PCOQBACK_OFFSET", Context_Control *, pcoqback ); - PRINT_IT( "PCSQFRONT_OFFSET", Context_Control *, pcsqfront ); - PRINT_IT( "PCSQBACK_OFFSET", Context_Control *, pcsqback ); - PRINT_IT( "ITIMER_OFFSET", Context_Control *, itimer ); - - /* - * Full interrupt frame (integer + float) - */ - PRINT_COMMENT("Interrupt frame information"); - - PRINT_IT( "INTEGER_CONTEXT_OFFSET", CPU_Interrupt_frame *, Integer ); - PRINT_IT( "FP_CONTEXT_OFFSET", CPU_Interrupt_frame *, Floating_Point ); - size = sizeof( CPU_Interrupt_frame ); - - if ( size % CPU_STACK_ALIGNMENT ) - size += CPU_STACK_ALIGNMENT - (size % CPU_STACK_ALIGNMENT); - - printf( "#define\tCPU_INTERRUPT_FRAME_SIZE\t%d\t\t/* 0x%x */\n", size, size ); - -#undef PRINT_IT -#undef PRINT_SIZE -#undef PRINT_COMMENT - - /* - * Print the end of file stuff - */ - - printf( - "\n" - "#endif /* __OFFSETS_h */\n" - "\n" - "/* end of include file */\n" - ); - - return 0; -} diff --git a/c/src/lib/include/clockdrv.h b/c/src/lib/include/clockdrv.h deleted file mode 100644 index aad9bd6d3b..0000000000 --- a/c/src/lib/include/clockdrv.h +++ /dev/null @@ -1,58 +0,0 @@ -/* clock.h - * - * This file describes the Clock Driver for all boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __CLOCK_DRIVER_h -#define __CLOCK_DRIVER_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* variables */ - -extern volatile rtems_unsigned32 Clock_driver_ticks; - -/* functions */ - -rtems_task Exit_task(); -void exit_task_init(); - -void Install_clock( rtems_isr_entry ); -void ReInstall_clock( rtems_isr_entry ); -void Clock_exit(); - -rtems_isr Clock_isr( - rtems_vector_number -); - -/* driver entries */ - -#define CLOCK_DRIVER_TABLE_ENTRY \ - { Clock_initialize, NULL, NULL, NULL, NULL, NULL } - -rtems_device_driver Clock_initialize( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/include/console.h b/c/src/lib/include/console.h deleted file mode 100644 index d102c6a1b1..0000000000 --- a/c/src/lib/include/console.h +++ /dev/null @@ -1,40 +0,0 @@ -/* console.h - * - * This file describes the Console Device Driver for all boards. - * This driver provides support for the standard C Library. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef _CONSOLE_DRIVER_h -#define _CONSOLE_DRIVER_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define CONSOLE_DRIVER_TABLE_ENTRY \ - { console_initialize, NULL, NULL, NULL, NULL, NULL } - -rtems_device_driver console_initialize( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/include/iosupp.h b/c/src/lib/include/iosupp.h deleted file mode 100644 index 5f4a83b8ca..0000000000 --- a/c/src/lib/include/iosupp.h +++ /dev/null @@ -1,44 +0,0 @@ -/* iosupp.h - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __IOSUPP_h -#define __IOSUPP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* character constants */ - -#define BS 0x08 /* backspace */ -#define LF 0x0a /* line feed */ -#define CR 0x0d /* carriage return */ -#define XON 0x11 /* control-Q */ -#define XOFF 0x13 /* control-S */ - -/* structures */ - -#ifdef IOSUPP_INIT -#define IOSUPP_EXTERN -#else -#undef IOSUPP_EXTERN -#define IOSUPP_EXTERN extern -#endif - -/* functions */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/c/src/lib/include/rtems/libcsupport.h b/c/src/lib/include/rtems/libcsupport.h deleted file mode 100644 index 2b199707f8..0000000000 --- a/c/src/lib/include/rtems/libcsupport.h +++ /dev/null @@ -1,47 +0,0 @@ -/* libcsupport.h - * - * This include file contains the information regarding the - * RTEMS specific support for the standard C library. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __LIBC_SUPPORT_h -#define __LIBC_SUPPORT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -void RTEMS_Malloc_Initialize( - void *start, - size_t length, - size_t sbrk_amount -); - -extern void libc_init(int reentrant); - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/include/spurious.h b/c/src/lib/include/spurious.h deleted file mode 100644 index 428e826164..0000000000 --- a/c/src/lib/include/spurious.h +++ /dev/null @@ -1,38 +0,0 @@ -/* spurious.h - * - * This file describes the Spurious Interrupt Driver for all boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993. - * On-Line Applications Research Corporation (OAR). - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SPURIOUS_h -#define __SPURIOUS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define SPURIOUS_DRIVER_TABLE_ENTRY \ - { Spurious_Initialize, NULL, NULL, NULL, NULL, NULL } - -rtems_device_driver Spurious_Initialize( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/include/timerdrv.h b/c/src/lib/include/timerdrv.h deleted file mode 100644 index d091b62410..0000000000 --- a/c/src/lib/include/timerdrv.h +++ /dev/null @@ -1,40 +0,0 @@ -/* timerdrv.h - * - * This file describes the Timer Driver for all boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIMER_DRIVER_h -#define __TIMER_DRIVER_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* functions */ - -void Timer_initialize( void ); - -rtems_unsigned32 Read_timer( void ); - -rtems_status_code Empty_function( void ); - -void Set_find_average_overhead( - rtems_boolean find_flag -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/include/vmeintr.h b/c/src/lib/include/vmeintr.h deleted file mode 100644 index 6148114ce8..0000000000 --- a/c/src/lib/include/vmeintr.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * vmeintr.h - * - * This file is the specification for the VMEbus interface library - * which should be provided by all BSPs for VMEbus Single Board - * Computers but currently only a few do so. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __VME_INTERRUPT_h -#define __VME_INTERRUPT_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This defines the mask which is used to determine which - * interrupt levels are affected by a call to this package. - * The LSB corresponds to VME interrupt 0 and the MSB - * to VME interrupt 7. - * - */ - -typedef rtems_unsigned8 VME_interrupt_Mask; - -/* - * VME_interrupt_Disable - * - */ - -void VME_interrupt_Disable ( - VME_interrupt_Mask mask /* IN */ -); - -/* - * VME_interrupt_Disable - * - */ - -void VME_interrupt_Enable ( - VME_interrupt_Mask mask /* IN */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* end of include file */ diff --git a/c/src/lib/libbsp/README b/c/src/lib/libbsp/README deleted file mode 100644 index c3b978b6cb..0000000000 --- a/c/src/lib/libbsp/README +++ /dev/null @@ -1,46 +0,0 @@ -# -# $Id$ -# - -Board Support Package library - -This directory contains the source for the libbsp.a library. -For each supported board $(RTEMS_BSP) there is a standard -set of functions which must be provided in the BSP: - - + start up initialization - + exit support - + set vector - + console IO support - + drivers - -In addition, the BSP also determines the memory usage by providing -any necessary linker scripts. - -There are also "generic" drivers in this directory. Currently -they are shmdr and stubdr. - -Some of the supplied generic drivers (for example, shared memory) require -target board specific support routines. - -NOTE: The library libbsp.a is actually built by $(RTEMS_BSP)/wrapup/Makefile. - -To execute all of the test in the RTEMS Tests Suites the following -device drivers must be supplied: - - + Clock Tick - + IO Driver Support - + Timer - + Shared Memory Driver Support - -The Timer Driver is used only by the Timing Test Suite (c/src/tests/tmtests/*). -These tests are used to generate the execution times for RTEMS found in the -flyers. It is recommended that these tests be run to verify a port to a new -CPU or with a newly developed BSP. Looking at the times as compared to a -known CPU and target can yield insights into potential performance problems -in either the port, the BSP, or the target hardware. - -The Shared Memory Support is only required to execute the Multiprocessor -Test Suite (c/src/tests/mptests/*). Multiprocessing is not a required part -of a BSP. - diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/include/bsp.h b/c/src/lib/libbsp/hppa1.1/simhppa/include/bsp.h deleted file mode 100644 index c3759739b5..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/include/bsp.h +++ /dev/null @@ -1,93 +0,0 @@ -/* bsp.h - * - * This include file contains all HP PA-RISC simulator definitions. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SIMHPPA_h -#define __SIMHPPA_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * Define the time limits for RTEMS Test Suite test durations. - * Long test and short test duration limits are provided. These - * values are in seconds and need to be converted to ticks for the - * application. - * - */ - -#define MAX_LONG_TEST_DURATION 3 /* 3 seconds */ -#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */ - -/* - * Define the interrupt mechanism for Time Test 27 - */ - -#define MUST_WAIT_FOR_INTERRUPT 1 - -#define Install_tm27_vector( handler ) \ - ( void ) set_vector( handler, HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER, 1 ); - -#define Cause_tm27_intr() \ - set_itimer( get_itimer() + 20 ) - -#define Clear_tm27_intr() \ - set_eirr( 0x80000000 ) - -#define Lower_tm27_intr() \ - { \ - register unsigned32 ignored; \ - HPPA_ASM_SSM( HPPA_PSW_I, ignored ); \ - } - -/* - * Simple spin delay in microsecond units for device drivers. - * This is very dependent on the clock speed of the target. - */ - -extern void Clock_delay(rtems_unsigned32 microseconds); -#define delay( microseconds ) \ - Clock_delay(microseconds); - -/* - * We printf() to a buffer if multiprocessing, *or* if this is set. - * ref: src/lib/libbsp/hppa/simhppa/iosupp/consupp.c - */ - -extern int use_print_buffer; - -#define HPPA_INTERRUPT_EXTERNAL_MPCI HPPA_INTERRUPT_EXTERNAL_10 - -void bsp_start( void ); -void bsp_cleanup( void ); - -/* miscellaneous stuff assumed to exist */ - -extern rtems_configuration_table BSP_Configuration; /* owned by BSP */ -extern rtems_cpu_table Cpu_table; /* owned by BSP */ - -extern rtems_unsigned32 bsp_isr_level; - -extern int cpu_number; /* from 0; cpu number in a multi cpu system */ - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/include/coverhd.h b/c/src/lib/libbsp/hppa1.1/simhppa/include/coverhd.h deleted file mode 100644 index 1f5e3a3d5a..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/include/coverhd.h +++ /dev/null @@ -1,104 +0,0 @@ -/* coverhd.h - * - * This include file has defines to represent the overhead associated - * with calling a particular directive from C for this target. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __COVERHD_h -#define __COVERHD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 0 -#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 0 -#define CALLING_OVERHEAD_TASK_CREATE 0 -#define CALLING_OVERHEAD_TASK_IDENT 0 -#define CALLING_OVERHEAD_TASK_START 0 -#define CALLING_OVERHEAD_TASK_RESTART 0 -#define CALLING_OVERHEAD_TASK_DELETE 0 -#define CALLING_OVERHEAD_TASK_SUSPEND 0 -#define CALLING_OVERHEAD_TASK_RESUME 0 -#define CALLING_OVERHEAD_TASK_SET_PRIORITY 0 -#define CALLING_OVERHEAD_TASK_MODE 0 -#define CALLING_OVERHEAD_TASK_GET_NOTE 0 -#define CALLING_OVERHEAD_TASK_SET_NOTE 0 -#define CALLING_OVERHEAD_TASK_WAKE_WHEN 0 -#define CALLING_OVERHEAD_TASK_WAKE_AFTER 0 -#define CALLING_OVERHEAD_INTERRUPT_CATCH 0 -#define CALLING_OVERHEAD_CLOCK_GET 0 -#define CALLING_OVERHEAD_CLOCK_SET 0 -#define CALLING_OVERHEAD_CLOCK_TICK 0 - -#define CALLING_OVERHEAD_TIMER_CREATE 0 -#define CALLING_OVERHEAD_TIMER_IDENT 0 -#define CALLING_OVERHEAD_TIMER_DELETE 0 -#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 0 -#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 0 -#define CALLING_OVERHEAD_TIMER_RESET 0 -#define CALLING_OVERHEAD_TIMER_CANCEL 0 -#define CALLING_OVERHEAD_SEMAPHORE_CREATE 0 -#define CALLING_OVERHEAD_SEMAPHORE_IDENT 0 -#define CALLING_OVERHEAD_SEMAPHORE_DELETE 0 -#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 0 -#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 0 - -#define CALLING_OVERHEAD_EVENT_SEND 0 -#define CALLING_OVERHEAD_EVENT_RECEIVE 0 -#define CALLING_OVERHEAD_SIGNAL_CATCH 0 -#define CALLING_OVERHEAD_SIGNAL_SEND 0 -#define CALLING_OVERHEAD_PARTITION_CREATE 0 -#define CALLING_OVERHEAD_PARTITION_IDENT 0 -#define CALLING_OVERHEAD_PARTITION_DELETE 0 -#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 0 -#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 0 -#define CALLING_OVERHEAD_REGION_CREATE 0 -#define CALLING_OVERHEAD_REGION_IDENT 0 -#define CALLING_OVERHEAD_REGION_DELETE 0 -#define CALLING_OVERHEAD_REGION_GET_SEGMENT 0 -#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 0 -#define CALLING_OVERHEAD_PORT_CREATE 0 -#define CALLING_OVERHEAD_PORT_IDENT 0 -#define CALLING_OVERHEAD_PORT_DELETE 0 -#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 0 -#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 0 - -#define CALLING_OVERHEAD_IO_INITIALIZE 0 -#define CALLING_OVERHEAD_IO_OPEN 0 -#define CALLING_OVERHEAD_IO_CLOSE 0 -#define CALLING_OVERHEAD_IO_READ 0 -#define CALLING_OVERHEAD_IO_WRITE 0 -#define CALLING_OVERHEAD_IO_CONTROL 0 -#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 0 -#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 0 - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/README b/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/README deleted file mode 100644 index cf60698ca4..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/README +++ /dev/null @@ -1,9 +0,0 @@ -# -# $Id$ -# - -This directory contains the SHM driver support files for the -HP PA-RISC simulator for the 72000 processor. - -WARNING: The interrupt support in this directory currently will - only work in a homogeneous system. diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/addrconv.c b/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/addrconv.c deleted file mode 100644 index 0d67bba2a6..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/addrconv.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Shm_Convert_address - * - * No address range conversion is required. - * - * Input parameters: - * address - address to convert - * - * Output parameters: - * returns - converted address - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -void *Shm_Convert_address( - void *address -) -{ - return ( address ); -} diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/getcfg.c b/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/getcfg.c deleted file mode 100644 index e21e62f55d..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/getcfg.c +++ /dev/null @@ -1,84 +0,0 @@ -/* void Shm_Get_configuration( localnode, &shmcfg ) - * - * This routine initializes, if necessary, and returns a pointer - * to the Shared Memory Configuration Table for the HP PA-RISC - * simulator. - * - * INPUT PARAMETERS: - * localnode - local node number - * shmcfg - address of pointer to SHM Config Table - * - * OUTPUT PARAMETERS: - * *shmcfg - pointer to SHM Config Table - * - * NOTES: The MP interrupt used is the Runway bus' ability to directly - * address the control registers of up to four CPUs and cause - * interrupts on them. - * - * The following table illustrates the configuration limitations: - * - * BUS MAX - * MODE ENDIAN NODES - * ========= ====== ======= - * POLLED BIG 2+ - * INTERRUPT BIG 2..4 (on Runway) - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -#include "shm.h" - -#define INTERRUPT 0 /* can be interrupt or polling */ -#define POLLING 1 - -shm_config_table BSP_shm_cfgtbl; - -void Shm_Cause_interrupt_simhppa( - rtems_unsigned32 node -); - -void Shm_Get_configuration( - rtems_unsigned32 localnode, - shm_config_table **shmcfg -) -{ - BSP_shm_cfgtbl.base = (vol_u32 *) 0x44000000; - BSP_shm_cfgtbl.length = 16 * KILOBYTE; - BSP_shm_cfgtbl.format = SHM_BIG; - - BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt_simhppa; - -#ifdef NEUTRAL_BIG - BSP_shm_cfgtbl.convert = NULL_CONVERT; -#else - BSP_shm_cfgtbl.convert = CPU_swap_u32; -#endif - -#if ( POLLING == 1 ) - BSP_shm_cfgtbl.poll_intr = POLLED_MODE; - BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT; - BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT; - BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT; -#else - BSP_shm_cfgtbl.poll_intr = INTR_MODE; - BSP_shm_cfgtbl.Intr.address = - (vol_u32 *) (HPPA_RUNWAY_HPA( localnode - 1) + - HPPA_RUNWAY_REG_IO_EIR_OFFSET); - BSP_shm_cfgtbl.Intr.value = HPPA_INTERRUPT_EXTERNAL_MPCI; - BSP_shm_cfgtbl.Intr.length = LONG; -#endif - - *shmcfg = &BSP_shm_cfgtbl; -} - diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/intr.c b/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/intr.c deleted file mode 100644 index 6af0c6ace6..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/intr.c +++ /dev/null @@ -1,64 +0,0 @@ -/* void Shm_Cause_interrupt_simhppa( node ) - * - * This routine is the shared memory driver routine which - * generates interrupts to other CPUs. - * - * Input parameters: - * node - destination of this packet (0 = broadcast) - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "stdio.h" - -#include -#include "shm.h" - -void Shm_Cause_interrupt_simhppa( - rtems_unsigned32 node -) -{ - Shm_Interrupt_information *intr; - rtems_unsigned8 *u8; - rtems_unsigned16 *u16; - rtems_unsigned32 *u32; - rtems_unsigned32 value; - - intr = &Shm_Interrupt_table[node]; - value = intr->value; - - switch ( intr->length ) { - case NO_INTERRUPT: - break; - case BYTE: - u8 = (rtems_unsigned8 *)intr->address; - fprintf( - stderr, - "Shm_Cause_interrupt_simhppa: Writes of unsigned8 not supported!!!\n" - ); - rtems_shutdown_executive( 0 ); - break; - case WORD: - u16 = (rtems_unsigned16 *)intr->address; - fprintf( - stderr, - "Shm_Cause_interrupt_simhppa: Writes of unsigned8 not supported!!!\n" - ); - rtems_shutdown_executive( 0 ); - break; - case LONG: - u32 = (rtems_unsigned32 *)intr->address; - HPPA_ASM_STWAS( value, 0, u32 ); - break; - } -} diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/lock.c b/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/lock.c deleted file mode 100644 index 724758b8b8..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/lock.c +++ /dev/null @@ -1,75 +0,0 @@ -/* Shared Memory Lock Routines - * - * This shared memory locked queue support routine need to be - * able to lock the specified locked queue. Interrupts are - * disabled while the queue is locked to prevent preemption - * and deadlock when two tasks poll for the same lock. - * previous level. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -/* - * Shm_Initialize_lock - * - * Initialize the lock for the specified locked queue. - */ - -void Shm_Initialize_lock( - Shm_Locked_queue_Control *lq_cb -) -{ - lq_cb->lock = LQ_UNLOCKED; -} - -/* Shm_Lock( &lq_cb ) - * - * This shared memory locked queue support routine locks the - * specified locked queue. It disables interrupts to prevent - * a deadlock condition. - */ - -void Shm_Lock( - Shm_Locked_queue_Control *lq_cb -) -{ - rtems_unsigned32 isr_level; - vol_u32 *lockptr = &lq_cb->lock; - rtems_unsigned32 lock_value; - - rtems_interrupt_disable( isr_level ); - - Shm_isrstat = isr_level; - - do { - HPPA_ASM_LDCWS( 0, 0, lockptr, lock_value ); - } while (lock_value == SHM_LOCK_VALUE); -} - -/* - * Shm_Unlock - * - * Unlock the lock for the specified locked queue. - */ - -void Shm_Unlock( - Shm_Locked_queue_Control *lq_cb -) -{ - rtems_unsigned32 isr_level; - - lq_cb->lock = SHM_UNLOCK_VALUE; - isr_level = Shm_isrstat; - rtems_interrupt_enable( isr_level ); -} diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/mpisr.c b/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/mpisr.c deleted file mode 100644 index 29e897d781..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/mpisr.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Shm_setvec - * - * This driver routine sets the SHM interrupt vector to point to the - * driver's SHM interrupt service routine. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -void Shm_setvec( void ) -{ - set_vector( Shm_isr, HPPA_INTERRUPT_EXTERNAL_MPCI, 1 ); -} diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/startup/bspclean.c b/c/src/lib/libbsp/hppa1.1/simhppa/startup/bspclean.c deleted file mode 100644 index fe2aa75fc4..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/startup/bspclean.c +++ /dev/null @@ -1,36 +0,0 @@ -/* bsp_cleanup() - * - * This routine normally is part of start.s and returns - * control to a monitor but on the HP PA-RISC simulator - * we do that directly from main.c. - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -/* - * The app has "exited" (called rtems_shutdown_executive) - */ - -void bsp_cleanup( void ) -{ - /* - * Invoke any fatal error extension and "halt" - * By definition, rtems_fatal_error_occurred does not return. - */ - - rtems_fatal_error_occurred(0); -} diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/startup/bspstart.c b/c/src/lib/libbsp/hppa1.1/simhppa/startup/bspstart.c deleted file mode 100644 index 765e60c62c..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/startup/bspstart.c +++ /dev/null @@ -1,387 +0,0 @@ -/* - * @(#)bspstart.c 1.13 - 95/04/25 - * - */ - -/* bsp_start() - * - * This routine starts the application. It includes application, - * board, and monitor specific initialization and configuration. - * The generic CPU dependent initialization has been performed - * before this routine is invoked. - * - * Called by RTEMS::RTEMS constructor in startup-ctor.cc - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -#include - -#ifdef STACK_CHECKER_ON -#include -#endif - -extern rtems_configuration_table Configuration; - -rtems_configuration_table BSP_Configuration; -rtems_cpu_table Cpu_table; -rtems_unsigned32 bsp_isr_level; - -#define WORKSPACE_SIZE (1024 * 1024) -rtems_unsigned8 MY_WORK_SPACE[ WORKSPACE_SIZE ]; - -/* - * Amount to increment itimer by each pass - * It is a variable instead of a #define to allow the 'looptest' - * script to bump it without recompiling rtems - */ - -rtems_unsigned32 CPU_HPPA_CLICKS_PER_TICK; - -#if SIMHPPA_FAST_IDLE - -/* - * Many of the tests are very slow on the simulator because they have - * have 5 second delays hardwired in. - * Try to speed those tests up by speeding up the clock when in idle - */ - -rtems_extension -fast_idle_switch_hook(rtems_tcb *current_task, - rtems_tcb *heir_task) -{ - static rtems_unsigned32 normal_clock = ~0; - static rtems_unsigned32 fast_clock; - - /* init our params on first call */ - if (normal_clock == ~0) - { - normal_clock = CPU_HPPA_CLICKS_PER_TICK; - fast_clock = CPU_HPPA_CLICKS_PER_TICK / 0x100; - if (fast_clock == 0) /* who? me? pathological? never! */ - fast_clock++; - } - - /* - * Checking for 'name' field of 'IDLE' is not the best/safest, - * but its the best we could think of at the moment. - */ - - if (heir_task->name == rtems_build_name('I', 'D', 'L', 'E')) - CPU_HPPA_CLICKS_PER_TICK = fast_clock; - else if (current_task->name == rtems_build_name('I', 'D', 'L', 'E')) - CPU_HPPA_CLICKS_PER_TICK = normal_clock; -} - -#endif - -/* - * Function: bsp_libc_init - * Created: 94/12/6 - * - * Description: - * Initialize whatever libc we are using - * called from bsp_postdriver_hook - * - * - * Parameters: - * none - * - * Returns: - * none. - * - * Side Effects: - * - * - * Notes: - * - * Deficiencies/ToDo: - * - * - */ - -void -bsp_libc_init(void) -{ - extern int end; - rtems_unsigned32 heap_start; - - heap_start = (rtems_unsigned32) &end; - if (heap_start & (CPU_ALIGNMENT-1)) - heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - - RTEMS_Malloc_Initialize((void *) heap_start, 64 * 1024, 0); - - /* - * Set up for the libc handling. - */ - - if (BSP_Configuration.ticks_per_timeslice > 0) - libc_init(1); /* reentrant if possible */ - else - libc_init(0); /* non-reentrant */ - - /* - * on MP systems, always use the print buffer - * instead of the (broken) system calls - */ - - if (BSP_Configuration.User_multiprocessing_table) - use_print_buffer = 1; - -#ifdef SIMHPPA_ROM - use_print_buffer = 1; -#endif -} - - -/* - * Function: bsp_pretasking_hook - * Created: 95/03/10 - * - * Description: - * BSP pretasking hook. Called just before drivers are initialized. - * Used to setup libc and install any BSP extensions. - * - * Parameters: - * none - * - * Returns: - * nada - * - * Side Effects: - * installs a few extensions - * - * Notes: - * Must not use libc (to do io) from here, since drivers are - * not yet initialized. - * - * Deficiencies/ToDo: - * - * - */ - -void -bsp_pretasking_hook(void) -{ - bsp_libc_init(); - -#if SIMHPPA_FAST_IDLE - /* - * Install the fast idle task switch extension - * - * on MP systems, might now want to do this; it confuses at least - * one test (mp06) - */ - -#if 0 - if (BSP_Configuration.User_multiprocessing_table == 0) -#endif - { - rtems_extensions_table fast_idle_extension; - rtems_id extension_id; - rtems_status_code rc; - - memset(&fast_idle_extension, 0, sizeof(fast_idle_extension)); - - fast_idle_extension.task_switch = fast_idle_switch_hook; - - rc = rtems_extension_create(rtems_build_name('F', 'D', 'L', 'E'), - &fast_idle_extension, &extension_id); - if (rc != RTEMS_SUCCESSFUL) - rtems_fatal_error_occurred(rc); - } -#endif - - -#ifdef STACK_CHECKER_ON - /* - * Initialize the stack bounds checker - * We can either turn it on here or from the app. - */ - - Stack_check_Initialize(); -#endif -} - -/* - * Function: bsp_start - * Created: 94/12/6 - * - * Description: - * called by crt0 as our "main" equivalent - * - * - * - * Parameters: - * - * - * Returns: - * - * - * Side Effects: - * - * - * Notes: - * - * - * Deficiencies/ToDo: - * - * - */ - - -void -bsp_start(void) -{ - /* - * Set cpu_number to accurately reflect our cpu number - */ - -#ifdef hppa7200 - /* - * Use DR0 if supported - */ - { - int dr0; - HPPA_ASM_MFCPU(DR0, dr0); - cpu_number = (dr0 >> 4) & 0x7; - } -#else - if (Configuration.User_multiprocessing_table) - cpu_number = Configuration.User_multiprocessing_table->node - 1; - else - cpu_number = 0; -#endif - - /* - * Copy the table - */ - - BSP_Configuration = Configuration; - - BSP_Configuration.work_space_start = (void *)MY_WORK_SPACE; - if (BSP_Configuration.work_space_size) - BSP_Configuration.work_space_size = WORKSPACE_SIZE; - - /* - * Set up our hooks - * Make sure libc_init is done before drivers init'd so that - * they can use atexit() - */ - - Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ - - Cpu_table.predriver_hook = NULL; - - Cpu_table.postdriver_hook = NULL; - - Cpu_table.idle_task = NULL; /* do not override system IDLE task */ - - /* - * Don't zero out the workspace. The simulator did it for us. - */ - - Cpu_table.do_zero_of_workspace = FALSE; - - Cpu_table.interrupt_stack_size = (12 * 1024); - - Cpu_table.extra_system_initialization_stack = 0; - - /* - * Set this artificially low for the simulator - */ - - Cpu_table.itimer_clicks_per_microsecond = 1; - - /* - * Determine the external interrupt processing order - * the external interrupt handler walks thru this table, in - * order checking for posted interrupts. - */ - - Cpu_table.external_interrupts = 0; - - Cpu_table.external_interrupt[ Cpu_table.external_interrupts ] = - HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER - HPPA_INTERRUPT_EXTERNAL_BASE; - Cpu_table.external_interrupts++; - - if ( Configuration.User_multiprocessing_table ) { - Cpu_table.external_interrupt[ Cpu_table.external_interrupts ] = - HPPA_INTERRUPT_EXTERNAL_10 - HPPA_INTERRUPT_EXTERNAL_BASE; - Cpu_table.external_interrupts++; - } - - /* - * Add 1 region for RTEMS Malloc - */ - - BSP_Configuration.maximum_regions++; - -#ifdef RTEMS_NEWLIB - /* - * Add 1 extension for newlib libc - */ - - BSP_Configuration.maximum_extensions++; -#endif - -#ifdef STACK_CHECKER_ON - /* - * Add 1 extension for stack checker - */ - - BSP_Configuration.maximum_extensions++; -#endif - -#if SIMHPPA_FAST_IDLE - /* - * Add 1 extension for fast idle - */ - - BSP_Configuration.maximum_extensions++; -#endif - - /* - * Add 1 extension for MPCI_fatal - */ - - if (BSP_Configuration.User_multiprocessing_table) - BSP_Configuration.maximum_extensions++; - - /* - * Set the "clicks per tick" for the simulator - * used by libcpu/hppa/clock/clock.c to schedule interrupts - * - * Set it only if 0 to allow for simulator setting it via script - * on test startup. - */ - - if (CPU_HPPA_CLICKS_PER_TICK == 0) - CPU_HPPA_CLICKS_PER_TICK = 0x4000; - - /* - * Start most of RTEMS - * main() will start the rest - */ - - bsp_isr_level = rtems_initialize_executive_early( - &BSP_Configuration, - &Cpu_table - ); -} diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/startup/setvec.c b/c/src/lib/libbsp/hppa1.1/simhppa/startup/setvec.c deleted file mode 100644 index 4597e8f088..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/startup/setvec.c +++ /dev/null @@ -1,66 +0,0 @@ -/* set_vector - * - * This routine installs an interrupt vector on the HP PA-RISC simulator. - * - * INPUT: - * handler - interrupt handler entry point - * vector - vector number - * type - 0 indicates raw hardware connect - * 1 indicates RTEMS interrupt connect - * - * NOTE 'type' is ignored on hppa; all interrupts are owned by RTEMS - * - * RETURNS: - * address of previous interrupt handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -/* - * Install an interrupt handler in the right place - * given its vector number from cpu/hppa.h - * There are 2 places an interrupt can be installed - * _ISR_Vector_table - * bsp interrupt XXX: nyi - * - * We decide which based on the vector number - */ - -rtems_isr_entry -set_vector( /* returns old vector */ - rtems_isr_entry handler, /* isr routine */ - rtems_vector_number vector, /* vector number */ - int type /* RTEMS or RAW intr */ -) -{ - rtems_isr_entry previous_isr; - - /* is it an on chip interrupt? */ - /* XXX this should say CPU_INTERRUPT_NUMBER_OF_VECTORS */ - if (vector < HPPA_INTERRUPT_MAX) - { - rtems_interrupt_catch(handler, vector, &previous_isr); - } -#if 0 /* XXX */ - else if ((vector >= HPPA_INTERRUPT_BSP_BASE) && - (vector < (HPPA_INTERRUPT_BSP_BASE + HPPA_BSP_INTERRUPTS))) - { - simhppa_interrupt_install(handler, - vector - HPPA_INTERRUPT_BSP_BASE, - (rtems_isr_entry *) &previous_isr); - } -#endif - - return previous_isr; -} - diff --git a/c/src/lib/libbsp/hppa1.1/simhppa/tools/print_dump.c b/c/src/lib/libbsp/hppa1.1/simhppa/tools/print_dump.c deleted file mode 100644 index 8b4313166a..0000000000 --- a/c/src/lib/libbsp/hppa1.1/simhppa/tools/print_dump.c +++ /dev/null @@ -1,332 +0,0 @@ -/* - * print_dump - * - * $Id$ - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - */ - -#define GETOPTARGS "v" - -char *USAGE = "\ -usage: print_dump [ -v ] \n\ - -v -- verbose\n\ - Reads HP simulator 'memdump' output of 'print_buffer' structure - on stdin. Dumps it out in vanilla ASCII. -"; - -#include -#include -#include -#include -#include -#include -#include -#include - -#define Failed(x) (((int) (x)) == -1) -#define TRUE 1 -#define FALSE 0 -#define STREQ(a,b) (strcmp(a,b) == 0) -#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0])) - -/* - * Definitions for unsigned "ints"; especially for use in data structures - * that will be shared among (potentially) different cpu's (we punt on - * byte ordering problems tho) - */ - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned int u32; - -typedef union uval { - u8 uv_chars[4]; - u16 uv_words[2]; - u32 uv_long; - void *uv_ptr[sizeof(long) / sizeof(void *)]; -} uval_t; - - -/* - * vars controlled by command line options - */ - -int verbose = FALSE; /* be verbose */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind, opterr; -extern int errno; - -char *progname; /* for error() */ - -void error(int errn, ...); - -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* error is fatal; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* error is fatal; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -int process(void); -void prchar(unsigned int ch); - - -int -main(int argc, char **argv, char **env) -{ - register int c; - int showusage = FALSE; /* usage error? */ - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - opterr = 0; /* we'll report all errors */ - while ((c = getopt(argc, argv, GETOPTARGS)) != EOF) - switch (c) - { - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - return process(); -} - - -/* - * process(arg) - * - * Input looks like this - * - * Starting address: 00000001.480035a0 - * ----------------------------------- - -+0000 / 0d0a0d0a 2a2a2a20 53454d20 54455354 202d2d20 4e4f4445 2032202a 2a2a0d0a -+0020 / 73703a20 30783433 30303030 31300d0a 30783438 30613161 38383a20 676f7420 - .... -+0b40 / xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx - - * - * The 'xxxxxxxxx' shows up if the page has not been allocated. - */ - -int -process(void) -{ - uval_t b[8]; - u32 ignore; - char *p; - int i; - int failed_once; - - char line[1024]; - -#define PRINT_BUFFER_SIZE (16 * 1024) - struct { - int index; - int size; - u8 buffer[PRINT_BUFFER_SIZE]; - } print_buffer; - - /* we stuff the data into print_buffer using memcpy() */ - p = (char *) &print_buffer; - - failed_once = 0; - - while (gets(line)) - { - char *cp; - - /* hack; deal with the 'xxxxxxxx' problem noted above */ - for (cp=line; *cp; cp++) - if (*cp == 'x') - *cp = '0'; - - if (*line != '+') - continue; - if (sscanf(line, "+%x / %x %x %x %x %x %x %x %x\n", - &ignore, - &b[0].uv_long, - &b[1].uv_long, - &b[2].uv_long, - &b[3].uv_long, - &b[4].uv_long, - &b[5].uv_long, - &b[6].uv_long, - &b[7].uv_long) != 9) - { - if (failed_once) - error(ERR_FATAL, "2nd format problem; giving up"); - error(0, "format problem in line: `%s`", line); - failed_once = 1; - } - - memcpy((void *) p, (void *) b, sizeof(b)); - p += sizeof(b); - } - - if (verbose) - printf("buffer size: %d\n", print_buffer.size); - - if (print_buffer.size < 0) - error(ERR_FATAL, "size is too small"); - - if (print_buffer.size != sizeof(print_buffer.buffer)) - { - error(ERR_FATAL, "buffer size mismatch, expected %d", - sizeof(print_buffer.buffer)); - /* XXX we really should just dynamically allocate the buffer */ - } - - i = print_buffer.index + 1; - while (i != print_buffer.index) - { - unsigned int c; - c = print_buffer.buffer[i++]; - if (c && (c != '\r')) - prchar(c); - i %= print_buffer.size; - } - printf("\n"); - return 0; -} - -/* de-controlify */ -char *de_control[] = { - "^@", "^A", "^B", "^C", "^D", "^E", "^F", "^G", "^H", "^I", "^J", "^K", - "^L", "^M", "^N", "^O", "^P", "^Q", "^R", "^S", "^T", "^U", "^V", "^W", - "^X", "^Y", "^Z", "^[", "^\\", "^]", "^~", "^_", - " ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", - ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", - "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", - "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", - "X", "Y", "Z", "[", "\\", "]", "^", "_", "`", "a", "b", "c", "d", "e", - "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", - "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "^?", - "M-^@", "M-^A", "M-^B", "M-^C", "M-^D", "M-^E", "M-^F", "M-^G", - "M-^H", "M-^I", "M-^J", "M-^K", "M-^L", "M-^M", "M-^N", "M-^O", - "M-^P", "M-^Q", "M-^R", "M-^S", "M-^T", "M-^U", "M-^V", "M-^W", - "M-^X", "M-^Y", "M-^Z", "M-^[", "M-^\\", "M-^]", "M-^~", "M-^_", - "M- ", "M-!", "M-\"", "M-#", "M-$", "M-%", "M-&", "M-'", - "M-(", "M-)", "M-*", "M-+", "M-,", "M--", "M-.", "M-/", - "M-0", "M-1", "M-2", "M-3", "M-4", "M-5", "M-6", "M-7", - "M-8", "M-9", "M-:", "M-;", "M-<", "M-=", "M->", "M-?", - "M-@", "M-A", "M-B", "M-C", "M-D", "M-E", "M-F", "M-G", - "M-H", "M-I", "M-J", "M-K", "M-L", "M-M", "M-N", "M-O", - "M-P", "M-Q", "M-R", "M-S", "M-T", "M-U", "M-V", "M-W", - "M-X", "M-Y", "M-Z", "M-[", "M-\\", "M-]", "M-^", "M-_", - "M-`", "M-a", "M-b", "M-c", "M-d", "M-e", "M-f", "M-g", - "M-h", "M-i", "M-j", "M-k", "M-l", "M-m", "M-n", "M-o", - "M-p", "M-q", "M-r", "M-s", "M-t", "M-u", "M-v", "M-w", - "M-x", "M-y", "M-z", "M-{", "M-|", "M-}", "M-~", "M-^?" -}; - -/* - * prchar(ch); print ch in a readable format, ie ^X or X or ~^X or DEL, etc. - */ - -void -prchar(unsigned int ch) -{ - if (isprint(ch) || isspace(ch)) - putchar(ch); - else - printf("%s", de_control[ch]); -} - - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_EXIT bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - diff --git a/c/src/lib/libbsp/i386/force386/clock/ckinit.c b/c/src/lib/libbsp/i386/force386/clock/ckinit.c deleted file mode 100644 index 45400dbd49..0000000000 --- a/c/src/lib/libbsp/i386/force386/clock/ckinit.c +++ /dev/null @@ -1,75 +0,0 @@ -/* Clock_initialize - * - * This routine initializes the Motorola MFP 68901 on the - * FORCE CPU386 board. The tick frequency is 1 millisecond. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -volatile rtems_unsigned32 Clock_driver_ticks; -rtems_unsigned32 Clock_isrs; /* ISRs until next tick */ -rtems_isr_entry Old_ticker; - -rtems_device_driver Clock_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - Install_clock( Clock_isr ); -} - -void ReInstall_clock( - rtems_isr_entry clock_isr -) -{ - rtems_unsigned32 isrlevel = 0; - - rtems_interrupt_disable( isrlevel ); - (void) set_vector( clock_isr, 0x38, 1 ); - rtems_interrupt_enable( isrlevel ); -} - -void Install_clock( - rtems_isr_entry clock_isr -) -{ - Clock_driver_ticks = 0; - Clock_isrs = BSP_Configuration.microseconds_per_tick / 1000; - - if ( BSP_Configuration.ticks_per_timeslice ) { - Old_ticker = ( rtems_isr_entry ) set_vector( clock_isr, 0x38, 1 ); - outport_byte( TBCR, 0x14 ); /* reset it, delay mode, 50X */ - outport_byte( TBDR, 0x50 ); /* 1 millisecond */ - outport_byte( IERA, 0x41 ); /* enable interrupt for B */ - } - atexit( Clock_exit ); -} - -void Clock_exit( void ) -{ - if ( BSP_Configuration.ticks_per_timeslice ) { - outport_byte( TBCR, 0x00 ); /* initial value */ - outport_byte( IERA, 0x40 ); /* disable interrupt */ - /* ??? Is "do not restore old vector" causing problems? */ - } -} - diff --git a/c/src/lib/libbsp/i386/force386/console/console.c b/c/src/lib/libbsp/i386/force386/console/console.c deleted file mode 100644 index f1f019c487..0000000000 --- a/c/src/lib/libbsp/i386/force386/console/console.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * This file contains the Force CPU386 console IO package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#define F386_INIT - -#include - -#include -#include "console.h" -#include "bsp.h" - -/* console_cleanup - * - * This routine is called at exit to clean up the console hardware. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -void console_cleanup( void ) -{ - register rtems_unsigned8 ignored; - /* - * FORCE technical support mentioned that it may be necessary to - * read the DUSCC RX_BUFFER port four times to remove all junk. - * This code is a little more paranoid. - */ - - inport_byte( RX_BUFFER, ignored ); - inport_byte( RX_BUFFER, ignored ); - inport_byte( RX_BUFFER, ignored ); - inport_byte( RX_BUFFER, ignored ); - inport_byte( RX_BUFFER, ignored ); -} - -/* console_initialize - * - * This routine initializes the console IO driver. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_device_driver console_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg, - rtems_id self, - rtems_unsigned32 *status -) -{ - /* - * flush the console now and at exit. Just in case. - */ - - console_cleanup(); - - atexit( console_cleanup ); -} - - -/* is_character_ready - * - * This routine returns TRUE if a character is available. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_boolean is_character_ready( - char *ch -) -{ - register rtems_unsigned8 status; - - inport_byte( RX_STATUS, status ); - - if ( Is_rx_ready( status ) ) { - inport_byte( RX_BUFFER, status ); - *ch = status; - return TRUE; - } - return FALSE; -} - -/* inbyte - * - * This routine reads a character from the UART. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - * character read from UART - */ - -char inbyte( void ) -{ - register rtems_unsigned8 status; - char ch; - - do { - inport_byte( RX_STATUS, status ); - } while ( !Is_rx_ready( status ) ); - -#if ( PORTB == 1 ) - /* - * Force example code resets the Channel B Receiver here. - * It appears to cause XON's to be lost. - */ - - /* outport_byte( RX_STATUS, 0x10 ); */ -#endif - - inport_byte( RX_BUFFER, ch ); - - return ch; -} - -/* outbyte - * - * This routine transmits a character out the port. It supports - * XON/XOFF flow control. - * - * Input parameters: - * ch - character to be transmitted - * - * Output parameters: NONE - */ - -void outbyte( - char ch -) -{ - rtems_unsigned8 status; - - do { - inport_byte( TX_STATUS, status ); - } while ( !Is_tx_ready( status ) ); - -#if 0 - while ( is_character_ready( &status ) == TRUE ) { /* must be an XOFF */ - if ( status == XOFF ) - do { - while ( is_character_ready( &status ) == FALSE ) ; - } while ( status != XON ); - } -#endif - - outport_byte( TX_BUFFER, ch ); -} - -/* - * __read -- read bytes from the serial port. Ignore fd, since - * we only have stdin. - */ - -int __read( - int fd, - char *buf, - int nbytes -) -{ - int i = 0; - - for (i = 0; i < nbytes; i++) { - *(buf + i) = inbyte(); - if ((*(buf + i) == '\n') || (*(buf + i) == '\r')) { - (*(buf + i++)) = '\n'; - (*(buf + i)) = 0; - break; - } - } - return (i); -} - -/* - * __write -- write bytes to the serial port. Ignore fd, since - * stdout and stderr are the same. Since we have no filesystem, - * open will only return an error. - */ - -int __write( - int fd, - char *buf, - int nbytes -) -{ - int i; - - for (i = 0; i < nbytes; i++) { - if (*(buf + i) == '\n') { - outbyte ('\r'); - } - outbyte (*(buf + i)); - } - return (nbytes); -} diff --git a/c/src/lib/libbsp/i386/force386/include/bsp.h b/c/src/lib/libbsp/i386/force386/include/bsp.h deleted file mode 100644 index b9b050b3c6..0000000000 --- a/c/src/lib/libbsp/i386/force386/include/bsp.h +++ /dev/null @@ -1,156 +0,0 @@ -/* bsp.h - * - * This include file definitions related to the Force CPU-386 board. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __FORCE386_h -#define __FORCE386_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * Define the time limits for RTEMS Test Suite test durations. - * Long test and short test duration limits are provided. These - * values are in seconds and need to be converted to ticks for the - * application. - * - */ - -#define MAX_LONG_TEST_DURATION 300 /* 5 minutes = 300 seconds */ -#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */ - -/* - * Define the interrupt mechanism for Time Test 27 - * - * NOTE: Use a software interrupt for the i386. - */ - -#define MUST_WAIT_FOR_INTERRUTPT 0 - -#define Install_tm27_vector( handler ) set_vector( (handler), 0x90, 1 ) - -#define Cause_tm27_intr() asm volatile( "int $0x90" : : ); - -#define Clear_tm27_intr() - -#define Lower_tm27_intr() - -/* - * Simple spin delay in microsecond units for device drivers. - * This is very dependent on the clock speed of the target. - */ - -#define delay( _microseconds ) \ - { \ - rtems_unsigned32 _counter; \ - \ - _counter = (_microseconds); \ - \ - asm volatile ( "0: nop;" \ - " mov %0,%0 ;" \ - " loop 0b" : "=c" (_counter) \ - : "0" (_counter) \ - ); \ - \ - } - -/* Constants */ - -#define RAM_START 0 -#define RAM_END 0x100000 - -/* I/O addressing */ - -/* - * The following determines whether Port B or the Console should - * be used for test I/O. Setting ONE (and only ONE) of these to 1 - * enables I/O on that port. - * - * PORT A - DUSCC MC68562 Channel A - * PORT B - DUSCC MC68562 Channel B - * PORT C - MFP MC68901 Channel (*** FORCEbug console ***) - */ - -#define PORTB 1 /* use port b as test port */ -#define PORTC 0 /* use console port as test port */ - -#if ( PORTB == 1 ) -#define TX_STATUS 0x1b6 /* DUSCC General Status Register */ -#define RX_STATUS 0x1b6 /* DUSCC General Status Register */ -#define TX_BUFFER 0x1e0 /* DUSCC Transmitter Channel B */ -#define RX_BUFFER 0x1e8 /* DUSCC Receiver Channel B */ -#define Is_tx_ready( _status ) ( (_status) & 0x20 ) -#define Is_rx_ready( _status ) ( (_status) & 0x10 ) -#endif - -#if ( PORTC == 1 ) -#define TX_STATUS 0x12c /* MFP Transmit Status Register */ -#define RX_STATUS 0x12a /* MFP Receive Status Register */ -#define TX_BUFFER 0x12e /* MFP Transmitter Channel */ -#define RX_BUFFER 0x12e /* MFP Receiver Channel */ -#define Is_tx_ready( _status ) ( (_status) & 0x80 ) -#define Is_rx_ready( _status ) ( (_status) & 0x80 ) -#endif - -/* Timer constants */ - -#define IERA 0x106 /* Interrupt Enable Register A */ -#define IMRA 0x112 /* Interrupt Mask Register A */ -#define TACR 0x118 /* Timer A Control Register */ -#define TADR 0x11e /* Timer A Data Register */ - -#define IERB 0x108 /* Interrupt Enable Register B */ -#define TBCR 0x11a /* Timer B Control Register */ -#define TBDR 0x120 /* Timer B Data Register */ - -/* Structures */ - -#ifdef F386_INIT -#undef BSP_EXTERN -#define BSP_EXTERN -#else -#undef BSP_EXTERN -#define BSP_EXTERN extern -#endif - -/* miscellaneous stuff assumed to exist */ - -extern rtems_configuration_table BSP_Configuration; - -extern i386_IDT_slot Interrupt_descriptor_table[ 256 ]; -extern i386_GDT_slot Global_descriptor_table[ 8192 ]; - -BSP_EXTERN unsigned short Idt[3]; /* Interrupt Descriptor Table Address */ -BSP_EXTERN unsigned short Gdt[3]; /* Global Descriptor Table Address */ -BSP_EXTERN unsigned int Idt_base; -BSP_EXTERN unsigned int Gdt_base; - -/* routines */ - -i386_isr set_vector( - rtems_isr_entry handler, - rtems_vector_number vector, - int type -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/i386/force386/include/coverhd.h b/c/src/lib/libbsp/i386/force386/include/coverhd.h deleted file mode 100644 index 7ec7cb2ebc..0000000000 --- a/c/src/lib/libbsp/i386/force386/include/coverhd.h +++ /dev/null @@ -1,104 +0,0 @@ -/* coverhd.h - * - * This include file has defines to represent the overhead associated - * with calling a particular directive from C on this target. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __COVERHD_h -#define __COVERHD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 3 -#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 3 -#define CALLING_OVERHEAD_TASK_CREATE 4 -#define CALLING_OVERHEAD_TASK_IDENT 4 -#define CALLING_OVERHEAD_TASK_START 4 -#define CALLING_OVERHEAD_TASK_RESTART 3 -#define CALLING_OVERHEAD_TASK_DELETE 3 -#define CALLING_OVERHEAD_TASK_SUSPEND 3 -#define CALLING_OVERHEAD_TASK_RESUME 3 -#define CALLING_OVERHEAD_TASK_SET_PRIORITY 4 -#define CALLING_OVERHEAD_TASK_MODE 4 -#define CALLING_OVERHEAD_TASK_GET_NOTE 4 -#define CALLING_OVERHEAD_TASK_SET_NOTE 4 -#define CALLING_OVERHEAD_TASK_WAKE_WHEN 7 -#define CALLING_OVERHEAD_TASK_WAKE_AFTER 3 -#define CALLING_OVERHEAD_INTERRUPT_CATCH 4 -#define CALLING_OVERHEAD_CLOCK_GET 7 -#define CALLING_OVERHEAD_CLOCK_SET 7 -#define CALLING_OVERHEAD_CLOCK_TICK 2 - -#define CALLING_OVERHEAD_TIMER_CREATE 3 -#define CALLING_OVERHEAD_TIMER_IDENT 3 -#define CALLING_OVERHEAD_TIMER_DELETE 3 -#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 4 -#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 8 -#define CALLING_OVERHEAD_TIMER_RESET 3 -#define CALLING_OVERHEAD_TIMER_CANCEL 3 -#define CALLING_OVERHEAD_SEMAPHORE_CREATE 4 -#define CALLING_OVERHEAD_SEMAPHORE_DELETE 3 -#define CALLING_OVERHEAD_SEMAPHORE_IDENT 4 -#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 4 -#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 3 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 4 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 4 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 3 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 3 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 3 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 4 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 4 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 3 - -#define CALLING_OVERHEAD_EVENT_SEND 4 -#define CALLING_OVERHEAD_EVENT_RECEIVE 4 -#define CALLING_OVERHEAD_SIGNAL_CATCH 3 -#define CALLING_OVERHEAD_SIGNAL_SEND 3 -#define CALLING_OVERHEAD_PARTITION_CREATE 4 -#define CALLING_OVERHEAD_PARTITION_IDENT 4 -#define CALLING_OVERHEAD_PARTITION_DELETE 3 -#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 4 -#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 4 -#define CALLING_OVERHEAD_REGION_CREATE 4 -#define CALLING_OVERHEAD_REGION_IDENT 3 -#define CALLING_OVERHEAD_REGION_DELETE 3 -#define CALLING_OVERHEAD_REGION_GET_SEGMENT 4 -#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 4 -#define CALLING_OVERHEAD_PORT_CREATE 4 -#define CALLING_OVERHEAD_PORT_IDENT 3 -#define CALLING_OVERHEAD_PORT_DELETE 3 -#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 4 -#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 4 - -#define CALLING_OVERHEAD_IO_INITIALIZE 4 -#define CALLING_OVERHEAD_IO_OPEN 4 -#define CALLING_OVERHEAD_IO_CLOSE 4 -#define CALLING_OVERHEAD_IO_READ 4 -#define CALLING_OVERHEAD_IO_WRITE 4 -#define CALLING_OVERHEAD_IO_CONTROL 4 -#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 3 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 3 -#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 3 -#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 3 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 3 -#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 3 -#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 2 - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/i386/force386/shmsupp/addrconv.c b/c/src/lib/libbsp/i386/force386/shmsupp/addrconv.c deleted file mode 100644 index 49d27200a0..0000000000 --- a/c/src/lib/libbsp/i386/force386/shmsupp/addrconv.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Shm_Convert_address - * - * The CPU386 has a "normal" view of the VME address space. - * No address range conversion is required. - * - * Input parameters: - * address - address to convert - * - * Output parameters: - * returns - converted address - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -void *Shm_Convert_address( - void *address -) -{ - return ( address ); -} diff --git a/c/src/lib/libbsp/i386/force386/shmsupp/getcfg.c b/c/src/lib/libbsp/i386/force386/shmsupp/getcfg.c deleted file mode 100644 index 8a05cdf641..0000000000 --- a/c/src/lib/libbsp/i386/force386/shmsupp/getcfg.c +++ /dev/null @@ -1,73 +0,0 @@ -/* void Shm_Get_configuration( localnode, &shmcfg ) - * - * This routine initializes, if necessary, and returns a pointer - * to the Shared Memory Configuration Table for the FORCE CPU-386 - * - * INPUT PARAMETERS: - * localnode - local node number - * shmcfg - address of pointer to SHM Config Table - * - * OUTPUT PARAMETERS: - * *shmcfg - pointer to SHM Config Table - * - * NOTES: The FORCE CPU-386 does not have an interprocessor interrupt. - * - * The following table illustrates the configuration limitations: - * - * BUS MAX - * MODE ENDIAN NODES - * ========= ====== ======= - * POLLED BIG 2+ - * INTERRUPT **** NOT SUPPORTED **** - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -#define INTERRUPT 0 -#define POLLING 1 /* FORCE CPU-386 target is polling ONLY!!! */ - - -shm_config_table BSP_shm_cfgtbl; - -void Shm_Get_configuration( - rtems_unsigned32 localnode, - shm_config_table **shmcfg -) -{ - set_segment( get_ds(), 0x00002000, 0xffffd000 ); - - BSP_shm_cfgtbl.base = i386_Physical_to_logical( - get_ds(), - (void *) 0x20000000 - ); - - BSP_shm_cfgtbl.length = 1 * MEGABYTE; - BSP_shm_cfgtbl.format = SHM_BIG; - - BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt; - -#ifdef NEUTRAL_BIG - BSP_shm_cfgtbl.convert = NULL_CONVERT; -#else - BSP_shm_cfgtbl.convert = CPU_swap_u32; -#endif - - BSP_shm_cfgtbl.poll_intr = POLLED_MODE; - BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT; - BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT; - BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT; - - *shmcfg = &BSP_shm_cfgtbl; -} diff --git a/c/src/lib/libbsp/i386/force386/shmsupp/lock.c b/c/src/lib/libbsp/i386/force386/shmsupp/lock.c deleted file mode 100644 index 7e1b7874d1..0000000000 --- a/c/src/lib/libbsp/i386/force386/shmsupp/lock.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Shared Memory Lock Routines - * - * This shared memory locked queue support routine need to be - * able to lock the specified locked queue. Interrupts are - * disabled while the queue is locked to prevent preemption - * and deadlock when two tasks poll for the same lock. - * previous level. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -/* - * Shm_Initialize_lock - * - * Initialize the lock for the specified locked queue. - */ - -void Shm_Initialize_lock( - Shm_Locked_queue_Control *lq_cb -) -{ - lq_cb->lock = LQ_UNLOCKED; -} - -/* void _Shm_Lock( &lq_cb ) - * - * This shared memory locked queue support routine locks the - * specified locked queue. It disables interrupts to prevent - * a deadlock condition. - */ - -void Shm_Lock( - Shm_Locked_queue_Control *lq_cb -) -{ - rtems_unsigned32 isr_level; - volatile rtems_unsigned32 *lockptr = &lq_cb->lock; - rtems_unsigned32 lock_value; - - lock_value = SHM_LOCK_VALUE; - rtems_interrupt_disable( isr_level ); - - Shm_isrstat = isr_level; - while ( 1 ) { - asm volatile( "lock ; xchg (%0),%1" - : "=r" (lockptr), "=r" (lock_value) - : "0" (lockptr), "1" (lock_value) - ); - if ( lock_value == SHM_UNLOCK_VALUE ) - break; - delay( 10 ); /* approximately 10 microseconds */ - } -} - -/* - * Shm_Unlock - * - * Unlock the lock for the specified locked queue. - */ - -void Shm_Unlock( - Shm_Locked_queue_Control *lq_cb -) -{ - rtems_unsigned32 isr_level; - - lq_cb->lock = SHM_UNLOCK_VALUE; - isr_level = Shm_isrstat; - rtems_interrupt_enable( isr_level ); -} - diff --git a/c/src/lib/libbsp/i386/force386/shmsupp/mpisr.c b/c/src/lib/libbsp/i386/force386/shmsupp/mpisr.c deleted file mode 100644 index dc6f8433e6..0000000000 --- a/c/src/lib/libbsp/i386/force386/shmsupp/mpisr.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Shm_setvec - * - * This driver routine sets the SHM interrupt vector to point to the - * driver's SHM interrupt service routine. - * - * NOTE: This routine is not used by the FORCE CPU-386 because it - * only supports polling mode. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -void Shm_setvec() -{ - /* NOT USED ON FORCE CPU-386!!! */ -} diff --git a/c/src/lib/libbsp/i386/force386/startup/bspstart.c b/c/src/lib/libbsp/i386/force386/startup/bspstart.c deleted file mode 100644 index 78def6375c..0000000000 --- a/c/src/lib/libbsp/i386/force386/startup/bspstart.c +++ /dev/null @@ -1,144 +0,0 @@ -/* bsp_start() - * - * This routine starts the application. It includes application, - * board, and monitor specific initialization and configuration. - * The generic CPU dependent initialization has been performed - * before this routine is invoked. - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -#include - -/* - * The original table from the application and our copy of it with - * some changes. - */ - -extern rtems_configuration_table Configuration; -rtems_configuration_table BSP_Configuration; - -rtems_cpu_table Cpu_table; - -/* Initialize whatever libc we are using - * called from postdriver hook - */ - -void bsp_libc_init() -{ - extern int end; - rtems_unsigned32 heap_start; - - heap_start = (rtems_unsigned32) &end; - if (heap_start & (CPU_ALIGNMENT-1)) - heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - - RTEMS_Malloc_Initialize((void *) heap_start, 64 * 1024, 0); - - /* - * Set up for the libc handling. - */ - - if (BSP_Configuration.ticks_per_timeslice > 0) - libc_init(1); /* reentrant if possible */ - else - libc_init(0); /* non-reentrant */ - - /* - * Initialize the stack bounds checker - */ - -#ifdef STACK_CHECKER_ON - Stack_check_Initialize(); -#endif - -} - -int bsp_start( - int argc, - char **argv, - char **environp -) -{ - /* - * FORCE documentation incorrectly states that the bus request - * level is initialized to 3. It is actually initialized by - * FORCEbug to 0. - */ - - outport_byte( 0x00, 0x3f ); /* resets VMEbus request level */ - - /* - * we do not use the pretasking_hook. - */ - - Cpu_table.pretasking_hook = NULL; - - Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */ - - Cpu_table.postdriver_hook = NULL; /* Call our main() for constructors */ - - Cpu_table.idle_task = NULL; /* do not override system IDLE task */ - - Cpu_table.do_zero_of_workspace = TRUE; - - Cpu_table.interrupt_table_segment = get_ds(); - - Cpu_table.interrupt_table_offset = (void *)Interrupt_descriptor_table; - - Cpu_table.interrupt_stack_size = 4096; - - Cpu_table.extra_system_initialization_stack = 0; - - /* - * Copy the table - */ - - BSP_Configuration = Configuration; - - BSP_Configuration.work_space_start = (void *) - RAM_END - BSP_Configuration.work_space_size; - - /* - * Add 1 region for Malloc in libc_low - */ - - BSP_Configuration.maximum_regions++; - - /* - * Add 1 extension for newlib libc - */ - -#ifdef RTEMS_NEWLIB - BSP_Configuration.maximum_extensions++; -#endif - - /* - * Add another extension if using the stack checker - */ - -#ifdef STACK_CHECKER_ON - BSP_Configuration.maximum_extensions++; -#endif - - rtems_initialize_executive( &BSP_Configuration, &Cpu_table ); - /* does not return */ - /* no cleanup necessary for Force CPU-386 */ - return 0; -} diff --git a/c/src/lib/libbsp/i386/force386/startup/exit.c b/c/src/lib/libbsp/i386/force386/startup/exit.c deleted file mode 100644 index 717972cec0..0000000000 --- a/c/src/lib/libbsp/i386/force386/startup/exit.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * exit - * - * This routine returns control to FORCEbug. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -void _exit( ) -{ - /* Clock or Timer cleanup is run by at_exit() */ - - Io_cleanup(); - - bsp_cleanup(); -} diff --git a/c/src/lib/libbsp/i386/force386/startup/ldsegs.s b/c/src/lib/libbsp/i386/force386/startup/ldsegs.s deleted file mode 100644 index 063c1eccc7..0000000000 --- a/c/src/lib/libbsp/i386/force386/startup/ldsegs.s +++ /dev/null @@ -1,86 +0,0 @@ -/* _load_segments - * - * This file assists the board independent startup code by - * loading the proper segment register values. The values - * loaded are board dependent. - * - * NOTE: No stack has been established when this routine - * is invoked. It returns by jumping back to bspentry. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "asm.h" - -BEGIN_CODE - -/* - * FORCEBUG loads us into a virtual address space which - * really starts at PHYSICAL_ADDRESS_BASE. - */ - -.set PHYSICAL_ADDRESS_BASE, 0x00002000 - -/* - * At reset time, FORCEBUG normally has the segment selectors preloaded. - * If a human resets the instruction pointer, this will not have occurred. - * However, no guarantee can be made of the other registers if cs:ip was - * modified to restart the program. Because of this, the BSP reloads all - * segment registers (except cs) with the values they have following - * a reset. - */ - - -.set RESET_SS, 0x40 # initial value of stack segment register -.set RESET_DS, 0x40 # initial value of data segment register -.set RESET_ES, 0x40 # initial value of extra segment register -.set RESET_FS, 0x40 # initial value of "f" segment register -.set RESET_GS, 0x30 # initial value of "g" segment register - - -#define LOAD_SEGMENTS(_value,_segment) \ - movw $ ## _value, ax ; \ - movw _segment, ax - - EXTERN (establish_stack) - - PUBLIC (_load_segments) -SYM (_load_segments): - LOAD_SEGMENTS( RESET_SS, ss ) - LOAD_SEGMENTS( RESET_DS, ds ) - LOAD_SEGMENTS( RESET_ES, es ) - LOAD_SEGMENTS( RESET_FS, fs ) - LOAD_SEGMENTS( RESET_GS, gs ) - - jmp SYM (_establish_stack) # return to the bsp entry code - - PUBLIC (_return_to_monitor) -SYM (_return_to_monitor): - - call SYM (Clock_exit) - movb $0,al - int $0x20 # restart FORCEbug - jmp SYM (start) # FORCEbug does not reset PC - -END_CODE - -BEGIN_DATA - - PUBLIC (_Do_Load_IDT) -SYM (_Do_Load_IDT): - .byte 1 - - PUBLIC (_Do_Load_GDT) -SYM (_Do_Load_GDT): - .byte 0 - -END_DATA -END diff --git a/c/src/lib/libbsp/i386/force386/startup/linkcmds b/c/src/lib/libbsp/i386/force386/startup/linkcmds deleted file mode 100644 index a8e0877e56..0000000000 --- a/c/src/lib/libbsp/i386/force386/startup/linkcmds +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file contains directives for the GNU linker which are specific - * to the FORCE CPU386 board. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -MEMORY - { - ram : org = 0x0, l = 1M - } - -SECTIONS -{ - .text 0x0 : - { - _text_start = . ; - *(.text) - _etext = ALIGN( 0x10 ) ; - } - .data ADDR( .text ) + SIZEOF( .text ): - { - _data_start = . ; - *(.data) - _edata = ALIGN( 0x10 ) ; - } - .bss ADDR( .data ) + SIZEOF( .data ): - { - _bss_start = . ; - *(.bss) - *(COMMON) - end = . ; - _end = . ; - __end = . ; - } -} diff --git a/c/src/lib/libbsp/i386/force386/startup/setvec.c b/c/src/lib/libbsp/i386/force386/startup/setvec.c deleted file mode 100644 index 370178a8f5..0000000000 --- a/c/src/lib/libbsp/i386/force386/startup/setvec.c +++ /dev/null @@ -1,59 +0,0 @@ -/* set_vector - * - * This routine installs an interrupt vector on the Force CPU-386. - * - * INPUT: - * handler - interrupt handler entry point - * vector - vector number - * type - 0 indicates raw hardware connect - * 1 indicates RTEMS interrupt connect - * - * RETURNS: - * address of previous interrupt handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -i386_isr set_vector( /* returns old vector */ - rtems_isr_entry handler, /* isr routine */ - rtems_vector_number vector, /* vector number */ - int type /* RTEMS or RAW intr */ -) -{ - i386_isr previous_isr; - i386_IDT_slot idt; - - if ( type ) - rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr ); - else { - /* get the address of the old handler */ - - idt = Interrupt_descriptor_table[ vector ]; - - previous_isr = (i386_isr) - ((idt.offset_16_31 << 16) | idt.offset_0_15); - - /* build the IDT entry */ - idt.offset_0_15 = ((rtems_unsigned32) handler) & 0xffff; - idt.segment_selector = get_cs(); - idt.reserved = 0x00; - idt.p_dpl = 0x8e; /* present, ISR */ - idt.offset_16_31 = ((rtems_unsigned32) handler) >> 16; - - /* install the IDT entry */ - Interrupt_descriptor_table[ vector ] = idt; - } - return previous_isr; -} - diff --git a/c/src/lib/libbsp/i386/force386/timer/timer.c b/c/src/lib/libbsp/i386/force386/timer/timer.c deleted file mode 100644 index 1896e15a23..0000000000 --- a/c/src/lib/libbsp/i386/force386/timer/timer.c +++ /dev/null @@ -1,96 +0,0 @@ -/* Timer_init() - * - * This routine initializes the timer on the FORCE CPU-386 board. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * NOTE: This routine will not work if the optimizer is enabled - * for some compilers. The multiple writes to the Z8036 - * may be optimized away. - * - * It is important that the timer start/stop overhead be - * determined when porting or modifying this code. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include -#include - -int Ttimer_val; -rtems_boolean Timer_driver_Find_average_overhead; - -rtems_isr timerisr(); - -void Timer_initialize() -{ - - (void) set_vector( timerisr, 0x38, 0 ); /* install ISR */ - - Ttimer_val = 0; /* clear timer ISR count */ - - outport_byte( IERA, 0x40 ); /* disable interrupt */ - outport_byte( TBCR, 0x40 ); /* stop the timer */ - outport_byte( TBDR, 250 ); /* 250 units */ - - outport_byte( TBCR, 0x11 ); /* reset it, delay mode, 4X */ -#if 0 - outport_byte( TBCR, 0x13 ); /* reset it, delay mode, 16X */ -#endif - - outport_byte( IERA, 0x41 ); /* enable interrupt */ - -} - -#define AVG_OVERHEAD 3 /* It typically takes 3.0 microseconds */ - /* (3 ticks) to start/stop the timer. */ -#define LEAST_VALID 4 /* Don't trust a value lower than this */ - -int Read_timer() -{ - register rtems_unsigned32 clicks; - register rtems_unsigned32 total; - - outport_byte( TBCR, 0x00 ); /* stop the timer */ - - inport_byte( TBDR, clicks ); - - total = Ttimer_val + 250 - clicks; - - outport_byte( TBCR, 0x00 ); /* initial value */ - outport_byte( IERA, 0x40 ); /* disable interrupt */ - - /* ??? Is "do not restore old vector" causing problems? */ - - if ( Timer_driver_Find_average_overhead == 1 ) - return total; /* in one microsecond units */ - - else { - if ( total < LEAST_VALID ) - return 0; /* below timer resolution */ - return (total - AVG_OVERHEAD); - } -} - -rtems_status_code Empty_function( void ) -{ - return RTEMS_SUCCESSFUL; -} - -void Set_find_average_overhead( - rtems_boolean find_flag -) -{ - Timer_driver_Find_average_overhead = find_flag; -} diff --git a/c/src/lib/libbsp/i386/force386/timer/timerisr.s b/c/src/lib/libbsp/i386/force386/timer/timerisr.s deleted file mode 100644 index bda3056ade..0000000000 --- a/c/src/lib/libbsp/i386/force386/timer/timerisr.s +++ /dev/null @@ -1,34 +0,0 @@ -/* timer_isr() - * - * This routine provides the ISR for the Z8036 timer on the MVME136 - * board. The timer is set up to generate an interrupt at maximum - * intervals. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "asm.h" - - BEGIN_CODE - - EXTERN (Ttimer_val) - - PUBLIC (timerisr) -SYM (timerisr): - addl $250, SYM (Ttimer_val) # another 250 microseconds - iret - -END_CODE -END diff --git a/c/src/lib/libbsp/i960/cvme961/clock/ckinit.c b/c/src/lib/libbsp/i960/cvme961/clock/ckinit.c deleted file mode 100644 index 315e02cdbb..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/clock/ckinit.c +++ /dev/null @@ -1,77 +0,0 @@ -/* Clock_init() - * - * This routine initializes the timer on the VIC chip on the CVME961. - * The tick frequency is 1 millisecond. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include - -rtems_unsigned32 Clock_isrs; /* ISRs until next tick */ -i960_isr Old_ticker; -volatile rtems_unsigned32 Clock_driver_ticks; - /* ticks since initialization */ - -rtems_device_driver Clock_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id id, - rtems_unsigned32 *rval ) -{ - Install_clock( Clock_isr ); - atexit( Clock_exit ); -} - -void ReInstall_clock( - rtems_isr_entry clock_isr -) -{ - (void) set_vector( clock_isr, 5, 1 ); -} - -void Install_clock( - rtems_isr_entry clock_isr -) -{ - volatile unsigned char *victimer; - - Clock_driver_ticks = 0; - Clock_isrs = BSP_Configuration.microseconds_per_tick / 1000; - - if ( BSP_Configuration.ticks_per_timeslice ) { - Old_ticker = set_vector( clock_isr, 5, 1 ); - victimer = (volatile unsigned char *) 0xa00000c3; - *victimer = 0x12; - *victimer = 0x92; /* 1000 HZ */ - } -} - -void Clock_exit() -{ - unsigned char *victimer; - - if ( BSP_Configuration.ticks_per_timeslice ) { - victimer = (unsigned char *) 0xa00000c3; - *victimer = 0x12; - i960_mask_intr( 5 ); - /* do not restore old vector */ - } -} diff --git a/c/src/lib/libbsp/i960/cvme961/console/console.c b/c/src/lib/libbsp/i960/cvme961/console/console.c deleted file mode 100644 index 8ba0352304..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/console/console.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * This file contains the MVME136 console IO package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#define C961_INIT - -#include -#include "console.h" -#include "bsp.h" - -/* console_initialize - * - * This routine initializes the console IO driver. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_device_driver console_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg, - rtems_id self, - rtems_unsigned32 *status -) -{ - *status = RTEMS_SUCCESSFUL; -} - -/* - * NINDY_IO( ... ) - * - * Interface to NINDY. - */ - -#define NINDY_INPUT 0 -#define NINDY_OUTPUT 1 - -void NINDY_IO(); - -void ___NINDY_IO_WRAPPER( void ) /* never called */ -{ - asm volatile ( " .text" ); - asm volatile ( " .align 4" ); - asm volatile ( " .globl _NINDY_IO" ); - asm volatile ( "_NINDY_IO:" ); - asm volatile ( " calls 0 /* call console routines */" ); - asm volatile ( " ret" ); -} - -/* inbyte - * - * This routine reads a character from the console using NINDY. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - * character read from UART - */ - -char inbyte( void ) -{ - char ch; - - NINDY_IO( NINDY_INPUT, &ch ); - return ch; -} - - -/* outbyte - * - * This routine transmits a character out the console using NINDY. - * - * Input parameters: - * ch - character to be transmitted - * - * Output parameters: NONE - */ - -void outbyte( - char ch -) -{ - NINDY_IO( NINDY_OUTPUT, ch ); -} - -/* - * __read -- read bytes from the serial port. Ignore fd, since - * we only have stdin. - */ - -int __read( - int fd, - char *buf, - int nbytes -) -{ - int i = 0; - - for (i = 0; i < nbytes; i++) { - *(buf + i) = inbyte(); - if ((*(buf + i) == '\n') || (*(buf + i) == '\r')) { - (*(buf + i++)) = '\n'; - (*(buf + i)) = 0; - break; - } - } - return (i); -} - -/* - * __write -- write bytes to the serial port. Ignore fd, since - * stdout and stderr are the same. Since we have no filesystem, - * open will only return an error. - */ - -int __write( - int fd, - char *buf, - int nbytes -) -{ - int i; - - for (i = 0; i < nbytes; i++) { - if (*(buf + i) == '\n') { - outbyte ('\r'); - } - outbyte (*(buf + i)); - } - return (nbytes); -} diff --git a/c/src/lib/libbsp/i960/cvme961/include/bsp.h b/c/src/lib/libbsp/i960/cvme961/include/bsp.h deleted file mode 100644 index 4dd907449f..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/include/bsp.h +++ /dev/null @@ -1,129 +0,0 @@ -/* bsp.h - * - * This include file contains some definitions specific to the - * Cyclone CVME960 and CVME961 boards. These boards are the - * same except the 960 uses SRAM and the 961 DRAM. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __CVME961_h -#define __CVME961_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * Define the time limits for RTEMS Test Suite test durations. - * Long test and short test duration limits are provided. These - * values are in seconds and need to be converted to ticks for the - * application. - * - */ - -#define MAX_LONG_TEST_DURATION 300 /* 5 minutes = 300 seconds */ -#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */ - -/* - * Define the interrupt mechanism for Time Test 27 - * - * NOTE: Following are for i960CA and are board independent - * - */ - -#define MUST_WAIT_FOR_INTERRUPT 0 - -#define Install_tm27_vector( handler ) set_vector( (handler), 6, 1 ) - -#define Cause_tm27_intr() i960_cause_intr( 0x62 ) - -#define Clear_tm27_intr() i960_clear_intr( 6 ) - -#define Lower_tm27_intr() - -/* - * Simple spin delay in microsecond units for device drivers. - * This is very dependent on the clock speed of the target. - */ - -#define delay( microseconds ) \ - { register rtems_unsigned32 _delay=(microseconds); \ - register rtems_unsigned32 _tmp; \ - asm volatile( "0: \ - remo 3,31,%0 ; \ - cmpo 0,%0 ; \ - subo 1,%1,%1 ; \ - cmpobne.t 0,%1,0b " \ - : "=d" (_tmp), "=d" (_delay) \ - : "0" (_tmp), "1" (_delay) ); \ - } - -/* Constants */ - -#define RAM_START 0 -#define RAM_END 0x100000 - -/* NINDY console I/O requests: - * CO sends a single character to stdout, - * CI reads one. - */ - -#define NINDY_INPUT 0 -#define NINDY_OUTPUT 1 - -/* - * get_prcb - * - * Returns the PRCB pointer. - */ - -static inline i960ca_PRCB *get_prcb( void ) -{ - register i960ca_PRCB *_prcb = 0; - - asm volatile( "calls 5; \ - mov g0,%0" \ - : "=d" (_prcb) \ - : "0" (_prcb) ); - return ( _prcb ); -} - -#ifdef C961_INIT -#undef BSP_EXTERN -#define BSP_EXTERN -#else -#undef BSP_EXTERN -#define BSP_EXTERN extern -#endif - -/* miscellaneous stuff assumed to exist */ - -extern rtems_configuration_table BSP_Configuration; - -BSP_EXTERN i960ca_PRCB *Prcb; -BSP_EXTERN i960ca_control_table *Ctl_tbl; - -/* functions */ - -void bsp_cleanup( void ); - -i960_isr set_vector( rtems_isr_entry, unsigned int, unsigned int ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/i960/cvme961/include/coverhd.h b/c/src/lib/libbsp/i960/cvme961/include/coverhd.h deleted file mode 100644 index 9d6b26111a..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/include/coverhd.h +++ /dev/null @@ -1,104 +0,0 @@ -/* coverhd.h - * - * This include file has defines to represent the overhead associated - * with calling a particular directive from C on this target. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __COVERHD_h -#define __COVERHD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 0 -#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 0 -#define CALLING_OVERHEAD_TASK_CREATE 0 -#define CALLING_OVERHEAD_TASK_IDENT 0 -#define CALLING_OVERHEAD_TASK_START 0 -#define CALLING_OVERHEAD_TASK_RESTART 0 -#define CALLING_OVERHEAD_TASK_DELETE 0 -#define CALLING_OVERHEAD_TASK_SUSPEND 0 -#define CALLING_OVERHEAD_TASK_RESUME 0 -#define CALLING_OVERHEAD_TASK_SET_PRIORITY 0 -#define CALLING_OVERHEAD_TASK_MODE 0 -#define CALLING_OVERHEAD_TASK_GET_NOTE 0 -#define CALLING_OVERHEAD_TASK_SET_NOTE 0 -#define CALLING_OVERHEAD_TASK_WAKE_WHEN 3 -#define CALLING_OVERHEAD_TASK_WAKE_AFTER 0 -#define CALLING_OVERHEAD_INTERRUPT_CATCH 0 -#define CALLING_OVERHEAD_CLOCK_GET 3 -#define CALLING_OVERHEAD_CLOCK_SET 3 -#define CALLING_OVERHEAD_CLOCK_TICK 0 - -#define CALLING_OVERHEAD_TIMER_CREATE 0 -#define CALLING_OVERHEAD_TIMER_IDENT 0 -#define CALLING_OVERHEAD_TIMER_DELETE 0 -#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 0 -#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 6 -#define CALLING_OVERHEAD_TIMER_RESET 0 -#define CALLING_OVERHEAD_TIMER_CANCEL 0 -#define CALLING_OVERHEAD_SEMAPHORE_CREATE 0 -#define CALLING_OVERHEAD_SEMAPHORE_IDENT 0 -#define CALLING_OVERHEAD_SEMAPHORE_DELETE 0 -#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 0 -#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 0 - -#define CALLING_OVERHEAD_EVENT_SEND 0 -#define CALLING_OVERHEAD_EVENT_RECEIVE 0 -#define CALLING_OVERHEAD_SIGNAL_CATCH 0 -#define CALLING_OVERHEAD_SIGNAL_SEND 0 -#define CALLING_OVERHEAD_PARTITION_CREATE 0 -#define CALLING_OVERHEAD_PARTITION_IDENT 0 -#define CALLING_OVERHEAD_PARTITION_DELETE 0 -#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 0 -#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 0 -#define CALLING_OVERHEAD_REGION_CREATE 0 -#define CALLING_OVERHEAD_REGION_IDENT 0 -#define CALLING_OVERHEAD_REGION_DELETE 0 -#define CALLING_OVERHEAD_REGION_GET_SEGMENT 0 -#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 0 -#define CALLING_OVERHEAD_PORT_CREATE 0 -#define CALLING_OVERHEAD_PORT_IDENT 0 -#define CALLING_OVERHEAD_PORT_DELETE 0 -#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 0 -#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 0 - -#define CALLING_OVERHEAD_IO_INITIALIZE 0 -#define CALLING_OVERHEAD_IO_OPEN 0 -#define CALLING_OVERHEAD_IO_CLOSE 0 -#define CALLING_OVERHEAD_IO_READ 0 -#define CALLING_OVERHEAD_IO_WRITE 0 -#define CALLING_OVERHEAD_IO_CONTROL 0 -#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 0 -#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 0 - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/i960/cvme961/shmsupp/addrconv.c b/c/src/lib/libbsp/i960/cvme961/shmsupp/addrconv.c deleted file mode 100644 index 7702d22e67..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/shmsupp/addrconv.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Shm_Convert_address - * - * This routine takes into account the peculiar short VME address - * of the CVME961 board. The CVME961 maps short address space - * 0xffffxxxx to 0xb400xxxx. - * - * Input parameters: - * address - address to convert - * - * Output parameters: - * returns - converted address - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include "shm.h" - -void *Shm_Convert_address( - void *address -) -{ - rtems_unsigned32 workaddr = (rtems_unsigned32) address; - - if ( workaddr >= 0xffff0000 ) - workaddr = (workaddr & 0xffff) | 0xb4000000; - return ( (rtems_unsigned32 *)workaddr ); -} diff --git a/c/src/lib/libbsp/i960/cvme961/shmsupp/getcfg.c b/c/src/lib/libbsp/i960/cvme961/shmsupp/getcfg.c deleted file mode 100644 index f72e715b6f..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/shmsupp/getcfg.c +++ /dev/null @@ -1,98 +0,0 @@ -/* void Shm_Get_configuration( localnode, &shmcfg ) - * - * This routine initializes, if necessary, and returns a pointer - * to the Shared Memory Configuration Table for the Cyclone CVME961. - * - * INPUT PARAMETERS: - * localnode - local node number - * shmcfg - address of pointer to SHM Config Table - * - * OUTPUT PARAMETERS: - * *shmcfg - pointer to SHM Config Table - * - * NOTES: CVME961 target system has onboard dual-ported memory. This - * file uses the USE_ONBOARD_RAM macro to determine if this - * RAM is to be used as the SHM. If so (i.e. USE_ONBOARD_RAM - * is set to 1), it is assumed that the master node's dual - * ported memory will be used and that it is configured - * correctly. The node owning the memory CANNOT access it - * using a local address. The "if" insures that the MASTER - * node uses a local address to access the dual-ported memory. - * - * The interprocessor interrupt used on the CVME961 is generated - * by the VIC068. The ICMS capablities of the VIC068 are used - * to generate interprocessor interrupts for up to eight nodes. - * - * The following table illustrates the configuration limitations: - * - * BUS MAX - * MODE ENDIAN NODES - * ========= ====== ======= - * POLLED LITTLE 2+ - * INTERRUPT LITTLE 2-8 - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -#define USE_ONBOARD_RAM 0 /* use onboard (1) or VME RAM */ - /* for SHM communications */ - -#define INTERRUPT 1 /* CVME961 target supports both */ -#define POLLING 0 /* polling and interrupt modes */ - - -shm_config_table BSP_shm_cfgtbl; - -void Shm_Get_configuration( - rtems_unsigned32 localnode, - shm_config_table **shmcfg -) -{ -#if ( USE_ONBOARD_RAM == 1 ) - if ( Shm_RTEMS_MP_Configuration->node == MASTER ) - BSP_shm_cfgtbl.base = (rtems_unsigned32 *)0x00300000; - else - BSP_shm_cfgtbl.base = (rtems_unsigned32 *)0x10300000; -#else - BSP_shm_cfgtbl.base = (rtems_unsigned32 *)0x20000000; -#endif - - BSP_shm_cfgtbl.length = 1 * MEGABYTE; - BSP_shm_cfgtbl.format = SHM_LITTLE; - - BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt; - -#ifdef NEUTRAL_BIG - BSP_shm_cfgtbl.convert = (void *)CPU_swap_u32; -#else - BSP_shm_cfgtbl.convert = NULL_CONVERT; -#endif - -#if (POLLING==1) - BSP_shm_cfgtbl.poll_intr = POLLED_MODE; - BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT; - BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT; - BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT; -#else - BSP_shm_cfgtbl.poll_intr = INTR_MODE; - BSP_shm_cfgtbl.Intr.address = - (rtems_unsigned32 *) (0xffff0021|((localnode-1) << 12)); - /* use ICMS0 */ - BSP_shm_cfgtbl.Intr.value = 1; - BSP_shm_cfgtbl.Intr.length = BYTE; -#endif - - *shmcfg = &BSP_shm_cfgtbl; - -} diff --git a/c/src/lib/libbsp/i960/cvme961/shmsupp/lock.c b/c/src/lib/libbsp/i960/cvme961/shmsupp/lock.c deleted file mode 100644 index de62ec670d..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/shmsupp/lock.c +++ /dev/null @@ -1,77 +0,0 @@ -/* Shared Memory Lock Routines - * - * This shared memory locked queue support routine need to be - * able to lock the specified locked queue. Interrupts are - * disabled while the queue is locked to prevent preemption - * and deadlock when two tasks poll for the same lock. - * previous level. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "cpu.h" -#include "bsp.h" -#include "shm.h" - -/* - * Shm_Initialize_lock - * - * Initialize the lock for the specified locked queue. - */ - -void Shm_Initialize_lock( - Shm_Locked_queue_Control *lq_cb -) -{ - lq_cb->lock = LQ_UNLOCKED; -} - -/* void _Shm_Lock( &lq_cb ) - * - * This shared memory locked queue support routine locks the - * specified locked queue. It disables interrupts to prevent - * a deadlock condition. - */ - -void Shm_Lock( - Shm_Locked_queue_Control *lq_cb -) -{ - rtems_unsigned32 isr_level, oldlock; - - rtems_interrupt_disable( isr_level ); - Shm_isrstat = isr_level; - while ( 1 ) { - atomic_modify( SHM_LOCK_VALUE, &lq_cb->lock, oldlock ); - if ( !(oldlock & SHM_LOCK_VALUE) ) - return; - delay( 28 ); /* delay 28 microseconds */ - } -} - -/* - * Shm_Unlock - * - * Unlock the lock for the specified locked queue. - */ - -void Shm_Unlock( - Shm_Locked_queue_Control *lq_cb -) -{ - rtems_unsigned32 isr_level; - - lq_cb->lock = SHM_UNLOCK_VALUE; - isr_level = Shm_isrstat; - rtems_interrupt_enable( isr_level ); -} - diff --git a/c/src/lib/libbsp/i960/cvme961/shmsupp/mpisr.c b/c/src/lib/libbsp/i960/cvme961/shmsupp/mpisr.c deleted file mode 100644 index 827c5e4adb..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/shmsupp/mpisr.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Shm_isr_cvme961() - * - * NOTE: This routine is not used when in polling mode. Either - * this routine OR Shm_clockisr is used in a particular system. - * - * There must be sufficient time after the IACK (read at - * 0xb600000x) for the VIC068 to clear the interrupt request - * before the interrupt request is cleared from IPND (sf0). - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include "shm.h" - -rtems_isr Shm_isr_cvme961( - rtems_vector_number vector -) -{ - rtems_unsigned32 vic_vector; - - /* enable_tracing(); */ - vic_vector = (*(volatile rtems_unsigned8 *)0xb6000007); - /* reset intr by reading */ - /* vector at IPL=3 */ - Shm_Interrupt_count += 1; - rtems_multiprocessing_announce(); - (*(volatile rtems_unsigned8 *)0xa000005f) = 0; /* clear ICMS0 */ - i960_clear_intr( 6 ); - -} - -/* void _Shm_setvec( ) - * - * This driver routine sets the SHM interrupt vector to point to the - * driver's SHM interrupt service routine. - * - * NOTE: See pp. 21-22, 36-39 of the CVME961 Manual for more info. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void Shm_setvec() -{ - rtems_unsigned32 isrlevel; - - rtems_interrupt_disable( isrlevel ); - /* set SQSIO4 CTL REG for */ - /* VME slave address */ - (*(rtems_unsigned8 *)0xc00000b0) = - (Shm_RTEMS_MP_Configuration->node - 1) | 0x10; - set_vector( Shm_isr_cvme961, 6, 1 ); - /* set ICMS Bector Base Register */ - (*(rtems_unsigned8 *)0xa0000053) = 0x60; /* XINT6 vector is 0x62 */ - /* set ICMS Intr Control Reg */ - (*(rtems_unsigned8 *)0xa0000047) = 0xeb; /* ICMS0 enabled, IPL=0 */ - (*(rtems_unsigned8 *)0xa000005f) = 0; /* clear ICMS0 */ - rtems_interrupt_enable( isrlevel ); -} diff --git a/c/src/lib/libbsp/i960/cvme961/startup/bspclean.c b/c/src/lib/libbsp/i960/cvme961/startup/bspclean.c deleted file mode 100644 index fb35e206be..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/startup/bspclean.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * This routine is used to return control to the NINDY monitor - * and is automatically invoked at shutdown. - * - * NOTES: DOES NOT RETURN!!! - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "bsp.h" - -void bsp_cleanup( void ) -{ - asm volatile( "mov 0,g0; \ - fmark ; \ - syncf ; \ - .word 0xfeedface ; \ - bx start" : : ); - /* The constant 0xfeedface is a magic word for break which - * is defined by NINDY. The branch extended restarts the - * application if the user types "go". - */ -} diff --git a/c/src/lib/libbsp/i960/cvme961/startup/bspstart.c b/c/src/lib/libbsp/i960/cvme961/startup/bspstart.c deleted file mode 100644 index afb9b7e733..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/startup/bspstart.c +++ /dev/null @@ -1,163 +0,0 @@ -/* bsp_start() - * - * This routine starts the application. It includes application, - * board, and monitor specific initialization and configuration. - * The generic CPU dependent initialization has been performed - * before this routine is invoked. - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include "libcsupport.h" - - -#include "stackchk.h" - -/* - * The original table from the application and our copy of it with - * some changes. - */ - -extern rtems_configuration_table Configuration; - -rtems_configuration_table BSP_Configuration; - -rtems_cpu_table Cpu_table; - -/* Initialize whatever libc we are using - * called from postdriver hook - */ - -void bsp_libc_init() -{ - extern int end; - rtems_unsigned32 heap_start; - - heap_start = (rtems_unsigned32) &end; - if (heap_start & (CPU_ALIGNMENT-1)) - heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - - RTEMS_Malloc_Initialize((void *) heap_start, 64 * 1024, 0); - - /* - * Set up for the libc handling. - */ - - if (BSP_Configuration.ticks_per_timeslice > 0) - libc_init(1); /* reentrant if possible */ - else - libc_init(0); /* non-reentrant */ - /* - * Initialize the stack bounds checker - */ - -#ifdef STACK_CHECKER_ON - Stack_check_Initialize(); -#endif -} - -int bsp_start( - int argc, - char **argv, - char **environp -) -{ - /* set node number in SQSIO4 CTL REG */ - - *((rtems_unsigned32 *)0xc00000b0) = - (Configuration.User_multiprocessing_table) ? - Configuration.User_multiprocessing_table->node : 0; - - Prcb = get_prcb(); - Ctl_tbl = Prcb->control_tbl; - - /* following configures the data breakpoint (which must be set - * before this is executed) to break on writes only. - */ - - Ctl_tbl->bpcon &= ~0x00cc0000; - i960_reload_ctl_group( 6 ); - - /* bit 31 of the Register Cache Control can be set to - * enable an alternative caching algorithm. It does - * not appear to help RTEMS. - */ - - /* Configure Number of Register Caches */ - - Prcb->reg_cache_cfg = 8; - i960_soft_reset( Prcb ); - - /* - * we do not use the pretasking_hook. - */ - - Cpu_table.pretasking_hook = NULL; - - Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */ - - Cpu_table.postdriver_hook = NULL; /* Call our main() for constructors */ - - Cpu_table.idle_task = NULL; /* do not override system IDLE task */ - - Cpu_table.do_zero_of_workspace = TRUE; - - Cpu_table.interrupt_stack_size = 4096; - - Cpu_table.extra_system_initialization_stack = 0; - - Cpu_table.Prcb = Prcb; - - /* - * Copy the table - */ - - BSP_Configuration = Configuration; - - /* - * Add 1 region for the RTEMS Malloc - */ - - BSP_Configuration.maximum_regions++; - - /* - * Add 1 extension for newlib libc - */ - -#ifdef RTEMS_NEWLIB - BSP_Configuration.maximum_extensions++; -#endif - - /* - * Add another extension if using the stack checker - */ - -#ifdef STACK_CHECKER_ON - BSP_Configuration.maximum_extensions++; -#endif - - BSP_Configuration.work_space_start = (void *) - (RAM_END - BSP_Configuration.work_space_size); - - rtems_initialize_executive( &BSP_Configuration, &Cpu_table ); - /* does not return */ - - bsp_cleanup(); - - return 0; - -} diff --git a/c/src/lib/libbsp/i960/cvme961/startup/exit.c b/c/src/lib/libbsp/i960/cvme961/startup/exit.c deleted file mode 100644 index c412cad281..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/startup/exit.c +++ /dev/null @@ -1,38 +0,0 @@ -/* exit - * - * This routine is used to return control to the NINDY monitor - * and is automatically invoked by the STDIO exit() routine. - * - * INPUT: - * status - exit status - * - * OUTPUT: NONE - * - * NOTES: DOES NOT RETURN!!! - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "bsp.h" - -void _exit( ) -{ - asm volatile( "mov 0,g0; \ - fmark ; \ - syncf ; \ - .word 0xfeedface ; \ - bx start" : : ); - /* The constant 0xfeedface is a magic word for break which - * is defined by NINDY. The branch extended restarts the - * application if the user types "go". - */ -} diff --git a/c/src/lib/libbsp/i960/cvme961/startup/linkcmds b/c/src/lib/libbsp/i960/cvme961/startup/linkcmds deleted file mode 100644 index 5acbf22283..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/startup/linkcmds +++ /dev/null @@ -1,48 +0,0 @@ -/* - * This file contains directives for the GNU linker which are specific - * to the Cyclone CVME960/CVME961 boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -MEMORY - { - ram : org = 0x0, l = 1M - } - -SECTIONS -{ - .text 0x10000 : - { - text_start = . ; - _text_start = . ; - *(.text) - etext = ALIGN( 0x10 ) ; -/* _etext = .; */ - } - .data ADDR( .text ) + SIZEOF( .text ): - { - data_start = . ; - _data_start = .; - *(.data) - edata = ALIGN( 0x10 ) ; -/* _edata = .; */ - } - .bss ADDR( .data ) + SIZEOF( .data ): - { - bss_start = . ; -/* _bss_start = . ; */ - *(.bss) - *(COMMON) - end = . ; - _end = . ; - } -} diff --git a/c/src/lib/libbsp/i960/cvme961/startup/setvec.c b/c/src/lib/libbsp/i960/cvme961/startup/setvec.c deleted file mode 100644 index ea3706c3b3..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/startup/setvec.c +++ /dev/null @@ -1,145 +0,0 @@ -/* set_vector - * - * This routine attempts to perform all "generic" interrupt initialization - * for the specified XINT line. It is specific to the Cyclone CVME961 in - * that it knows which interrupts are initialized by the monitor, the - * characteristics of XINT5 (VIC068 clock tick), and that it assumes the - * i960 is processing interrupts in dedicated mode. It attempts to map - * XINTs to interrupt vectors in a fairly straght forward way. - * - * XINT USE VECTOR INTR TBL INDEX TRIGGERED - * ==== ============= ====== ============== ========= - * 0 VMEbus ERROR 0x02 0x03 EDGE - * 1 DRAM PARITY 0x12 0x13 EDGE - * 2 Z8530 0x22 0x23 LEVEL - * 3 SQUALL 0 0x52 0x53 ---- - * 4 Z8536 (SQSIO4) 0x72 0x73 LEVEL - * 5 TICK 0x32 0x33 EDGE - * 6 VIC068 0x62 0x63 LEVEL - * 7 UNUSED 0x42 0x43 LEVEL - * - * The interrupt handler is installed in both the cached and memory - * resident interrupt tables. The appropriate IMAP register is updated to - * reflect the vector selected by this routine. Global interrupts are - * enabled. If XINT5 is being installed, places it in trigger mode. - * Finally, set_vector_support() is invoked to install the new IMAP and - * ICON, unmask the XINT in IMASK, and lower the i960's interrupt - * level to 0. - * - * INPUT: - * func - interrupt handler entry point - * xint - external interrupt line - * type - 0 indicates raw hardware connect - * 1 indicates RTEMS interrupt connect - * - * RETURNS: - * address of previous interrupt handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -#include - -void print_prcb(); -void print_intr_info(); -void print_ipnd_imsk(); - -unsigned int Xint_2_Group_Map[8] = { 0, 1, 2, 5, 7, 3, 6, 4 }; - -i960_isr set_vector( /* returns old vector */ - rtems_isr_entry func, /* isr routine */ - unsigned int xint, /* XINT number */ - unsigned int type /* RTEMS or RAW */ -) -{ - i960_isr *intr_tbl, *cached_intr_tbl; - i960_isr saved_intr; - unsigned int vector, group, nibble; - unsigned int *imap; - - if ( xint > 7 ) - exit( 0x80 ); - - cached_intr_tbl = (i960_isr *) 0; - intr_tbl = (i960_isr *) Prcb->intr_tbl; - group = Xint_2_Group_Map[xint]; /* remap XINT to group */ - vector = (group << 4) + 2; /* direct vector num */ - - if ( type ) - rtems_interrupt_catch( func, vector, (rtems_isr_entry *) &saved_intr ); - else { - saved_intr = (i960_isr) intr_tbl[ vector ]; - /* return old vector */ - intr_tbl[ vector + 1 ] = /* normal vector table */ - cached_intr_tbl[ group ] = (i960_isr) func; /* cached vector */ - } - - if ( xint <= 3 ) imap = &Ctl_tbl->imap0; /* updating IMAP0 */ - else imap = &Ctl_tbl->imap1; /* updating IMAP1 */ - nibble = (xint % 4) * 4; - *imap &= ~(0xf << nibble); - *imap |= group << nibble; - - Ctl_tbl->icon &= ~0x00000400; /* enable global interrupts */ - Ctl_tbl->icon |= 0x00004000; /* fast sampling mode */ - switch ( xint ) { - case 0: Ctl_tbl->icon |= 0x00000004; break; - case 1: Ctl_tbl->icon |= 0x00000008; break; - case 2: Ctl_tbl->icon &= ~0x00000010; break; - case 4: Ctl_tbl->icon &= ~0x00000040; break; - case 5: Ctl_tbl->icon |= 0x00000080; break; - case 6: Ctl_tbl->icon &= ~0x00000100; break; - default: exit( 0x81 ); break; /* unsupported */ - } - - if ( xint == 4 ) { /* reprogram MCON for SQSIO4 */ - Ctl_tbl->mcon12 = 0x00002012; /* MCON12 - 0xCxxxxxxx */ - Ctl_tbl->mcon13 = 0x00000000; /* MCON13 - 0xDxxxxxxx */ - i960_reload_ctl_group( 5 ); /* update MCON12-MCON15 */ - } - - i960_unmask_intr( xint ); /* update IMSK */ - i960_reload_ctl_group( 1 ); /* update IMAP?/ICON */ - return( saved_intr ); /* return old vector */ -} - -void print_prcb() -{ - printf( "fault_table =0x%p\n", Prcb->fault_tbl ); - printf( "control_tbl =0x%p\n", Prcb->control_tbl ); - printf( "AC mask ov =0x%x\n", Prcb->initial_ac ); - printf( "fltconfig =0x%x\n", Prcb->fault_config ); - printf( "intr tbl =0x%p\n", Prcb->intr_tbl ); - printf( "systable =0x%p\n", Prcb->sys_proc_tbl ); - printf( "reserved =0x%x\n", Prcb->reserved ); - printf( "isr stk =0x%p\n", Prcb->intr_stack ); - printf( "ins cache =0x%x\n", Prcb->ins_cache_cfg ); - printf( "reg cache =0x%x\n", Prcb->reg_cache_cfg ); -} - -void print_intr_info() -{ - printf( "prcb =0x%p\n", Prcb ); - printf( "ctl_tbl =0x%p\n", Ctl_tbl ); - printf( "intr_tbl=0x%p\n", Prcb->intr_tbl ); - printf( "IMAP0 = 0x%x\n", Ctl_tbl->imap0 ); - printf( "IMAP1 = 0x%x\n", Ctl_tbl->imap1 ); - print_ipnd_imsk(); -} - -void print_ipnd_imsk() -{ - printf(" IPEND = 0x%x\n", i960_pend_intrs() ); - printf(" IMASK = 0x%x\n", i960_mask_intrs() ); -} diff --git a/c/src/lib/libbsp/i960/cvme961/timer/timer.c b/c/src/lib/libbsp/i960/cvme961/timer/timer.c deleted file mode 100644 index 0a91d12a93..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/timer/timer.c +++ /dev/null @@ -1,107 +0,0 @@ -/* Timer_init() - * - * This routine initializes the Z8536 timer on the SQSIO4 SQUALL - * board for the CVME961 board. The timer is setup to provide a - * tick every 1 millisecond. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * NOTE: This routine will not work if the optimizer is enabled - * for most compilers. The multiple writes to the Z8536 - * will be optimized away. - * - * It is important that the timer start/stop overhead be - * determined when porting or modifying this code. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include -#include -#include "z8536.h" - -#define TIMER 0xc00000a0 - -int Ttimer_val; -rtems_boolean Timer_driver_Find_average_overhead; - -void flush_reg(); -rtems_isr timerisr(); - -void Timer_initialize() -{ - set_vector( timerisr, 4, 0 ); /* install ISR */ - - i960_mask_intr( 5 ); /* disable VIC068 tick */ - flush_reg(); /* timed code starts clean */ - Ttimer_val = 0; /* clear timer ISR count */ - Z8x36_WRITE( TIMER, MASTER_INTR, 0x01 ); /* reset */ - Z8x36_WRITE( TIMER, MASTER_INTR, 0x00 ); /* clear reset */ - Z8x36_WRITE( TIMER, MASTER_CFG, 0x00 ); /* disable everything */ - Z8x36_WRITE( TIMER, CNT_TMR_VECTOR, 0x72 ); /* clear intr vector */ - Z8x36_WRITE( TIMER, MASTER_CFG, 0x20 ); /* clear intr info */ - Z8x36_WRITE( TIMER, MASTER_CFG, 0xe0 ); /* disable interrupts */ - Z8x36_WRITE( TIMER, MASTER_CFG, 0x20 ); /* clear intr info */ - Z8x36_WRITE( TIMER, MASTER_CFG, 0xe0 ); /* disable interrupts */ - Z8x36_WRITE( TIMER, MASTER_INTR, 0xe2 ); /* disable lower chain, */ - /* no vector, set right */ - /* justified addr and */ - /* master int enable */ - Z8x36_WRITE( TIMER, CT1_MODE_SPEC, 0x80 ); /* T1 continuous, and */ - /* cycle/pulse output */ - Z8x36_WRITE( TIMER, CT1_TIME_CONST_MSB, 0x00 ); - Z8x36_WRITE( TIMER, CT1_TIME_CONST_LSB, 0x00 ); - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0xc0 ); /* set INTR enable (IE) */ - Z8x36_WRITE( TIMER, MASTER_CFG, 0x40 ); /* enable timer1 */ - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0x06 ); /* set trigger command */ - /* (TCB) and gate */ - /* command (GCB) bits */ -} - -#define AVG_OVERHEAD 11 /* It typically takes 5.5 microseconds */ - /* (11 countdowns) to start/stop the timer. */ -#define LEAST_VALID 15 /* Don't trust a value lower than this */ - -int Read_timer() -{ - rtems_unsigned8 msb, lsb; - rtems_unsigned32 remaining, total; - - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0xce ); /* read the counter value */ - Z8x36_READ( TIMER, CT1_CUR_CNT_MSB, msb ); - Z8x36_READ( TIMER, CT1_CUR_CNT_LSB, lsb ); - - remaining = 0xffff - ((msb << 8) + lsb); - total = (Ttimer_val * 0x10000) + remaining; - - if ( Timer_driver_Find_average_overhead == 1 ) - return total; /* in one-half microsecond units */ - else { - if ( total < LEAST_VALID ) - return 0; /* below timer resolution */ - return (total-AVG_OVERHEAD) >> 1; - } -} - -rtems_status_code Empty_function( void ) -{ - return RTEMS_SUCCESSFUL; -} - -void Set_find_average_overhead( - rtems_boolean find_flag -) -{ - Timer_driver_Find_average_overhead = find_flag; -} diff --git a/c/src/lib/libbsp/i960/cvme961/timer/timerisr.s b/c/src/lib/libbsp/i960/cvme961/timer/timerisr.s deleted file mode 100644 index 02dc23cd5c..0000000000 --- a/c/src/lib/libbsp/i960/cvme961/timer/timerisr.s +++ /dev/null @@ -1,59 +0,0 @@ -/* timer_isr() - * - * This routine initializes the Z8536 timer on the SQSIO4 SQUALL - * board for the CVME961 board. The timer is setup to provide a - * tick every 0x10000 / 2 milliseconds. This is used to time - * executing code. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "asm.h" - -.set PORT_A, 0xc00000a8 # port A -.set PORT_B, 0xc00000a4 # port B -.set PORT_C, 0xc00000a0 # port C -.set CTL_PORT, 0xc00000ac # control port - -.set T1CSR, 0x0a # T1 command/status reg -.set RELOAD, 0x24 # clr IP & IUS,allow countdown - - PUBLIC(_timerisr) -SYM (_timerisr): - #ldconst 1,r4 - #modpc 0,r4,r4 # enable tracing - - ld _Ttimer_val,r6 # r6 = test timer - - ldconst T1CSR,r4 # r4 = T1 control status reg - stob r4,CTL_PORT # select T1CSR - ldconst RELOAD,r5 # r5 = reset value - stob r5,CTL_PORT # reset countdown - addo 1,r6,r6 - st r6,_Ttimer_val # increment test timer -loop_til_cleared: - clrbit 4,sf0,sf0 - bbs 4,sf0,loop_til_cleared -leaf: ret - - .leafproc _flush_reg, flush_reg.lf - .globl _flush_reg, flush_reg.lf -_flush_reg: - lda leaf,g14 # g14 = exit address -flush_reg.lf: - flushreg - mov g14,g0 # g0 = exit address - ldconst 0,g14 # set g14 for non-leaf - bx (g0) diff --git a/c/src/lib/libbsp/m68k/dmv152/clock/ckinit.c b/c/src/lib/libbsp/m68k/dmv152/clock/ckinit.c deleted file mode 100644 index d5f0f5e023..0000000000 --- a/c/src/lib/libbsp/m68k/dmv152/clock/ckinit.c +++ /dev/null @@ -1,101 +0,0 @@ -/* Clock_init() - * - * This routine initializes the Z80386 1 on the MVME136 board. - * The tick frequency is 1 millisecond. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include - -rtems_unsigned32 Clock_isrs; /* ISRs until next tick */ -volatile rtems_unsigned32 Clock_driver_ticks; - /* ticks since initialization */ -rtems_isr_entry Old_ticker; - -rtems_device_driver Clock_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - Install_clock( Clock_isr ); -} - -void ReInstall_clock( - rtems_isr_entry clock_isr -) -{ - rtems_unsigned32 isrlevel = 0 ; - - rtems_interrupt_disable( isrlevel ); - (void) set_vector( clock_isr, TIMER_VECTOR, 1 ); - rtems_interrupt_enable( isrlevel ); -} - -void Install_clock( - rtems_isr_entry clock_isr -) -{ - rtems_unsigned8 data; - - Clock_driver_ticks = 0; - Clock_isrs = BSP_Configuration.microseconds_per_tick / 1000; - - if ( BSP_Configuration.ticks_per_timeslice ) { - Old_ticker = (rtems_isr_entry) set_vector( clock_isr, TIMER_VECTOR, 1 ); - - Z8x36_WRITE( TIMER, MASTER_CFG, 0xd4 ); - Z8x36_READ ( TIMER, MASTER_INTR, data ); - Z8x36_WRITE( TIMER, MASTER_INTR, (data & 0x7E) ); - Z8x36_WRITE( TIMER, CT1_TIME_CONST_MSB, 0x04 ); - Z8x36_WRITE( TIMER, CT1_TIME_CONST_LSB, 0xCE ); - Z8x36_WRITE( TIMER, CT1_MODE_SPEC, 0x83 ); - Z8x36_WRITE( TIMER, CNT_TMR_VECTOR, TIMER_VECTOR ); - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0x20 ); - Z8x36_READ ( TIMER, MASTER_INTR, data ); - Z8x36_WRITE( TIMER, MASTER_INTR, (data & 0xDA) | 0x80 ); - - /* - * ACC_IC54 - interrupt 5 will be vectored and mapped to level 6 - */ - - data = (*(rtems_unsigned8 *)0x0D00000B); - (*(rtems_unsigned8 *)0x0D00000B) = (data & 0x7F) | 0x60; - - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0xC6 ); - - atexit( Clock_exit ); - } -} - -void Clock_exit( void ) -{ - rtems_unsigned8 data; - - if ( BSP_Configuration.ticks_per_timeslice ) { - - Z8x36_READ ( TIMER, MASTER_INTR, data ); - Z8x36_WRITE( TIMER, MASTER_INTR, (data & 0x01) ); - /* do not restore old vector */ - - } -} diff --git a/c/src/lib/libbsp/m68k/dmv152/console/console.c b/c/src/lib/libbsp/m68k/dmv152/console/console.c deleted file mode 100644 index bb0f365b9c..0000000000 --- a/c/src/lib/libbsp/m68k/dmv152/console/console.c +++ /dev/null @@ -1,186 +0,0 @@ -/* - * This file contains the DMV152 console IO package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#define D152_INIT - -#include -#include "console.h" -#include "bsp.h" - -/* console_initialize - * - * This routine initializes the console IO driver. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_device_driver console_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg, - rtems_id self, - rtems_unsigned32 *status -) -{ - *status = RTEMS_SUCCESSFUL; -} - - -/* is_character_ready - * - * This routine returns TRUE if a character is available. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_boolean is_character_ready( - char *ch -) -{ - rtems_unsigned8 rr_0; - - for ( ; ; ) { - Z8x30_READ_CONTROL( CONSOLE_CONTROL, RR_0, rr_0 ); - if ( !(rr_0 & RR_0_RX_DATA_AVAILABLE) ) - return( FALSE ); - - Z8x30_READ_DATA( CONSOLE_DATA, *ch ); - return( TRUE ); - } -} - -/* inbyte - * - * This routine reads a character from the SCC. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - * character read from SCC - */ - -char inbyte( void ) -{ - rtems_unsigned8 rr_0; - char ch; - - for ( ; ; ) { - Z8x30_READ_CONTROL( CONSOLE_CONTROL, RR_0, rr_0 ); - if ( (rr_0 & RR_0_RX_DATA_AVAILABLE) != 0 ) - break; - } - - Z8x30_READ_DATA( CONSOLE_DATA, ch ); - return ( ch ); -} - -/* outbyte - * - * This routine transmits a character out the SCC. It supports - * XON/XOFF flow control. - * - * Input parameters: - * ch - character to be transmitted - * - * Output parameters: NONE - */ - -void outbyte( - char ch -) -{ - rtems_unsigned8 rr_0; - char flow_control; - - for ( ; ; ) { - Z8x30_READ_CONTROL( CONSOLE_CONTROL, RR_0, rr_0 ); - if ( (rr_0 & RR_0_TX_BUFFER_EMPTY) != 0 ) - break; - } - - for ( ; ; ) { - Z8x30_READ_CONTROL( CONSOLE_CONTROL, RR_0, rr_0 ); - if ( (rr_0 & RR_0_RX_DATA_AVAILABLE) == 0 ) - break; - - Z8x30_READ_DATA( CONSOLE_DATA, flow_control ); - - if ( flow_control == XOFF ) - do { - do { - Z8x30_READ_CONTROL( CONSOLE_CONTROL, RR_0, rr_0 ); - } while ( (rr_0 & RR_0_RX_DATA_AVAILABLE) == 0 ); - Z8x30_READ_DATA( CONSOLE_DATA, flow_control ); - } while ( flow_control != XON ); - } - - Z8x30_WRITE_DATA( CONSOLE_DATA, ch ); -} - -/* - * __read -- read bytes from the serial port. Ignore fd, since - * we only have stdin. - */ - -int __read( - int fd, - char *buf, - int nbytes -) -{ - int i = 0; - - for (i = 0; i < nbytes; i++) { - *(buf + i) = inbyte(); - if ((*(buf + i) == '\n') || (*(buf + i) == '\r')) { - (*(buf + i++)) = '\n'; - (*(buf + i)) = 0; - break; - } - } - return (i); -} - -/* - * __write -- write bytes to the serial port. Ignore fd, since - * stdout and stderr are the same. Since we have no filesystem, - * open will only return an error. - */ - -int __write( - int fd, - char *buf, - int nbytes -) -{ - int i; - - for (i = 0; i < nbytes; i++) { - if (*(buf + i) == '\n') { - outbyte ('\r'); - } - outbyte (*(buf + i)); - } - return (nbytes); -} diff --git a/c/src/lib/libbsp/m68k/dmv152/include/bsp.h b/c/src/lib/libbsp/m68k/dmv152/include/bsp.h deleted file mode 100644 index 7e4f423102..0000000000 --- a/c/src/lib/libbsp/m68k/dmv152/include/bsp.h +++ /dev/null @@ -1,169 +0,0 @@ -/* bsp.h - * - * This include file contains all DMV152 board IO definitions. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __DMV152_h -#define __DMV152_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include - -/* - * Define the time limits for RTEMS Test Suite test durations. - * Long test and short test duration limits are provided. These - * values are in seconds and need to be converted to ticks for the - * application. - * - */ - -#define MAX_LONG_TEST_DURATION 300 /* 5 minutes = 300 seconds */ -#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */ - -/* - * Define the interrupt mechanism for Time Test 27 - */ - -/* use a VMEbus interrupt */ - -#define MUST_WAIT_FOR_INTERRUPT 1 - -#define Install_tm27_vector( handler ) \ - { \ - set_vector( (handler), 0x50, 1 ); \ - (*(volatile rtems_unsigned32 *)0x0d800024) = 0x50; /* set IVECT reg */ \ - (*(volatile rtems_unsigned8 *)0x0d00000c) = 0x40; /* set VIE reg */ \ - } - -#define Cause_tm27_intr() \ - (*(volatile rtems_unsigned8 *)0x0d000003) = 0x0f /* set VINT */ - -#define Clear_tm27_intr() /* no operation necessary */ - -#define Lower_tm27_intr() - -/* - * Simple spin delay in microsecond units for device drivers. - * This is very dependent on the clock speed of the target. - */ - -#define delay( microseconds ) \ - { register rtems_unsigned32 _delay=(microseconds); \ - register rtems_unsigned32 _tmp=123; \ - asm volatile( "0: \ - nbcd %0 ; \ - nbcd %0 ; \ - dbf %1,0b" \ - : "=d" (_tmp), "=d" (_delay) \ - : "0" (_tmp), "1" (_delay) ); \ - } - -/* macros */ - -#undef Z8x36_STATE0 -#undef Z8x36_WRITE -#undef Z8x36_READ - -#define Z8x36_STATE0 ( z8536 ) \ - { char *garbage; \ - (garbage) = *(VOL8(z8536+0x7)) \ - } - -#define Z8x36_WRITE( z8536, reg, data ) \ - *(VOL8(z8536+0x7)) = (reg); \ - *(VOL8(z8536+0x7)) = (data) - -#define Z8x36_READ( z8536, reg, data ) \ - *(VOL8(z8536+0x7)) = (reg); \ - (data) = *(VOL8(z8536+0x7)) - -/* - * ACC Register Addresses - */ - -#define ACC_BASE 0x0D000000 - -#define ACC_STAT0 ((volatile rtems_unsigned8 *) (ACC_BASE + 0x00)) -#define ACC_STAT1 ((volatile rtems_unsigned8 *) (ACC_BASE + 0x01)) -#define ACC_GENCTL ((volatile rtems_unsigned8 *) (ACC_BASE + 0x02)) -#define ACC_VINT ((volatile rtems_unsigned8 *) (ACC_BASE + 0x03)) -#define ACC_VREQ ((volatile rtems_unsigned8 *) (ACC_BASE + 0x04)) -#define ACC_VARB ((volatile rtems_unsigned8 *) (ACC_BASE + 0x05)) -#define ACC_ID ((volatile rtems_unsigned8 *) (ACC_BASE + 0x06)) -#define ACC_CTL2 ((volatile rtems_unsigned8 *) (ACC_BASE + 0x07)) -#define ACC_7IS ((volatile rtems_unsigned8 *) (ACC_BASE + 0x08)) -#define ACC_LIS ((volatile rtems_unsigned8 *) (ACC_BASE + 0x09)) -#define ACC_7IE ((volatile rtems_unsigned8 *) (ACC_BASE + 0x0A)) -#define ACC_LIE ((volatile rtems_unsigned8 *) (ACC_BASE + 0x0B)) -#define ACC_VIE ((volatile rtems_unsigned8 *) (ACC_BASE + 0x0C)) -#define ACC_IC10 ((volatile rtems_unsigned8 *) (ACC_BASE + 0x0D)) -#define ACC_IC32 ((volatile rtems_unsigned8 *) (ACC_BASE + 0x0E)) -#define ACC_IC54 ((volatile rtems_unsigned8 *) (ACC_BASE + 0x0F)) - -/* constants */ - -#define RAM_START 0 -#define RAM_END 0x100000 - -#define USE_CHANNEL_A 0 /* 1 = use channel A for console */ -#define USE_CHANNEL_B 1 /* 1 = use channel B for console */ - -#define TIMER 0x0c000000 -#define TIMER_VECTOR 0x4D - -#if (USE_CHANNEL_A == 1) -#define CONSOLE_CONTROL 0x0C800007 -#define CONSOLE_DATA 0x0C800005 -#elif (USE_CHANNEL_B == 1) -#define CONSOLE_CONTROL 0x0C800001 -#define CONSOLE_DATA 0x0C800003 -#endif - -/* Structures */ - -#ifdef D152_INIT -#undef EXTERN -#define EXTERN -#else -#undef EXTERN -#define EXTERN extern -#endif - -/* miscellaneous stuff assumed to exist */ - -extern rtems_configuration_table BSP_Configuration; - -extern m68k_isr M68Kvec[]; /* vector table address */ - -/* functions */ - -void bsp_cleanup( void ); - -m68k_isr set_vector( - rtems_isr_entry handler, - rtems_vector_number vector, - int type -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/m68k/dmv152/include/coverhd.h b/c/src/lib/libbsp/m68k/dmv152/include/coverhd.h deleted file mode 100644 index 0033a50502..0000000000 --- a/c/src/lib/libbsp/m68k/dmv152/include/coverhd.h +++ /dev/null @@ -1,104 +0,0 @@ -/* coverhd.h - * - * This include file has defines to represent the overhead associated - * with calling a particular directive from C on this target. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __COVERHD_h -#define __COVERHD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 2 -#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 1 -#define CALLING_OVERHEAD_TASK_CREATE 3 -#define CALLING_OVERHEAD_TASK_IDENT 2 -#define CALLING_OVERHEAD_TASK_START 2 -#define CALLING_OVERHEAD_TASK_RESTART 2 -#define CALLING_OVERHEAD_TASK_DELETE 1 -#define CALLING_OVERHEAD_TASK_SUSPEND 1 -#define CALLING_OVERHEAD_TASK_RESUME 2 -#define CALLING_OVERHEAD_TASK_SET_PRIORITY 2 -#define CALLING_OVERHEAD_TASK_MODE 2 -#define CALLING_OVERHEAD_TASK_GET_NOTE 2 -#define CALLING_OVERHEAD_TASK_SET_NOTE 2 -#define CALLING_OVERHEAD_TASK_WAKE_WHEN 4 -#define CALLING_OVERHEAD_TASK_WAKE_AFTER 1 -#define CALLING_OVERHEAD_INTERRUPT_CATCH 2 -#define CALLING_OVERHEAD_CLOCK_GET 4 -#define CALLING_OVERHEAD_CLOCK_SET 4 -#define CALLING_OVERHEAD_CLOCK_TICK 1 - -#define CALLING_OVERHEAD_TIMER_CREATE 2 -#define CALLING_OVERHEAD_TIMER_IDENT 1 -#define CALLING_OVERHEAD_TIMER_DELETE 2 -#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 2 -#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 5 -#define CALLING_OVERHEAD_TIMER_RESET 1 -#define CALLING_OVERHEAD_TIMER_CANCEL 1 -#define CALLING_OVERHEAD_SEMAPHORE_CREATE 2 -#define CALLING_OVERHEAD_SEMAPHORE_IDENT 1 -#define CALLING_OVERHEAD_SEMAPHORE_DELETE 2 -#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 2 -#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 2 - -#define CALLING_OVERHEAD_EVENT_SEND 2 -#define CALLING_OVERHEAD_EVENT_RECEIVE 2 -#define CALLING_OVERHEAD_SIGNAL_CATCH 2 -#define CALLING_OVERHEAD_SIGNAL_SEND 2 -#define CALLING_OVERHEAD_PARTITION_CREATE 3 -#define CALLING_OVERHEAD_PARTITION_IDENT 2 -#define CALLING_OVERHEAD_PARTITION_DELETE 2 -#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 2 -#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 2 -#define CALLING_OVERHEAD_REGION_CREATE 3 -#define CALLING_OVERHEAD_REGION_IDENT 2 -#define CALLING_OVERHEAD_REGION_DELETE 1 -#define CALLING_OVERHEAD_REGION_GET_SEGMENT 3 -#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 2 -#define CALLING_OVERHEAD_PORT_CREATE 3 -#define CALLING_OVERHEAD_PORT_IDENT 2 -#define CALLING_OVERHEAD_PORT_DELETE 2 -#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 2 -#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 2 - -#define CALLING_OVERHEAD_IO_INITIALIZE 3 -#define CALLING_OVERHEAD_IO_OPEN 2 -#define CALLING_OVERHEAD_IO_CLOSE 2 -#define CALLING_OVERHEAD_IO_READ 2 -#define CALLING_OVERHEAD_IO_WRITE 2 -#define CALLING_OVERHEAD_IO_CONTROL 2 -#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 2 -#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 2 -#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 2 -#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 1 - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/m68k/dmv152/spurious/spinit.c b/c/src/lib/libbsp/m68k/dmv152/spurious/spinit.c deleted file mode 100644 index 47f6e7c0be..0000000000 --- a/c/src/lib/libbsp/m68k/dmv152/spurious/spinit.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Spurious_driver - * - * This routine installs spurious interrupt handlers for the DMV152. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993. - * On-Line Applications Research Corporation (OAR). - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -rtems_isr Spurious_Isr( - rtems_vector_number vector -) -{ - void *sp = 0; - - asm volatile ( "movea.l %%sp,%0 " : "=a" (sp) : "0" (sp) ); - - fprintf( stderr, "Vector 0x%x sp=0x%p\n", vector, sp ); -} - -rtems_device_driver Spurious_Initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - rtems_vector_number vector; - - for ( vector = 0x40 ; vector <= 0xFF ; vector++ ) - (void) set_vector( Spurious_Isr, vector, 1 ); -} diff --git a/c/src/lib/libbsp/m68k/dmv152/startup/bspstart.c b/c/src/lib/libbsp/m68k/dmv152/startup/bspstart.c deleted file mode 100644 index a0ec9b7e71..0000000000 --- a/c/src/lib/libbsp/m68k/dmv152/startup/bspstart.c +++ /dev/null @@ -1,171 +0,0 @@ -#define STACK_CHECKER_ON -/* bsp_start() - * - * This routine starts the application. It includes application, - * board, and monitor specific initialization and configuration. - * The generic CPU dependent initialization has been performed - * before this routine is invoked. - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/* - * The original table from the application and our copy of it with - * some changes. - */ - -extern rtems_configuration_table Configuration; -rtems_configuration_table BSP_Configuration; - -rtems_cpu_table Cpu_table; - -/* Initialize whatever libc we are using - * called from postdriver hook - */ - -void bsp_libc_init() -{ - extern int end; - rtems_unsigned32 heap_start; - - heap_start = (rtems_unsigned32) &end; - if (heap_start & (CPU_ALIGNMENT-1)) - heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - - RTEMS_Malloc_Initialize((void *) heap_start, 64 * 1024, 0); - - /* - * Set up for the libc handling. - */ - - if (BSP_Configuration.ticks_per_timeslice > 0) - libc_init(1); /* reentrant if possible */ - else - libc_init(0); /* non-reentrant */ - - /* - * Initialize the stack bounds checker - */ - -#ifdef STACK_CHECKER_ON - Stack_check_Initialize(); -#endif -} - -int bsp_start( - int argc, - char **argv, - char **environp -) -{ - m68k_isr *monitors_vector_table; - int index; - void *vbr; - - monitors_vector_table = (m68k_isr *)0; /* Monitor Vectors are at 0 */ - m68k_set_vbr( monitors_vector_table ); - - for ( index=2 ; index<=255 ; index++ ) - M68Kvec[ index ] = monitors_vector_table[ 32 ]; - - M68Kvec[ 2 ] = monitors_vector_table[ 2 ]; /* bus error vector */ - M68Kvec[ 4 ] = monitors_vector_table[ 4 ]; /* breakpoints vector */ - M68Kvec[ 9 ] = monitors_vector_table[ 9 ]; /* trace vector */ - - /* - * Uncommenting this seems to confuse/break the monitor on this board. - * It probably assumes the vector table is at 0. - */ - - /* m68k_set_vbr( &M68Kvec ); */ - - /* - * Adjust the VMEbus mode to round-robin. - */ - - /* - * This is only apparent with the shared memory driver which has not - * yet been supported on this target. - */ - - m68k_enable_caching(); - - /* - * we only use a hook to get the C library initialized. - */ - - Cpu_table.pretasking_hook = NULL; - - Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */ - - Cpu_table.postdriver_hook = NULL; /* Call our main() for constructors */ - - Cpu_table.idle_task = NULL; /* do not override system IDLE task */ - - Cpu_table.do_zero_of_workspace = TRUE; - - m68k_get_vbr( vbr ); - Cpu_table.interrupt_vector_table = vbr; - - Cpu_table.interrupt_stack_size = 4096; - - Cpu_table.extra_system_initialization_stack = 0; - - /* - * Copy the table - */ - - BSP_Configuration = Configuration; - - BSP_Configuration.work_space_start = (void *) - (RAM_END - BSP_Configuration.work_space_size); - - /* - * Add 1 region for Malloc in libc_low - */ - - BSP_Configuration.maximum_regions++; - - /* - * Add 1 extension for newlib libc - */ - -#ifdef RTEMS_NEWLIB - BSP_Configuration.maximum_extensions++; -#endif - - /* - * Add another extension if using the stack checker - */ - -#ifdef STACK_CHECKER_ON - BSP_Configuration.maximum_extensions++; -#endif - - rtems_initialize_executive( &BSP_Configuration, &Cpu_table ); - /* does not return */ - - /* Clock_exit is done as an atexit() function */ - - VME_interrupt_Disable( 0xff ); - - /* return like a "normal" subroutine to the monitor */ - return 0; -} diff --git a/c/src/lib/libbsp/m68k/dmv152/startup/linkcmds b/c/src/lib/libbsp/m68k/dmv152/startup/linkcmds deleted file mode 100644 index 76f43eec97..0000000000 --- a/c/src/lib/libbsp/m68k/dmv152/startup/linkcmds +++ /dev/null @@ -1,48 +0,0 @@ -/* - * This file contains directives for the GNU linker which are specific - * to the DY-4 DMV152/SVME153 boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -MEMORY - { - ram : org = 0x12800, l = 1M - } - -SECTIONS -{ - .text 0x12800 : - { - text_start = . ; - _text_start = . ; - *(.text) - etext = ALIGN( 0x10 ) ; - _etext = .; - } - .data ADDR( .text ) + SIZEOF( .text ): - { - data_start = . ; - _data_start = . ; - *(.data) - edata = ALIGN( 0x10 ) ; - _edata = .; - } - .bss ADDR( .data ) + SIZEOF( .data ): - { - bss_start = . ; - _bss_start = . ; - *(.bss) - *(COMMON) - end = . ; - _end = . ; - } -} diff --git a/c/src/lib/libbsp/m68k/dmv152/startup/vmeintr.c b/c/src/lib/libbsp/m68k/dmv152/startup/vmeintr.c deleted file mode 100644 index 700b06776d..0000000000 --- a/c/src/lib/libbsp/m68k/dmv152/startup/vmeintr.c +++ /dev/null @@ -1,60 +0,0 @@ -/* vmeintr.c - * - * VMEbus support routines for the DMV152. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -/*PAGE - * - * VME_interrupt_Disable - * - */ - -void VME_interrupt_Disable ( - VME_interrupt_Mask mask /* IN */ -) -{ - volatile rtems_unsigned8 *VME_interrupt_enable; - rtems_unsigned8 value; - - VME_interrupt_enable = ACC_VIE; - value = *VME_interrupt_enable; - - value &= ~mask; /* turn off interrupts for all levels in mask */ - - *VME_interrupt_enable = value; -} - -/*PAGE - * - * VME_interrupt_Enable - * - */ - -void VME_interrupt_Enable ( - VME_interrupt_Mask mask /* IN */ -) -{ - volatile rtems_unsigned8 *VME_interrupt_enable; - rtems_unsigned8 value; - - VME_interrupt_enable = ACC_VIE; - value = *VME_interrupt_enable; - - value |= mask; /* turn on interrupts for all levels in mask */ - - *VME_interrupt_enable = value; -} diff --git a/c/src/lib/libbsp/m68k/dmv152/timer/timer.c b/c/src/lib/libbsp/m68k/dmv152/timer/timer.c deleted file mode 100644 index 2e91a671df..0000000000 --- a/c/src/lib/libbsp/m68k/dmv152/timer/timer.c +++ /dev/null @@ -1,105 +0,0 @@ -/* timer.c - * - * NOTE: These routines will not work if the optimizer is enabled - * for some compilers. The multiple writes to the Z8036 - * may be optimized away. - * - * It is important that the timer start/stop overhead be - * determined when porting or modifying this code. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include -#include - -int Ttimer_val; -rtems_boolean Timer_driver_Find_average_overhead; - -rtems_isr timerisr(); - -void Timer_initialize() -{ - rtems_unsigned8 data; - - (void) set_vector( timerisr, TIMER_VECTOR, 0 ); /* install ISR */ - - Ttimer_val = 0; /* clear timer ISR count */ - Z8x36_READ ( TIMER, MASTER_INTR, data ); - Z8x36_WRITE( TIMER, MASTER_INTR, (data & 0x01) ); - - Z8x36_WRITE( TIMER, MASTER_CFG, 0xd4 ); - Z8x36_READ ( TIMER, MASTER_INTR, data ); - Z8x36_WRITE( TIMER, MASTER_INTR, (data & 0x7E) ); - Z8x36_WRITE( TIMER, CT1_TIME_CONST_MSB, 0x00 ); - Z8x36_WRITE( TIMER, CT1_TIME_CONST_LSB, 0x00 ); - Z8x36_WRITE( TIMER, CT1_MODE_SPEC, 0x87 ); - Z8x36_WRITE( TIMER, CNT_TMR_VECTOR, TIMER_VECTOR ); - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0x20 ); - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0x26 ); - Z8x36_READ ( TIMER, MASTER_INTR, data ); - Z8x36_WRITE( TIMER, MASTER_INTR, (data & 0xDA) | 0x80 ); - - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0xC6 ); - - /* - * ACC_IC54 - interrupt 5 will be vectored and mapped to level 6 - */ - - data = (*(rtems_unsigned8 *)0x0D00000B); - (*(rtems_unsigned8 *)0x0D00000B) = (data & 0x0F) | 0x60; - -} - -#define AVG_OVERHEAD 9 /* It typically takes 3.65 microseconds */ - /* (9 countdowns) to start/stop the timer. */ -#define LEAST_VALID 10 /* Don't trust a value lower than this */ - -int Read_timer() -{ - rtems_unsigned8 data; - rtems_unsigned8 msb, lsb; - rtems_unsigned32 remaining, total; - - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0xce ); /* read the counter value */ - Z8x36_READ( TIMER, CT1_CUR_CNT_MSB, msb ); - Z8x36_READ( TIMER, CT1_CUR_CNT_LSB, lsb ); - - remaining = 0x10000 - ((msb << 8) + lsb); - total = (Ttimer_val * 0x10000) + remaining; - - Z8x36_READ ( TIMER, MASTER_INTR, data ); - Z8x36_WRITE( TIMER, MASTER_INTR, (data & 0x01) ); - - /* do not restore old vector */ - if ( Timer_driver_Find_average_overhead == 1 ) - return total; /* in countdown units */ - - if ( total < LEAST_VALID ) - return 0; /* below timer resolution */ - - /* Clocked at 2.4615 Mhz */ - - return (int)(((float)(total-AVG_OVERHEAD)) / 2.4615 * 2.0); -} - -rtems_status_code Empty_function( void ) -{ - return RTEMS_SUCCESSFUL; -} - -void Set_find_average_overhead( - rtems_boolean find_flag -) -{ - Timer_driver_Find_average_overhead = find_flag; -} diff --git a/c/src/lib/libbsp/m68k/dmv152/timer/timerisr.s b/c/src/lib/libbsp/m68k/dmv152/timer/timerisr.s deleted file mode 100644 index d7ec593c62..0000000000 --- a/c/src/lib/libbsp/m68k/dmv152/timer/timerisr.s +++ /dev/null @@ -1,38 +0,0 @@ -/* timer_isr() - * - * This routine provides the ISR for the Z8536 timer on the DMV152 - * board. The timer is set up to generate an interrupt at maximum - * intervals. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "asm.h" - -BEGIN_CODE - -.set TIMER, 0x0c000007 | port A -.set CT1_CMD_STATUS, 0x0a | command status register -.set RELOAD, 0x26 | clr IP & IUS,allow countdown - - PUBLIC(timerisr) -SYM (timerisr): - movb #CT1_CMD_STATUS,TIMER | set pointer to cmd status reg - movb #RELOAD,TIMER | reload countdown - addql #1, SYM (Ttimer_val) | increment timer value - rte - -END_CODE -END diff --git a/c/src/lib/libbsp/m68k/idp/README b/c/src/lib/libbsp/m68k/idp/README deleted file mode 100644 index 5479acf383..0000000000 --- a/c/src/lib/libbsp/m68k/idp/README +++ /dev/null @@ -1,31 +0,0 @@ -This board support package has not been tested with multiprocessor -or the timing support. The uniprocessor IDP package was tested though -with a fairly large application (although bugs may exist). The -$RTEMS_ROOT/src/tests/Makefile should therefore have the samples and -the tests directories compiled first with the tmtests (timing) and -multiprocessor directories optional. - -Let me know if you have any problems or bug fixes. Bug fixes are greatly -appreciated. I do not work for RTEMS or am a member of the RTEMS support -group in any way, however. I am just one of many that appreciate -"free" software and enjoy contributing when possible :). You can do it too! - - -- doug mcbride - mcbride@rodin.colorado.edu - -============================================================== -Notes: Make sure that -msoft-float is defined when compiling in the -newlib-beta-rtems/newlib/msoft-float directory subtree. You also probably -want to add the following line to line 413 of -newlib-beta-rtems/newlib/msoft-float/libc/stdio/vfprintf.c: - -#define INTEGER_ONLY - -That allows you to pass most of the paranoia test in the samples -directory of RTEMS although you can't see the floating point values actually -printed (software floating point tends to make that difficult anyway). -In order to pass the whole paranoia test (with one flaw), however, I had to -comment out the following line in milestone 140 (why?): - -/* printf ("Testing X^((X + 1) / (X - 1)) vs. exp(2) = %.17e as X -> 1.\n", - Exp2); */ diff --git a/c/src/lib/libbsp/m68k/idp/clock/ckinit.c b/c/src/lib/libbsp/m68k/idp/clock/ckinit.c deleted file mode 100644 index abee1418cc..0000000000 --- a/c/src/lib/libbsp/m68k/idp/clock/ckinit.c +++ /dev/null @@ -1,126 +0,0 @@ -/* Clock_init() - * - * - * This is modified by Doug McBride to get it to work for the MC68EC040 - * IDP board. The below comments are kept to show that some prior work - * was done in the area and the modifications performed was application - * specific for the IDP board to port it to. - * - * This routine initializes the mc68230 on the MC68EC040 board. - * The tick frequency is 40 milliseconds. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include "rtems.h" -#include "clockdrv.h" -#include "bsp.h" -#include "cpu.h" - -rtems_unsigned32 Clock_isrs; /* ISRs until next tick */ -volatile rtems_unsigned32 Clock_driver_ticks; - /* ticks since initialization */ -rtems_isr_entry Old_ticker; - -extern rtems_configuration_table Configuration; -extern void led_putnum(); -void Disable_clock(); - -#define TIMER_VECTOR 0x4D - -rtems_device_driver Clock_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - Install_clock( Clock_isr ); -} - -void ReInstall_clock( clock_isr ) -rtems_isr_entry clock_isr; -{ - rtems_unsigned32 isrlevel = 0 ; - - rtems_interrupt_disable( isrlevel ); - (void) set_vector( clock_isr, TIMER_VECTOR, 1 ); - rtems_interrupt_enable( isrlevel ); -} - -/* The following was added for debugging purposes */ -void Disable_clock() -{ - /* Disable timer */ - MC68230_WRITE (TCR, 0x00); -} - -void Install_clock( clock_isr ) -rtems_isr_entry clock_isr; -{ - Clock_driver_ticks = 0; - Clock_isrs = (int)(Configuration.microseconds_per_tick / 1000); - - if ( Configuration.ticks_per_timeslice ) { -/* led_putnum('c'); * for debugging purposes */ - Old_ticker = (rtems_isr_entry) set_vector( clock_isr, TIMER_VECTOR, 1 ); - - /* Disable timer for initialization */ - MC68230_WRITE (TCR, 0x00); - - /* some PI/T initialization stuff here -- see comment in the ckisr.c - file in this directory to understand why I use the values that I do */ - /* Set up the interrupt vector on the MC68230 chip: - TIVR = TIMER_VECTOR; */ - MC68230_WRITE (TIVR, TIMER_VECTOR); - - /* Set CPRH through CPRL to 193 (not 203) decimal for countdown--see ckisr.c - CPRH = 0x00; - CPRM = 0x00; - CPRL = 0xC1; */ - MC68230_WRITE (CPRH, 0x00); - MC68230_WRITE (CPRM, 0x00); - MC68230_WRITE (CPRL, 0xC1); - - /* Enable timer and use it as an external periodic interrupt generator - TCR = 0xA1; */ -/* led_putnum('a'); * for debugging purposes */ - MC68230_WRITE (TCR, 0xA1); - - /* - * Schedule the clock cleanup routine to execute if the application exits. - */ - atexit( Clock_exit ); - } -} - -void Clock_exit( void ) -{ - rtems_unsigned8 data; - - if ( Configuration.ticks_per_timeslice ) { - - /* disable timer - data = TCR; - TCR = (data & 0xFE); */ - MC68230_READ (TCR, data); - MC68230_WRITE (TCR, (data & 0xFE)); - - /* do not restore old vector */ - } -} diff --git a/c/src/lib/libbsp/m68k/idp/console/console.c b/c/src/lib/libbsp/m68k/idp/console/console.c deleted file mode 100644 index 7bb720c120..0000000000 --- a/c/src/lib/libbsp/m68k/idp/console/console.c +++ /dev/null @@ -1,216 +0,0 @@ -/* - * This file contains the Motorola IDP console IO package. - * - * Written by Doug McBride, Colorado Space Grant College - * Based off of the board support packages of RTEMS - * - * Updated to RTEMS 3.2.0 by Joel Sherrill. - * - * $Id$ - */ - -#define MIDP_INIT - -#include "rtems.h" -#include "console.h" -#include "bsp.h" - -#include "ringbuf.h" - -Ring_buffer_t Buffer[ 2 ]; - -rtems_isr C_Receive_ISR(rtems_vector_number vector); - - -/* console_initialize - * - * This routine initializes the console IO driver. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_device_driver console_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg, - rtems_id self, - rtems_unsigned32 *status -) -{ - - Ring_buffer_Initialize( &Buffer[ 0 ] ); - Ring_buffer_Initialize( &Buffer[ 1 ] ); - - init_pit(); - - *status = RTEMS_SUCCESSFUL; -} - - -/* is_character_ready - * - * This routine returns TRUE if a character is available. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_boolean is_character_ready( - char *ch, - int port -) -{ - if ( Ring_buffer_Is_empty( &Buffer[ port ] ) ) - return FALSE; - - Ring_buffer_Remove_character( &Buffer[ port ], *ch ); - return TRUE; -} - -/* quick_char_check - * - * This routine returns TRUE if a character is available. - * It is different from above because it does not disturb the ring buffer - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_boolean quick_char_check( - int port -) -{ - if ( Ring_buffer_Is_empty( &Buffer[ port ] ) ) - return FALSE; - - return TRUE; -} - -/* inbyte - * - * This routine reads a character from the UART through a buffer. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - * character read from UART - */ - -char inbyte( - int port -) -{ - unsigned char tmp_char; - - /* If you come into this routine without checking is_character_ready() first - and you want nonblocking code, then it's your own fault */ - - while ( !is_character_ready( &tmp_char, port ) ); - - return tmp_char; -} - - -/* outbyte - * - * This routine transmits a character out the M68681. It supports - * XON/XOFF flow control. - * - * Input parameters: - * ch - character to be transmitted - * - * Output parameters: NONE - */ - -void outbyte( - char ch, - int port -) -{ - switch ( port ) { - case 0: - transmit_char( ch ); - break; - case 1: - transmit_char_portb( ch ); - break; - } - -} - -/* - * __read -- read bytes from the serial port. Ignore fd, since - * we only have stdin. - */ - -int __read( - int fd, - char *buf, - int nbytes -) -{ - int i = 0; - int port; - - /* - * Map port A to stdin, stdout, and stderr. - * Map everything else to port B. - */ - - if ( fd <= 2 ) port = 0; - else port = 1; - - for (i = 0; i < nbytes; i++) { - *(buf + i) = inbyte( port ); - if ((*(buf + i) == '\n') || (*(buf + i) == '\r')) { - (*(buf + i++)) = '\n'; - (*(buf + i)) = 0; - break; - } - } - return (i); -} - -/* - * __write -- write bytes to the serial port. Ignore fd, since - * stdout and stderr are the same. Since we have no filesystem, - * open will only return an error. - */ - -int __write( - int fd, - char *buf, - int nbytes -) -{ - int i; - int port; - - /* - * Map port A to stdin, stdout, and stderr. - * Map everything else to port B. - */ - - if ( fd <= 2 ) port = 0; - else port = 1; - - for (i = 0; i < nbytes; i++) { - if (*(buf + i) == '\n') { - outbyte ('\r', port ); - } - outbyte (*(buf + i), port ); - } - return (nbytes); -} diff --git a/c/src/lib/libbsp/m68k/idp/console/duart.c b/c/src/lib/libbsp/m68k/idp/console/duart.c deleted file mode 100644 index c3ee92b75b..0000000000 --- a/c/src/lib/libbsp/m68k/idp/console/duart.c +++ /dev/null @@ -1,170 +0,0 @@ -/*######################################################### -# -# This code is a modified version of what you will find at the -# end of the IDP User's manual. The original code is copyrighted -# by Motorola and Motorola Semiconductor Products as well as -# Motorola Software products group. -# -# Modifications to the original IDP code by Doug McBride, Colorado -# Space Grant College. Modifications include a means of accessing -# port B of the duart as well as port A as well as modifications for -# buffering and RTEMS support. Modifications are provided -# as is and may not be correct. -# -# Rob Savoye provided the format for the mc68681 header file -# -# Joel Sherrill provided inspiration for recoding my original assembly -# for this file into C (a good idea) -# -##########################################################*/ - -#include "mc68230.h" -#include "mc68681.h" -#include "ringbuf.h" -#include "rtems.h" -#include "bsp.h" - -rtems_isr C_Receive_ISR(rtems_vector_number vector); -extern Ring_buffer_t Buffer[]; - -extern unsigned char inbuf[]; -extern unsigned char inbuf_portb[]; -extern unsigned tail; -extern unsigned tail_portb; -unsigned char Pit_initialized = 0; - -/*##################################################################### -# The volatile routine to initialize the duart -- port a and port b -######################################################################*/ -volatile void init_pit() -{ - /* Disable ports A & B while configuring PIT */ - MC68681_WRITE(DUART_IMR, 0x00); /* disable imr */ - MC68681_WRITE(DUART_CRA, 0x08); /* disable port a transmitter */ - MC68681_WRITE(DUART_CRA, 0x02); /* disable port a receiver */ - MC68681_WRITE(DUART_CRB, 0x08); /* disable port b transmitter */ - MC68681_WRITE(DUART_CRB, 0x02); /* disable port b receiver */ - - /* install ISR for ports A and B */ - set_vector(C_Receive_ISR, (VECT+H3VECT), 1); - - /* initialize pit */ - MC68230_WRITE(PGCR, 0x00); /* set mode to 0 -- disable all ports */ - MC68230_WRITE(PSRR, 0x18); /* set up pirq and piack */ - MC68230_WRITE(PBDDR, 0x00); /* all pins on port b are input */ - MC68230_WRITE(PBCR, 0x82); /* submode 1x, h3 interrupt enabled */ - MC68230_WRITE(PIVR, VECT); /* setup pivr */ - MC68230_WRITE(PGCR, 0x20); /* turn on all ports */ - - /* For some reason, the reset of receiver/transmitter only works for - the first time around -- it garbles the output otherwise (e.g., sp21) */ - if (!Pit_initialized) - { - /* now initialize the duart registers on port b */ - /* WARNING:OPTIMIZER MAY ONLY EXECUTE THIRD STATEMENT IF NOT VOLATILE */ - MC68681_WRITE(DUART_CRB, 0x30); /* reset tx, channel b */ - MC68681_WRITE(DUART_CRB, 0x20); /* reset rx, channel b */ - MC68681_WRITE(DUART_CRB, 0x10); /* reset mr pointer, channel b */ - - /* now initialize the duart registers on port a */ - /* WARNING:OPTIMIZER MAY ONLY EXECUTE THIRD STATEMENT IF NOT VOLATILE */ - MC68681_WRITE(DUART_CRA, 0x30); /* reset tx, channel a */ - MC68681_WRITE(DUART_CRA, 0x20); /* reset rx, channel a */ - MC68681_WRITE(DUART_CRA, 0x10); /* reset mr pointer, channel a */ - Pit_initialized = 1; - } - - /* init the general registers of the duart */ - MC68681_WRITE(DUART_IVR, 0x0f); /* init ivr */ - MC68681_WRITE(DUART_IMR, 0x22); /* init imr */ - MC68681_WRITE(DUART_ACR, 0x00); /* init acr */ - MC68681_WRITE(DUART_CTUR, 0x00); /* init ctur */ - MC68681_WRITE(DUART_CTLR, 0x02); /* init ctlr */ - MC68681_WRITE(DUART_OPCR, 0x00); /* init opcr */ - MC68681_WRITE(DUART_OPRSET, 0x01); /* init cts */ - - /* init the actual serial port for port a */ - MC68681_WRITE(DUART_CSRA, 0xbb); /* init csra -- 9600 baud */ - MC68681_WRITE(DUART_MR1A, 0x13); /* init mr1a */ - MC68681_WRITE(DUART_MR2A, 0x07); /* init mr2a */ - MC68681_WRITE(DUART_CRA, 0x05); /* init cra */ - - /* init the actual serial port for port b */ - MC68681_WRITE(DUART_CSRB, 0xbb); /* init csrb -- 9600 baud */ -#define EIGHT_BITS_NO_PARITY -#ifdef EIGHT_BITS_NO_PARITY - MC68681_WRITE(DUART_MR1B, 0x13); /* init mr1b */ -#else /* 7 bits, even parity */ - MC68681_WRITE(DUART_MR1B, 0x02); /* init mr1b */ -#endif - MC68681_WRITE(DUART_MR2B, 0x07); /* init mr2b -- one stop bit */ - MC68681_WRITE(DUART_CRB, 0x05); /* init crb */ -} - -/*##################################################################### -# interrupt handler for receive of character from duart on ports A & B -#####################################################################*/ -rtems_isr C_Receive_ISR(rtems_vector_number vector) -{ - volatile unsigned char *_addr; - - _addr = (unsigned char *) (PIT_ADDR + PITSR); - *_addr = 0x04; /* clear pit interrupt */ - - /* Let's check port A first for input */ - _addr = (unsigned char *) (DUART_ADDR + DUART_SRA); - if (*_addr & 0x01) /* extract rcvrdy on port A */ - { - /* Read input on port A */ - _addr = (unsigned char *) (DUART_ADDR + DUART_RBA); - Ring_buffer_Add_character( &Buffer[ 0 ], *_addr ); - } - else /* If not on port A, let's check port B */ - { - _addr = (unsigned char *) (DUART_ADDR + DUART_SRB); - if (*_addr & 0x01) /* extract rcvrdy on port B */ - { - /* Read input on port B */ - _addr = (unsigned char *) (DUART_ADDR + DUART_RBB); - Ring_buffer_Add_character( &Buffer[ 1 ], *_addr ); - } - /* if not ready on port A or port B, must be an error */ - /* if error, get out so that fifo is undisturbed */ - } -} - -/*##################################################################### -# This is the routine that actually transmits a character one at a time -# This routine transmits on port A of the IDP board -#####################################################################*/ -void transmit_char(char ch) -{ - volatile unsigned char *_addr; - - /* Get SRA (extract txrdy) */ - _addr = (unsigned char *) (DUART_ADDR + DUART_SRA); - while (!(*_addr & 0x04)) - { - } - - /* transmit character over port A */ - MC68681_WRITE(DUART_TBA, ch); -} - -/*##################################################################### -# This is the routine that actually transmits a character one at a time -# This routine transmits on port B of the IDP board -#####################################################################*/ -void transmit_char_portb(char ch) -{ - volatile unsigned char *_addr; - - /* Get SRB (extract txrdy) */ - _addr = (unsigned char *) (DUART_ADDR + DUART_SRB); - while (!(*_addr & 0x04)) - { - } - - /* transmit character over port B */ - MC68681_WRITE(DUART_TBB, ch); -} diff --git a/c/src/lib/libbsp/m68k/idp/console/leds.c b/c/src/lib/libbsp/m68k/idp/console/leds.c deleted file mode 100644 index 4d7abaf93d..0000000000 --- a/c/src/lib/libbsp/m68k/idp/console/leds.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * leds.c -- control the led's on a Motorola mc68ec0x0 board. - * Written by rob@cygnus.com (Rob Savoye) - */ -#include "leds.h" - -void zylons(); -void led_putnum(); -void clear_leds(); - -/* - * led_putnum -- print a hex number on the LED. the value of num must be a char with - * the ascii value. ie... number 0 is '0', a is 'a', ' ' (null) clears - * the led display. - * Setting the bit to 0 turns it on, 1 turns it off. - * the LED's are controlled by setting the right bit mask in the base - * address. - * The bits are: - * [d.p | g | f | e | d | c | b | a ] is the byte. - * - * The locations are: - * - * a - * ----- - * f | | b - * | g | - * ----- - * | | - * e | | c - * ----- - * d . d.p (decimal point) - */ -void -led_putnum ( num ) -char num; -{ - static unsigned char *leds = (unsigned char *)LED_ADDR; - static unsigned char num_bits [18] = { - 0xff, /* clear all */ - 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x98, /* numbers 0-9 */ - 0x98, 0x20, 0x3, 0x27, 0x21, 0x4, 0xe /* letters a-f */ - }; - - if (num >= '0' && num <= '9') - num = (num - '0') + 1; - - if (num >= 'a' && num <= 'f') - num = (num - 'a') + 12; - - if (num == ' ') - num = 0; - - *leds = num_bits[(int)num]; -} - -/* This procedure added by Doug McBride, Colorado Space Grant College -- - Probably should be a macro instead */ -void -clear_leds ( ) -{ - static unsigned char *leds = (unsigned char *)LED_ADDR; - *leds = 0xFF; -} - -/* - * zylons -- draw a rotating pattern. NOTE: this function never returns. - */ -void -zylons() -{ - unsigned char *leds = (unsigned char *)LED_ADDR; - unsigned char curled = 0xfe; - - while (1) - { - *leds = curled; - curled = (curled >> 1) | (curled << 7); - delay ( 8000 ); - } -} diff --git a/c/src/lib/libbsp/m68k/idp/console/mc68ec.c b/c/src/lib/libbsp/m68k/idp/console/mc68ec.c deleted file mode 100644 index dd6956c3e9..0000000000 --- a/c/src/lib/libbsp/m68k/idp/console/mc68ec.c +++ /dev/null @@ -1,18 +0,0 @@ -/* - * mc68ec.c -- Low level support for the Motorola mc68ec0x0 board. - * Written by rob@cygnus.com (Rob Savoye) - */ -#include "leds.h" - -/* - * delay -- delay execution. This is an ugly hack. It should - * use the timer, but I'm waiting for docs. (sigh) - */ -void delay(num) -int num; -{ - while (num--) - { - asm ("nop"); - } -} diff --git a/c/src/lib/libbsp/m68k/idp/include/README b/c/src/lib/libbsp/m68k/idp/include/README deleted file mode 100644 index 940cadb13d..0000000000 --- a/c/src/lib/libbsp/m68k/idp/include/README +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# - -The following files really should be made generic and allowed to -be shared between BSPs: - - mc68230.h - mc68681.h - ringbuf.h - -However at the moment the BSP is not tested under 3.2.0 so it is -dangerous to do so. diff --git a/c/src/lib/libbsp/m68k/idp/include/bsp.h b/c/src/lib/libbsp/m68k/idp/include/bsp.h deleted file mode 100644 index ec8221f1f9..0000000000 --- a/c/src/lib/libbsp/m68k/idp/include/bsp.h +++ /dev/null @@ -1,79 +0,0 @@ -/* bsp.h - * - * This include file contains all Motorola 680x0 IDP board IO definitions. - * - * $Id$ - */ - -#ifndef __IDP_BSP_H -#define __IDP_BSP_H - -#include "rtems.h" -#include "cpu.h" -#include "console.h" -#include "mc68230.h" -#include "mc68681.h" - -/* - * Define the time limits for RTEMS Test Suite test durations. - * Long test and short test duration limits are provided. These - * values are in seconds and need to be converted to ticks for the - * application. - */ - -#define MAX_LONG_TEST_DURATION 300 /* 5 minutes = 300 seconds */ -#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */ - -/* - * Define the interrupt mechanism for Time Test 27 - * - * NOTE: tm27 apparently not supported. - */ - -#define MUST_WAIT_FOR_INTERRUPT 0 - -#define Install_tm27_vector( handler ) - -#define Cause_tm27_intr() - -#define Clear_tm27_intr() - -#define Lower_tm27_intr() - -/* Constants */ - -#define RAM_START 0 -#define RAM_END 0x200000 - -#ifdef MIDP_INIT -#undef EXTERN -#define EXTERN -#else -#undef EXTERN -#define EXTERN extern -#endif - -/* miscellaneous stuff assumed to exist */ - -extern rtems_configuration_table BSP_Configuration; - -extern m68k_isr M68Kvec[]; /* vector table address */ - -/* functions */ - -void bsp_cleanup( void ); - -m68k_isr set_vector( - rtems_isr_entry handler, - rtems_vector_number vector, - int type -); - -void init_pit( void ); - -void transmit_char( char ch ); - -void transmit_char_portb( char ch ); - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/m68k/idp/include/coverhd.h b/c/src/lib/libbsp/m68k/idp/include/coverhd.h deleted file mode 100644 index 671f20d197..0000000000 --- a/c/src/lib/libbsp/m68k/idp/include/coverhd.h +++ /dev/null @@ -1,106 +0,0 @@ -/* coverhd.h - * - * This include file has defines to represent the overhead associated - * with calling a particular directive from C. These are used in the - * Timing Test Suite to ignore the overhead required to pass arguments - * to directives. On some CPUs and/or target boards, this overhead - * is significant and makes it difficult to distinguish internal - * RTEMS execution time from that used to call the directive. - * This file should be updated after running the C overhead timing - * test. Once this update has been performed, the RTEMS Time Test - * Suite should be rebuilt to account for these overhead times in the - * timing results. - * - * NOTE: If these are all zero, then the times reported include all - * all calling overhead including passing of arguments. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __COVERHD_h -#define __COVERHD_h - -#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 0 -#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 0 -#define CALLING_OVERHEAD_TASK_CREATE 0 -#define CALLING_OVERHEAD_TASK_IDENT 0 -#define CALLING_OVERHEAD_TASK_START 0 -#define CALLING_OVERHEAD_TASK_RESTART 0 -#define CALLING_OVERHEAD_TASK_DELETE 0 -#define CALLING_OVERHEAD_TASK_SUSPEND 0 -#define CALLING_OVERHEAD_TASK_RESUME 0 -#define CALLING_OVERHEAD_TASK_SET_PRIORITY 0 -#define CALLING_OVERHEAD_TASK_MODE 0 -#define CALLING_OVERHEAD_TASK_GET_NOTE 0 -#define CALLING_OVERHEAD_TASK_SET_NOTE 0 -#define CALLING_OVERHEAD_TASK_WAKE_WHEN 0 -#define CALLING_OVERHEAD_TASK_WAKE_AFTER 0 -#define CALLING_OVERHEAD_INTERRUPT_CATCH 0 -#define CALLING_OVERHEAD_CLOCK_GET 0 -#define CALLING_OVERHEAD_CLOCK_SET 0 -#define CALLING_OVERHEAD_CLOCK_TICK 0 - -#define CALLING_OVERHEAD_TIMER_CREATE 0 -#define CALLING_OVERHEAD_TIMER_IDENT 0 -#define CALLING_OVERHEAD_TIMER_DELETE 0 -#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 0 -#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 0 -#define CALLING_OVERHEAD_TIMER_RESET 0 -#define CALLING_OVERHEAD_TIMER_CANCEL 0 -#define CALLING_OVERHEAD_SEMAPHORE_CREATE 0 -#define CALLING_OVERHEAD_SEMAPHORE_IDENT 0 -#define CALLING_OVERHEAD_SEMAPHORE_DELETE 0 -#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 0 -#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 0 - -#define CALLING_OVERHEAD_EVENT_SEND 0 -#define CALLING_OVERHEAD_EVENT_RECEIVE 0 -#define CALLING_OVERHEAD_SIGNAL_CATCH 0 -#define CALLING_OVERHEAD_SIGNAL_SEND 0 -#define CALLING_OVERHEAD_PARTITION_CREATE 0 -#define CALLING_OVERHEAD_PARTITION_IDENT 0 -#define CALLING_OVERHEAD_PARTITION_DELETE 0 -#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 0 -#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 0 -#define CALLING_OVERHEAD_REGION_CREATE 0 -#define CALLING_OVERHEAD_REGION_IDENT 0 -#define CALLING_OVERHEAD_REGION_DELETE 0 -#define CALLING_OVERHEAD_REGION_GET_SEGMENT 0 -#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 0 -#define CALLING_OVERHEAD_PORT_CREATE 0 -#define CALLING_OVERHEAD_PORT_IDENT 0 -#define CALLING_OVERHEAD_PORT_DELETE 0 -#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 0 -#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 0 - -#define CALLING_OVERHEAD_IO_INITIALIZE 0 -#define CALLING_OVERHEAD_IO_OPEN 0 -#define CALLING_OVERHEAD_IO_CLOSE 0 -#define CALLING_OVERHEAD_IO_READ 0 -#define CALLING_OVERHEAD_IO_WRITE 0 -#define CALLING_OVERHEAD_IO_CONTROL 0 -#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 0 -#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 0 - -#endif diff --git a/c/src/lib/libbsp/m68k/idp/include/leds.h b/c/src/lib/libbsp/m68k/idp/include/leds.h deleted file mode 100644 index 79df8488d8..0000000000 --- a/c/src/lib/libbsp/m68k/idp/include/leds.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * leds.c -- control the led's on a Motorola mc68ec0x0 board. - * Written by rob@cygnus.com (Rob Savoye) - */ - -#ifndef __LEDS_H__ -#define __LEDS_H__ - -#define LED_ADDR 0xd00003 -#define LED_0 ~0x1 -#define LED_1 ~0x2 -#define LED_2 ~0x4 -#define LED_3 ~0x8 -#define LED_4 ~0x10 -#define LED_5 ~0x20 -#define LED_6 ~0x40 -#define LED_7 ~0x80 -#define LEDS_OFF 0xff -#define LEDS_ON 0x0 - -#define FUDGE(x) ((x >= 0xa && x <= 0xf) ? (x + 'a') & 0x7f : (x + '0') & 0x7f) - -extern void led_putnum( char ); - -#endif /* __LEDS_H__ */ diff --git a/c/src/lib/libbsp/m68k/idp/startup/bspstart.c b/c/src/lib/libbsp/m68k/idp/startup/bspstart.c deleted file mode 100644 index 843a137485..0000000000 --- a/c/src/lib/libbsp/m68k/idp/startup/bspstart.c +++ /dev/null @@ -1,175 +0,0 @@ -/* bsp_start() - * - * This routine starts the application. It includes application, - * board, and monitor specific initialization and configuration. - * The generic CPU dependent initialization has been performed - * before this routine is invoked. - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "rtems.h" -#include "bsp.h" -#include "cpu.h" -#include "libcsupport.h" - -unsigned char *duart_base; -extern struct duart_regs duart_info; - -#define DELAY 5000 - -void led_putnum(); - -/* - * The original table from the application and our copy of it with - * some changes. - */ - -extern rtems_configuration_table Configuration; -rtems_configuration_table BSP_Configuration; - -rtems_cpu_table Cpu_table; - -/* Initialize whatever libc we are using - * called from postdriver hook - */ - -void bsp_libc_init() -{ - extern int end; - rtems_unsigned32 heap_start; - - heap_start = (rtems_unsigned32) &end; - if (heap_start & (CPU_ALIGNMENT-1)) - heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - - /* Create 64 KByte memory region for RTEMS executive */ - RTEMS_Malloc_Initialize((void *) heap_start, 64 * 1024, 0); - - /* - * Set up for the libc handling. - */ - - if (BSP_Configuration.ticks_per_timeslice > 0) - libc_init(1); /* reentrant if possible */ - else - libc_init(0); /* non-reentrant */ - - /* - * Initialize the stack bounds checker - */ - -#ifdef STACK_CHECKER_ON - Stack_check_Initialize(); -#endif -} - - -int bsp_start( - int argc, - char **argv, - char **environp -) -{ - m68k_isr *monitors_vector_table; - int index; - - duart_base = (unsigned char *)DUART_ADDR; - - /* - * Set the VBR here to the monitor's default. - */ - - monitors_vector_table = (m68k_isr *)0; /* This is where - you set vector base - register = 0 */ - m68k_set_vbr( monitors_vector_table ); - - /* The vector interrupt table for the 680x0 is in appendix B-2 - of the M68000 Family Programmer's reference table */ - for ( index=2 ; index<=255 ; index++ ) - M68Kvec[ index ] = monitors_vector_table[ 32 ]; - - - M68Kvec[ 2 ] = monitors_vector_table[ 2 ]; /* bus error vector */ - M68Kvec[ 4 ] = monitors_vector_table[ 4 ]; /* breakpoints vector */ - M68Kvec[ 9 ] = monitors_vector_table[ 9 ]; /* trace vector */ - - /* - * Set the VBR here if you do not want to use the monitor's vector table. - */ - - m68k_set_vbr( &M68Kvec ); - - m68k_enable_caching(); - - /* - * we only use a hook to get the C library initialized. - */ - - Cpu_table.pretasking_hook = NULL; - - Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */ - - Cpu_table.postdriver_hook = NULL; - - Cpu_table.idle_task = NULL; /* do not override system IDLE task */ - - Cpu_table.do_zero_of_workspace = TRUE; - - Cpu_table.interrupt_vector_table = (m68k_isr *) &M68Kvec; - - Cpu_table.interrupt_stack_size = 4096; - - Cpu_table.extra_system_initialization_stack = 0; - - /* - * Copy the table - */ - - BSP_Configuration = Configuration; - - BSP_Configuration.work_space_start = (void *) - (RAM_END - BSP_Configuration.work_space_size); - - /* - * Add 1 region for the RTEMS Malloc - */ - - BSP_Configuration.maximum_regions++; - - /* - * Add 1 extension for newlib libc - */ - -#ifdef RTEMS_NEWLIB - BSP_Configuration.maximum_extensions++; -#endif - - /* - * Add another extension if using the stack checker - */ - -#ifdef STACK_CHECKER_ON - BSP_Configuration.maximum_extensions++; -#endif - -/* led_putnum('e'); * for debugging purposes only */ - rtems_initialize_executive( &BSP_Configuration, &Cpu_table );/* does not return */ - - /* Clock_exit is done as an atexit() function */ - - return 0; -} diff --git a/c/src/lib/libbsp/m68k/idp/startup/linkcmds b/c/src/lib/libbsp/m68k/idp/startup/linkcmds deleted file mode 100644 index be546b11f5..0000000000 --- a/c/src/lib/libbsp/m68k/idp/startup/linkcmds +++ /dev/null @@ -1,44 +0,0 @@ -/* This file is a derivation of that found with the newlib-1.6 distribution - * for the idp.ld file. That file, it appears, was originally written by - * Rob Savoye. Other ideas came from Joel Sherrill for the RTEMS linkcmds - * file (this is basically a mixture of the two). - */ - -/* - * Setup the memory map of the MC68ec0x0 Board (IDP) - * stack grows up towards high memory. This works for - * both the rom68k and the mon68k monitors. - */ -MEMORY -{ - ram : org = 0x10000, l = 2M -} - -SECTIONS -{ - .text 0x10000: - { - text_start = . ; - _text_start = . ; - *(.text) - etext = ALIGN( 0x10 ) ; - _etext = .; - } - .data ADDR( .text ) + SIZEOF( .text ): - { - data_start = . ; - _data_start = .; - *(.data) - edata = ALIGN( 0x10 ) ; - _edata = .; - } - .bss ADDR( .data ) + SIZEOF( .data ): - { - bss_start = . ; - _bss_start = . ; - *(.bss) - *(COMMON) - end = . ; - _end = . ; - } -} diff --git a/c/src/lib/libbsp/m68k/idp/timer/timer.c b/c/src/lib/libbsp/m68k/idp/timer/timer.c deleted file mode 100644 index 176f393e45..0000000000 --- a/c/src/lib/libbsp/m68k/idp/timer/timer.c +++ /dev/null @@ -1,121 +0,0 @@ -/* Timer_init() - * - * This routine initializes the MC68230 timer on the Motorola IDP board. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * NOTE: This routine will not work if the optimizer is enabled - * for some compilers. The multiple writes to the MC68230 - * may be optimized away. - * - * It is important that the timer start/stop overhead be - * determined when porting or modifying this code. - * - * Code Modified for the MC68230 by Doug McBride, Colorado Space Grant College - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include "rtems.h" -#include "cpu.h" -#include "bsp.h" -#include "mc68230.h" - -#define TIMER_VECTOR 0x4D - -int Ttimer_val; -rtems_boolean Timer_driver_Find_average_overhead; - -rtems_isr timerisr(); - -void Timer_initialize() -{ - (void) set_vector( timerisr, TIMER_VECTOR, 0 ); /* install ISR */ - - Ttimer_val = 0; /* clear timer ISR count */ - - /* some PI/T initialization stuff here */ - /* Set up the interrupt vector on the MC68230 chip: - TIVR = TIMER_VECTOR; */ - MC68230_WRITE (TIVR, TIMER_VECTOR); - - /* Set CPRH through CPRL to maximum count to reduce interrupt overhead - CPRH = 0xFF; - CPRM = 0xFF; - CPRL = 0xFF; */ - MC68230_WRITE (CPRH, 0xFF); - MC68230_WRITE (CPRM, 0xFF); - MC68230_WRITE (CPRL, 0xFF); - - /* Enable timer and use it as an external periodic interrupt generator - TCR = 0xA1; */ - MC68230_WRITE (TCR, 0xA1); - -} - -#define AVG_OVERHEAD 9 /* may not be right -- do this later */ -#define LEAST_VALID 10 /* Don't trust a value lower than this */ - -int Read_timer() -{ - rtems_unsigned8 data; - rtems_unsigned8 msb, osb, lsb; - rtems_unsigned32 remaining, total; - - /* Disable timer so that timer can be read - data = TCR; - TCR = (data & 0xFE); */ - MC68230_READ (TCR, data); - MC68230_WRITE (TCR, (data & 0xFE)); - - /* Read the counter value - msb = CNTRH; - osb = CNTRM; - lsb = CNTRL; */ - MC68230_READ (CNTRH, msb); - MC68230_READ (CNTRM, osb); - MC68230_READ (CNTRL, lsb); - - /* Calculate the time so far */ - remaining = 0x1000000 - ((msb << 16) + (osb << 8) + lsb); - total = (Ttimer_val * 0x1000000) + remaining; - - /* Enable timer so that timer can continue - TCR = 0xA1; */ - MC68230_WRITE (TCR, 0xA1); - - /* do not restore old vector */ - if ( Timer_driver_Find_average_overhead == 1 ) - return total; /* in countdown units */ - - if ( total < LEAST_VALID ) - return 0; /* below timer resolution */ - - /* Clocked at 6.5 Mhz */ - /* Avoid floating point problems, be lazy, and return the total minus - the average overhead */ - return (total - AVG_OVERHEAD); -} - -rtems_status_code Empty_function( void ) -{ - return RTEMS_SUCCESSFUL; -} - -void Set_find_average_overhead( - rtems_boolean find_flag -) -{ - Timer_driver_Find_average_overhead = find_flag; -} diff --git a/c/src/lib/libbsp/m68k/idp/timer/timerisr.s b/c/src/lib/libbsp/m68k/idp/timer/timerisr.s deleted file mode 100644 index cd8173be52..0000000000 --- a/c/src/lib/libbsp/m68k/idp/timer/timerisr.s +++ /dev/null @@ -1,38 +0,0 @@ -/* timer_isr() - * - * This routine provides the ISR for the MC68230 timer on the Motorola - * IDP board. The timer is set up to generate an interrupt at maximum - * intervals. - * - * Code modified by Doug McBride, Colorado Space Grant College - * countdown should be loaded automatically - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "asm.h" - -BEGIN_CODE - -.set TSR, 0x00c0106B | base address of PIT register "TSR" - - PUBLIC (timerisr) -SYM (timerisr): - movb #1,TSR | acknowledge interrupt - addql #1, SYM (Ttimer_val) | increment timer value - rte - -END_CODE -END diff --git a/c/src/lib/libbsp/m68k/mvme136/clock/ckinit.c b/c/src/lib/libbsp/m68k/mvme136/clock/ckinit.c deleted file mode 100644 index de88fe9252..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/clock/ckinit.c +++ /dev/null @@ -1,111 +0,0 @@ -/* Clock_init() - * - * This routine initializes the Z80386 1 on the MVME136 board. - * The tick frequency is 1 millisecond. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include - -#define MICRVAL 0xe2 /* disable lower chain, no vec */ - /* set right justified addr */ - /* and master int enable */ -#define MCCRVAL 0xc4 /* enable T1 and port B */ - /* timers independent */ -#define MS_COUNT 0x07d0 /* T1's countdown constant (1 ms) */ -#define T1MSRVAL 0x80 /* T1 cont. cycle/pulse output */ -#define T1CSRVAL 0xc6 /* enable interrupt, allow and */ - /* and trigger countdown */ - -rtems_unsigned32 Clock_isrs; /* ISRs until next tick */ -volatile rtems_unsigned32 Clock_driver_ticks; - /* ticks since initialization */ -rtems_isr_entry Old_ticker; - -rtems_device_driver Clock_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - Install_clock( Clock_isr ); -} - -void ReInstall_clock( - rtems_isr_entry clock_isr -) -{ - rtems_unsigned32 isrlevel; - - rtems_interrupt_disable( isrlevel ); - (void) set_vector( clock_isr, 66, 1 ); - rtems_interrupt_enable( isrlevel ); -} - -void Install_clock( - rtems_isr_entry clock_isr -) -{ - volatile struct z8036_map *timer; - - Clock_driver_ticks = 0; - Clock_isrs = BSP_Configuration.microseconds_per_tick / 1000; - - if ( BSP_Configuration.ticks_per_timeslice ) { - Old_ticker = (rtems_isr_entry) set_vector( clock_isr, 66, 1 ); - timer = (struct z8036_map *) 0xfffb0000; - timer->MASTER_INTR = MICRVAL; - timer->CT1_MODE_SPEC = T1MSRVAL; - - *((rtems_unsigned16 *)0xfffb0016) = MS_COUNT; /* write countdown value */ -/* - timer->CT1_TIME_CONST_MSB = (MS_COUNT >> 8); - timer->CT1_TIME_CONST_LSB = (MS_COUNT & 0xff); -*/ - timer->MASTER_CFG = MCCRVAL; - timer->CT1_CMD_STATUS = T1CSRVAL; - -/* - * Enable interrupt via VME interrupt mask register - */ - (*(rtems_unsigned8 *)0xfffb0038) &= 0xfd; - - - atexit( Clock_exit ); - } - -} - -void Clock_exit( void ) -{ - volatile struct z8036_map *timer; - - if ( BSP_Configuration.ticks_per_timeslice ) { - timer = (struct z8036_map *) 0xfffb0000; - timer->MASTER_INTR = 0x62; - timer->CT1_MODE_SPEC = 0x00; - timer->MASTER_CFG = 0xf4; - timer->CT1_CMD_STATUS = 0x00; - /* do not restore old vector */ - } -} diff --git a/c/src/lib/libbsp/m68k/mvme136/console/console.c b/c/src/lib/libbsp/m68k/mvme136/console/console.c deleted file mode 100644 index 6bfcf84481..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/console/console.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - * This file contains the MVME136 console IO package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#define M136_INIT - -#include -#include "console.h" -#include "bsp.h" - -/* console_initialize - * - * This routine initializes the console IO driver. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_device_driver console_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg, - rtems_id self, - rtems_unsigned32 *status -) -{ - _Write_m681 = ( struct w_m681_info * ) M681ADDR; - _Read_m681 = ( struct r_m681_info * ) M681ADDR; - *status = RTEMS_SUCCESSFUL; -} - - -/* is_character_ready - * - * This routine returns TRUE if a character is available. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_boolean is_character_ready( - char *ch -) -{ - if ( !(_Read_m681->srb & RXRDYB) ) - return(FALSE); - - *ch = _Read_m681->rbb; - return(TRUE); -} - -/* inbyte - * - * This routine reads a character from the UART. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - * character read from UART - */ - -char inbyte( void ) -{ - while ( !(_Read_m681->srb & RXRDYB) ); - return _Read_m681->rbb; -} - - -/* outbyte - * - * This routine transmits a character out the M68681. It supports - * XON/XOFF flow control. - * - * Input parameters: - * ch - character to be transmitted - * - * Output parameters: NONE - */ - -void outbyte( - char ch -) -{ - while ( ! (_Read_m681->srb & TXRDYB) ) ; - while ( _Read_m681->srb & RXRDYB ) /* must be an XOFF */ - if ( _Read_m681->rbb == XOFF ) - do { - while ( ! (_Read_m681->srb & RXRDYB) ) ; - } while ( _Read_m681->rbb != XON ); - - _Write_m681->tbb = ch; - if ( ch == '\n' ) - outbyte( CR ); -} - -/* - * __read -- read bytes from the serial port. Ignore fd, since - * we only have stdin. - */ - -int __read( - int fd, - char *buf, - int nbytes -) -{ - int i = 0; - - for (i = 0; i < nbytes; i++) { - *(buf + i) = inbyte(); - if ((*(buf + i) == '\n') || (*(buf + i) == '\r')) { - (*(buf + i++)) = '\n'; - (*(buf + i)) = 0; - break; - } - } - return (i); -} - -/* - * __write -- write bytes to the serial port. Ignore fd, since - * stdout and stderr are the same. Since we have no filesystem, - * open will only return an error. - */ - -int __write( - int fd, - char *buf, - int nbytes -) -{ - int i; - - for (i = 0; i < nbytes; i++) { - if (*(buf + i) == '\n') { - outbyte ('\r'); - } - outbyte (*(buf + i)); - } - return (nbytes); -} diff --git a/c/src/lib/libbsp/m68k/mvme136/include/bsp.h b/c/src/lib/libbsp/m68k/mvme136/include/bsp.h deleted file mode 100644 index f89a1b0461..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/include/bsp.h +++ /dev/null @@ -1,142 +0,0 @@ -/* bsp.h - * - * This include file contains all MVME136 board IO definitions. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MVME136_h -#define __MVME136_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * Define the time limits for RTEMS Test Suite test durations. - * Long test and short test duration limits are provided. These - * values are in seconds and need to be converted to ticks for the - * application. - * - */ - -#define MAX_LONG_TEST_DURATION 300 /* 5 minutes = 300 seconds */ -#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */ - -/* - * Define the interrupt mechanism for Time Test 27 - * - * NOTE: Use the MPCSR vector for the MVME136 - */ - -#define MUST_WAIT_FOR_INTERRUPT 0 - -#define Install_tm27_vector( handler ) set_vector( (handler), 75, 1 ) - -#define Cause_tm27_intr() (*(volatile rtems_unsigned8 *)0xfffb006b) = 0x80 - -#define Clear_tm27_intr() (*(volatile rtems_unsigned8 *)0xfffb006b) = 0x00 - -#define Lower_tm27_intr() - -/* - * Simple spin delay in microsecond units for device drivers. - * This is very dependent on the clock speed of the target. - */ - -#define delay( microseconds ) \ - { register rtems_unsigned32 _delay=(microseconds); \ - register rtems_unsigned32 _tmp=123; \ - asm volatile( "0: \ - nbcd %0 ; \ - nbcd %0 ; \ - dbf %1,0b" \ - : "=d" (_tmp), "=d" (_delay) \ - : "0" (_tmp), "1" (_delay) ); \ - } - -/* Constants */ - -#define RAM_START 0 -#define RAM_END 0x100000 - -#define M681ADDR 0xfffb0040 /* address of the M68681 chip */ -#define RXRDYB 0x01 /* status reg recv ready mask */ -#define TXRDYB 0x04 /* status reg trans ready mask */ -#define PARITYERR 0x20 /* status reg parity error mask */ -#define FRAMEERR 0x40 /* status reg frame error mask */ - - -#define FOREVER 1 /* infinite loop */ - -/* Structures */ - -struct r_m681_info { - char fill1[ 5 ]; /* channel A regs ( not used ) */ - char isr; /* interrupt status reg */ - char fill2[ 2 ]; /* counter regs (not used) */ - char mr1mr2b; /* MR1B and MR2B regs */ - char srb; /* status reg channel B */ - char fill3; /* do not access */ - char rbb; /* receive buffer channel B */ - char ivr; /* interrupt vector register */ -}; - -struct w_m681_info { - char fill1[ 4 ]; /* channel A regs (not used) */ - char acr; /* auxillary control reg */ - char imr; /* interrupt mask reg */ - char fill2[ 2 ]; /* counter regs (not used) */ - char mr1mr2b; /* MR1B and MR2B regs */ - char csrb; /* clock select reg */ - char crb; /* command reg */ - char tbb; /* transmit buffer channel B */ - char ivr; /* interrupt vector register */ -}; - -#ifdef M136_INIT -#undef EXTERN -#define EXTERN -#else -#undef EXTERN -#define EXTERN extern -#endif - -/* miscellaneous stuff assumed to exist */ - -extern rtems_configuration_table BSP_Configuration; - -/* M68681 DUART chip register variables */ - -EXTERN volatile struct r_m681_info *_Read_m681; /* M68681 read registers */ -EXTERN volatile struct w_m681_info *_Write_m681; /* M68681 write registers */ - -extern m68k_isr M68Kvec[]; /* vector table address */ - -/* functions */ - -void bsp_cleanup( void ); - -m68k_isr set_vector( - rtems_isr_entry handler, - rtems_vector_number vector, - int type -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/m68k/mvme136/include/coverhd.h b/c/src/lib/libbsp/m68k/mvme136/include/coverhd.h deleted file mode 100644 index 7497514e97..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/include/coverhd.h +++ /dev/null @@ -1,104 +0,0 @@ -/* coverhd.h - * - * This include file has defines to represent the overhead associated - * with calling a particular directive from C on this target. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __COVERHD_h -#define __COVERHD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 2 -#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 1 -#define CALLING_OVERHEAD_TASK_CREATE 3 -#define CALLING_OVERHEAD_TASK_IDENT 2 -#define CALLING_OVERHEAD_TASK_START 2 -#define CALLING_OVERHEAD_TASK_RESTART 2 -#define CALLING_OVERHEAD_TASK_DELETE 1 -#define CALLING_OVERHEAD_TASK_SUSPEND 1 -#define CALLING_OVERHEAD_TASK_RESUME 2 -#define CALLING_OVERHEAD_TASK_SET_PRIORITY 2 -#define CALLING_OVERHEAD_TASK_MODE 2 -#define CALLING_OVERHEAD_TASK_GET_NOTE 2 -#define CALLING_OVERHEAD_TASK_SET_NOTE 2 -#define CALLING_OVERHEAD_TASK_WAKE_WHEN 4 -#define CALLING_OVERHEAD_TASK_WAKE_AFTER 1 -#define CALLING_OVERHEAD_INTERRUPT_CATCH 2 -#define CALLING_OVERHEAD_CLOCK_GET 5 -#define CALLING_OVERHEAD_CLOCK_SET 4 -#define CALLING_OVERHEAD_CLOCK_TICK 1 - -#define CALLING_OVERHEAD_TIMER_CREATE 2 -#define CALLING_OVERHEAD_TIMER_IDENT 1 -#define CALLING_OVERHEAD_TIMER_DELETE 2 -#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 2 -#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 5 -#define CALLING_OVERHEAD_TIMER_RESET 1 -#define CALLING_OVERHEAD_TIMER_CANCEL 1 -#define CALLING_OVERHEAD_SEMAPHORE_CREATE 3 -#define CALLING_OVERHEAD_SEMAPHORE_DELETE 1 -#define CALLING_OVERHEAD_SEMAPHORE_IDENT 2 -#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 2 -#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 3 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 2 - -#define CALLING_OVERHEAD_EVENT_SEND 2 -#define CALLING_OVERHEAD_EVENT_RECEIVE 2 -#define CALLING_OVERHEAD_SIGNAL_CATCH 2 -#define CALLING_OVERHEAD_SIGNAL_SEND 2 -#define CALLING_OVERHEAD_PARTITION_CREATE 3 -#define CALLING_OVERHEAD_PARTITION_IDENT 2 -#define CALLING_OVERHEAD_PARTITION_DELETE 1 -#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 2 -#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 2 -#define CALLING_OVERHEAD_REGION_CREATE 3 -#define CALLING_OVERHEAD_REGION_IDENT 2 -#define CALLING_OVERHEAD_REGION_DELETE 2 -#define CALLING_OVERHEAD_REGION_GET_SEGMENT 3 -#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 2 -#define CALLING_OVERHEAD_PORT_CREATE 3 -#define CALLING_OVERHEAD_PORT_IDENT 2 -#define CALLING_OVERHEAD_PORT_DELETE 1 -#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 2 -#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 2 - -#define CALLING_OVERHEAD_IO_INITIALIZE 2 -#define CALLING_OVERHEAD_IO_OPEN 2 -#define CALLING_OVERHEAD_IO_CLOSE 3 -#define CALLING_OVERHEAD_IO_READ 2 -#define CALLING_OVERHEAD_IO_WRITE 2 -#define CALLING_OVERHEAD_IO_CONTROL 2 -#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 2 -#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 2 -#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 2 -#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 1 - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/m68k/mvme136/shmsupp/addrconv.c b/c/src/lib/libbsp/m68k/mvme136/shmsupp/addrconv.c deleted file mode 100644 index 8e1502f789..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/shmsupp/addrconv.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Shm_Convert_address - * - * This MVME136 has a "normal" view of the VME address space. - * No address range conversion is required. - * - * Input parameters: - * address - address to convert - * - * Output parameters: - * returns - converted address - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -void *Shm_Convert_address( - void *address -) -{ - return ( address ); -} diff --git a/c/src/lib/libbsp/m68k/mvme136/shmsupp/getcfg.c b/c/src/lib/libbsp/m68k/mvme136/shmsupp/getcfg.c deleted file mode 100644 index d4db200ad2..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/shmsupp/getcfg.c +++ /dev/null @@ -1,85 +0,0 @@ -/* void Shm_Get_configuration( localnode, &shmcfg ) - * - * This routine initializes, if necessary, and returns a pointer - * to the Shared Memory Configuration Table for the Cyclone CVME961. - * - * INPUT PARAMETERS: - * localnode - local node number - * shmcfg - address of pointer to SHM Config Table - * - * OUTPUT PARAMETERS: - * *shmcfg - pointer to SHM Config Table - * - * NOTES: The MPCSR interrupt on the MVME136 is used as an interprocessor - * interrupt. The capablities of the MPCSR are used to generate - * interprocessor interrupts for up to eight nodes. - * - * The following table illustrates the configuration limitations: - * - * BUS MAX - * MODE ENDIAN NODES - * ========= ====== ======= - * POLLED LITTLE 2+ - * INTERRUPT LITTLE 2-8 - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -#define INTERRUPT 1 /* MVME136 target supports both */ -#define POLLING 0 /* polling and interrupt modes */ - -shm_config_table BSP_shm_cfgtbl; - -rtems_unsigned32 *BSP_int_address() -{ - rtems_unsigned32 id, offset; - - id = (rtems_unsigned32) *(rtems_unsigned8 *)0xfffb0061; - offset = ((id & 0x1f) << 5) | ((id & 0xe0) << 8); - offset |= 0xffff000b; - return( (rtems_unsigned32 * ) offset ); -} - -void Shm_Get_configuration( - rtems_unsigned32 localnode, - shm_config_table **shmcfg -) -{ - BSP_shm_cfgtbl.base = (rtems_unsigned32 *)0x20000000; - BSP_shm_cfgtbl.length = 1 * MEGABYTE; - BSP_shm_cfgtbl.format = SHM_BIG; - - BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt; - -#ifdef NEUTRAL_BIG - BSP_shm_cfgtbl.convert = NULL_CONVERT; -#else - BSP_shm_cfgtbl.convert = CPU_swap_u32; -#endif - -#if (POLLING==1) - BSP_shm_cfgtbl.poll_intr = POLLED_MODE; - BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT; - BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT; - BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT; -#else - BSP_shm_cfgtbl.poll_intr = INTR_MODE; - BSP_shm_cfgtbl.Intr.address = BSP_int_address(); - BSP_shm_cfgtbl.Intr.value = 0x80; - BSP_shm_cfgtbl.Intr.length = BYTE; -#endif - - *shmcfg = &BSP_shm_cfgtbl; - -} diff --git a/c/src/lib/libbsp/m68k/mvme136/shmsupp/lock.c b/c/src/lib/libbsp/m68k/mvme136/shmsupp/lock.c deleted file mode 100644 index 5ccc406af5..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/shmsupp/lock.c +++ /dev/null @@ -1,75 +0,0 @@ -/* Shared Memory Lock Routines - * - * This shared memory locked queue support routine need to be - * able to lock the specified locked queue. Interrupts are - * disabled while the queue is locked to prevent preemption - * and deadlock when two tasks poll for the same lock. - * previous level. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -/* - * Shm_Initialize_lock - * - * Initialize the lock for the specified locked queue. - */ - -void Shm_Initialize_lock( - Shm_Locked_queue_Control *lq_cb -) -{ - lq_cb->lock = LQ_UNLOCKED; -} - -/* void _Shm_Lock( &lq_cb ) - * - * This shared memory locked queue support routine locks the - * specified locked queue. It disables interrupts to prevent - * a deadlock condition. - */ - -void Shm_Lock( - Shm_Locked_queue_Control *lq_cb -) -{ - rtems_unsigned32 isr_level; - rtems_unsigned32 *lockptr = (rtems_unsigned32 *)&lq_cb->lock; - - rtems_interrupt_disable( isr_level ); - Shm_isrstat = isr_level; - asm volatile( "lockit:" : : ); - asm volatile( "tas %0@" : "=a" (lockptr) : "0" (lockptr) ); - asm volatile( "bne lockit" : : ); -/* should delay */ -} - -/* - * Shm_Unlock - * - * Unlock the lock for the specified locked queue. - */ - -void Shm_Unlock( - Shm_Locked_queue_Control *lq_cb -) -{ - rtems_unsigned32 isr_level; - - lq_cb->lock = SHM_UNLOCK_VALUE; - isr_level = Shm_isrstat; - rtems_interrupt_enable( isr_level ); -} - diff --git a/c/src/lib/libbsp/m68k/mvme136/shmsupp/mpisr.c b/c/src/lib/libbsp/m68k/mvme136/shmsupp/mpisr.c deleted file mode 100644 index 6591d28a11..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/shmsupp/mpisr.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Shm_isr_mvme136() - * - * NOTE: This routine is not used when in polling mode. Either - * this routine OR Shm_clockisr is used in a particular system. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -rtems_isr Shm_isr_mvme136() -{ - Shm_Interrupt_count += 1; - rtems_multiprocessing_announce(); - (*(volatile rtems_unsigned8 *)0xfffb006b) = 0; /* clear MPCSR intr */ -} - -/* void _Shm_setvec( ) - * - * This driver routine sets the SHM interrupt vector to point to the - * driver's SHM interrupt service routine. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void Shm_setvec() -{ - /* may need to disable intr */ - set_vector( Shm_isr_mvme136, 75, 1 ); -} diff --git a/c/src/lib/libbsp/m68k/mvme136/startup/bspclean.c b/c/src/lib/libbsp/m68k/mvme136/startup/bspclean.c deleted file mode 100644 index 4366603a55..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/startup/bspclean.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * This routine returns control to 135Bug. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -void bsp_return_to_monitor_trap() -{ - extern void start( void ); - - register volatile void *start_addr; - - m68k_set_vbr( 0 ); /* restore 135Bug vectors */ - asm volatile( "trap #15" ); /* trap to 135Bug */ - asm volatile( ".short 0x63" ); /* return to 135Bug (.RETURN) */ - /* restart program */ - start_addr = start; - - asm volatile ( "jmp %0@" : "=a" (start_addr) : "0" (start_addr) ); -} - -#define TIMER 0xfffb0000 - -void bsp_cleanup( void ) -{ - Z8x36_WRITE( TIMER, MASTER_INTR, 0x62 ); /* redo timer */ - Z8x36_WRITE( TIMER, CT1_MODE_SPEC, 0x00 ); - Z8x36_WRITE( TIMER, MASTER_CFG, 0xf4 ); - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0x00 ); - - M68Kvec[ 45 ] = bsp_return_to_monitor_trap; /* install handler */ - asm volatile( "trap #13" ); /* insures SUPV mode */ -} diff --git a/c/src/lib/libbsp/m68k/mvme136/startup/bspstart.c b/c/src/lib/libbsp/m68k/mvme136/startup/bspstart.c deleted file mode 100644 index 514340d9ea..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/startup/bspstart.c +++ /dev/null @@ -1,156 +0,0 @@ -/* bsp_start() - * - * This routine starts the application. It includes application, - * board, and monitor specific initialization and configuration. - * The generic CPU dependent initialization has been performed - * before this routine is invoked. - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "stackchk.h" - -/* - * The original table from the application and our copy of it with - * some changes. - */ - -extern rtems_configuration_table Configuration; -rtems_configuration_table BSP_Configuration; - -rtems_cpu_table Cpu_table; - -/* Initialize whatever libc we are using - * called from postdriver hook - */ - -void bsp_libc_init() -{ - extern int end; - rtems_unsigned32 heap_start; - - heap_start = (rtems_unsigned32) &end; - if (heap_start & (CPU_ALIGNMENT-1)) - heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - - RTEMS_Malloc_Initialize((void *) heap_start, 64 * 1024, 0); - - /* - * Set up for the libc handling. - */ - - if (BSP_Configuration.ticks_per_timeslice > 0) - libc_init(1); /* reentrant if possible */ - else - libc_init(0); /* non-reentrant */ - - /* - * Initialize the stack bounds checker - */ - -#ifdef STACK_CHECKER_ON - Stack_check_Initialize(); -#endif -} - -int bsp_start( - int argc, - char **argv, - char **environp -) -{ - m68k_isr *monitors_vector_table; - int index; - - monitors_vector_table = (m68k_isr *)0; /* 135Bug Vectors are at 0 */ - m68k_set_vbr( monitors_vector_table ); - - for ( index=2 ; index<=255 ; index++ ) - M68Kvec[ index ] = monitors_vector_table[ 32 ]; - - M68Kvec[ 2 ] = monitors_vector_table[ 2 ]; /* bus error vector */ - M68Kvec[ 4 ] = monitors_vector_table[ 4 ]; /* breakpoints vector */ - M68Kvec[ 9 ] = monitors_vector_table[ 9 ]; /* trace vector */ - M68Kvec[ 47 ] = monitors_vector_table[ 47 ]; /* system call vector */ - - m68k_set_vbr( &M68Kvec ); - - (*(rtems_unsigned8 *)0xfffb0067) = 0x7f; /* make VME access round-robin */ - - m68k_enable_caching(); - - /* - * we only use a hook to get the C library initialized. - */ - - Cpu_table.pretasking_hook = NULL; - - Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */ - - Cpu_table.postdriver_hook = NULL; - - Cpu_table.idle_task = NULL; /* do not override system IDLE task */ - - Cpu_table.do_zero_of_workspace = TRUE; - - Cpu_table.interrupt_vector_table = (m68k_isr *) &M68Kvec; - - Cpu_table.interrupt_stack_size = 4096; - - Cpu_table.extra_system_initialization_stack = 0; - - /* - * Copy the table - */ - - BSP_Configuration = Configuration; - - BSP_Configuration.work_space_start = (void *) - (RAM_END - BSP_Configuration.work_space_size); - - /* - * Add 1 region for the RTEMS Malloc - */ - - BSP_Configuration.maximum_regions++; - - /* - * Add 1 extension for newlib libc - */ - -#ifdef RTEMS_NEWLIB - BSP_Configuration.maximum_extensions++; -#endif - - /* - * Add another extension if using the stack checker - */ - -#ifdef STACK_CHECKER_ON - BSP_Configuration.maximum_extensions++; -#endif - - rtems_initialize_executive( &BSP_Configuration, &Cpu_table ); - /* does not return */ - - bsp_cleanup(); - - return 0; -} diff --git a/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds deleted file mode 100644 index 13317a724e..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds +++ /dev/null @@ -1,48 +0,0 @@ -/* - * This file contains directives for the GNU linker which are specific - * to the Motorola MVME136/MVME135 boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -MEMORY - { - ram : org = 0x3000, l = 1M - } - -SECTIONS -{ - .text 0x3000 : - { - text_start = . ; - _text_start = . ; - *(.text) - etext = ALIGN( 0x10 ) ; - _etext = .; - } - .data ADDR( .text ) + SIZEOF( .text ): - { - data_start = . ; - _data_start = .; - *(.data) - edata = ALIGN( 0x10 ) ; - _edata = .; - } - .bss ADDR( .data ) + SIZEOF( .data ): - { - bss_start = . ; - _bss_start = . ; - *(.bss) - *(COMMON) - end = . ; - _end = . ; - } -} diff --git a/c/src/lib/libbsp/m68k/mvme136/timer/timer.c b/c/src/lib/libbsp/m68k/mvme136/timer/timer.c deleted file mode 100644 index 8c3ecd45f2..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/timer/timer.c +++ /dev/null @@ -1,108 +0,0 @@ -/* Timer_init() - * - * This routine initializes the Z8036 timer on the MVME136 board. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * NOTE: This routine will not work if the optimizer is enabled - * for some compilers. The multiple writes to the Z8036 - * may be optimized away. - * - * It is important that the timer start/stop overhead be - * determined when porting or modifying this code. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include -#include -#include - -#define TIMER 0xfffb0000 /* address of Z8036 on MVME136 */ - -int Ttimer_val; -rtems_boolean Timer_driver_Find_average_overhead; - -rtems_isr timerisr(); - -void Timer_initialize() -{ - (void) set_vector( timerisr, 66, 0 ); /* install ISR */ - - Ttimer_val = 0; /* clear timer ISR count */ - Z8x36_WRITE( TIMER, MASTER_INTR, 0x01 ); /* reset */ - Z8x36_WRITE( TIMER, MASTER_INTR, 0x00 ); /* clear reset */ - Z8x36_WRITE( TIMER, MASTER_INTR, 0xe2 ); /* disable lower chain, no vec */ - /* set right justified addr */ - /* and master int enable */ - Z8x36_WRITE( TIMER, CT1_MODE_SPEC, 0x80 ); /* T1 continuous, and */ - /* cycle/pulse output */ - - *((rtems_unsigned16 *)0xfffb0016) = 0x0000; /* write countdown value */ -/* - Z8x36_WRITE( TIMER, CT1_TIME_CONST_MSB, 0x00 ); - Z8x36_WRITE( TIMER, CT1_TIME_CONST_LSB, 0x00 ); -*/ - Z8x36_WRITE( TIMER, MASTER_CFG, 0xc4 ); /* enable timer1 */ - - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0xc6 ); /* set INTR enable (IE), */ - /* trigger command */ - /* (TCB) and gate */ - /* command (GCB) bits */ - *((rtems_unsigned8 *)0xfffb0038) &= 0xfd; /* enable timer INTR on */ - /* VME controller */ -} - -#define AVG_OVERHEAD 6 /* It typically takes 3.0 microseconds */ - /* (6 countdowns) to start/stop the timer. */ -#define LEAST_VALID 10 /* Don't trust a value lower than this */ - -int Read_timer() -{ -/* - rtems_unsigned8 msb, lsb; -*/ - rtems_unsigned32 remaining, total; - - Z8x36_WRITE( TIMER, CT1_CMD_STATUS, 0xce ); /* read the counter value */ -remaining = 0xffff - *((rtems_unsigned16 *) 0xfffb0010); -/* - Z8x36_READ( TIMER, CT1_CUR_CNT_MSB, msb ); - Z8x36_READ( TIMER, CT1_CUR_CNT_LSB, lsb ); - - remaining = 0xffff - ((msb << 8) + lsb); -*/ - total = (Ttimer_val * 0x10000) + remaining; - - if ( Timer_driver_Find_average_overhead == 1 ) - return total; /* in one-half microsecond units */ - - else { - if ( total < LEAST_VALID ) - return 0; /* below timer resolution */ - return (total-AVG_OVERHEAD) >> 1; - } -} - -rtems_status_code Empty_function( void ) -{ - return RTEMS_SUCCESSFUL; -} - -void Set_find_average_overhead( - rtems_boolean find_flag -) -{ - Timer_driver_Find_average_overhead = find_flag; -} diff --git a/c/src/lib/libbsp/m68k/mvme136/timer/timerisr.s b/c/src/lib/libbsp/m68k/mvme136/timer/timerisr.s deleted file mode 100644 index a8f7e7b212..0000000000 --- a/c/src/lib/libbsp/m68k/mvme136/timer/timerisr.s +++ /dev/null @@ -1,39 +0,0 @@ -# timer_isr() -# -# This routine provides the ISR for the Z8036 timer on the MVME136 -# board. The timer is set up to generate an interrupt at maximum -# intervals. -# -# Input parameters: NONE -# -# Output parameters: NONE -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# -# $Id$ -# - -#include "asm.h" - -BEGIN_CODE - -.set CT1_CMD_STATUS, 0xfffb000a | port A -.set RELOAD, 0x24 | clr IP & IUS,allow countdown - - PUBLIC (timerisr) -SYM (timerisr): - movl a0,a7@- | save a0 - movl #CT1_CMD_STATUS,a0 | a0 = addr of cmd status reg - movb #RELOAD,a0@ | reload countdown - addql #1, SYM (Ttimer_val) | increment timer value - movl a7@+,a0 | save a0 - rte - -END_CODE -END diff --git a/c/src/lib/libbsp/m68k/mvme162/README b/c/src/lib/libbsp/m68k/mvme162/README deleted file mode 100644 index cdb1f28348..0000000000 --- a/c/src/lib/libbsp/m68k/mvme162/README +++ /dev/null @@ -1,124 +0,0 @@ --- --- EISCAT Scientific Association. M.Savitski --- --- This material is a part of the MVME162 Board Support Package --- for the RTEMS executive. Its licensing policies are those of the --- RTEMS distribution. --- --- Updated by Joel Sherrill (jsherril@redstone.army.mil) after --- inclusion in the standard release. --- --- $Id$ --- - -This is a README file for the MVME162 port of RTEMS. - -Disclaimer ----------- -This is my first attempt at porting RTEMS. The resulting code obviously -contains bugs (know and unknown) and limitations. I assume no -responsibility for quality and support of the software in question. - -Now on more optimistic note: - -I have run most of the standard RTEMS sptests, and neither of them -failed. My present (short) experience of developing RTEMS applications -is essentially positive and suggestive of a long-term commitment. In -any case I am ready to answer questions regarding the port and intend -to follow the future RTEMS versions. I will do my best to provide -whatever support I can afford time-wise. - -Installation ------------- -Nothing unique to the MVME162. It has been incorporated into the -standard release. - -Port Description ----------------- -The port was done using already existing ports to the M68020 boards, -DMV152 and MVME136. - -The host system was SUN/Solaris 2.3, and the cross-development -environment consisted of Free Software Foundation (FSF)'s GNU C -compiler (version 2.6), GNU Assembler (version 2.3) and GNU binary -utilities binutils version 2.5.2, built with m68k as a target. The -recent/latest versions of other GNU programs (flex, make, etc) were -also used at the build stage. - -In all subdirectories of the RTEMS distribution tree, the directories -mvme136 were duplicated as mvme162. - -Essential modifications are detailed below: - -- the MVME162-specific hardware registers were described in bsp.h - -- timer and clock routines were made to use the MVME162's Tick Timers 1 -and 2, respectively - -- shared memory support was replaced by stubs for the time being - -- console IO was lifted entirely from the DMV152 support code, thanks -to the fact that Z8530 SCC used in DMV152 is upwards compatible with -the Z85230 SCC of the MVME162. (Only the memory mapping of the SCC -registers had to be changed.) - -- symbols in several *.s files were prepended with underscores to -comply with the xgcc configuration used (it prepends underscores to all -symbols defined in c code) - -- linkcmds file was modified to place the linked code into the memory -configured for the board in use - -- bspstart.c was modified as follows: - - monitors_vector_table = (m68k_isr *)0xFFE00000; - -was made to point to the power-up location of MVME162 interrupt vector -table. - -- The shutdown is a temporary solution. To exit cleanly, it has to disable -all enabled interrupts and restore the board to its power-up status. -Presently this is not done satisfactorily, as a result, the board needs -a hardware reset from the external VMEbus master or from the front -panel to ensure correct operation for subsequent downloads. - -Host System ------------ -The VMEbus master used to externally control and download the MVME162 -is a FORCE CPU-2CE board running Solaris 2.3. A simple program to load -s-records and start/reset the MVME162 was written. The code is in the -file tools/sload.c - -This code depends on the external VMEbus master's vme driver and is -provided as an example, without the Makefile. The bulk of the program -which parses the s-records is courtesy of Kym Newbery, -(8918927y@lux.levels.unisa.edu.au). - -In general, apart from x-gcc, the tools most often used while building -RTEMS for MVME162 were: find, grep, diff, and, of course - -MVME162 Embedded Controller Programmer's Reference Guide, -Motorola, MVME162PG/D1. - -Thanks ------- -- to On-Line Applications Research Corporation (OAR) for developing -RTEMS and making it available on a Technology Transfer basis; -- to Joel Sherril, the leader of the RTEMS development group for -stimulating and helpful discussions; -- to Kym Newbery (8918927y@lux.levels.unisa.edu.au) for his s-record -parser; -- to Gerd Truschinski (gt@first.gmd.de) for creating and running the -crossgcc mailing list -- to FSF and Cygnus Support for great free software; - - -+----------------------------------+-------------------------------+ -| Dr. Mikhail (Misha) Savitski | Voice : +46-980-79162 | -| Software Systems Engineer | Fax : +46-980-79161 | -| EISCAT Svalbard Radar Project | E-mail: mms@eiscathq.irf.se | -| EISCAT Scientific Association |----------- /\_/\ -----------| -| Box 812 S-98128 Kiruna, Sweden | EIS { o o } CAT | -+----------------------------------+-------oQQQ--(>I<)--QQQo-------+ - - diff --git a/c/src/lib/libbsp/m68k/mvme162/clock/ckinit.c b/c/src/lib/libbsp/m68k/mvme162/clock/ckinit.c deleted file mode 100644 index 95e35e5f66..0000000000 --- a/c/src/lib/libbsp/m68k/mvme162/clock/ckinit.c +++ /dev/null @@ -1,91 +0,0 @@ -/* Clock_init() - * - * This routine initializes the Tick Timer 2 on the MVME162 board. - * The tick frequency is 1 millisecond. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * Modifications of respective RTEMS file: COPYRIGHT (c) 1994. - * EISCAT Scientific Association. M.Savitski - * - * This material is a part of the MVME162 Board Support Package - * for the RTEMS executive. Its licensing policies are those of the - * RTEMS above. - * - * $Id$ - */ - -#include - -#include -#include -#include - -#define MS_COUNT 1000 /* T2's countdown constant (1 ms) */ -#define CLOCK_INT_LEVEL 6 /* T2's interrupt level */ - -rtems_unsigned32 Clock_isrs; /* ISRs until next tick */ -volatile rtems_unsigned32 Clock_driver_ticks; - /* ticks since initialization */ -rtems_isr_entry Old_ticker; - -rtems_device_driver Clock_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - Install_clock( Clock_isr ); -} - -void ReInstall_clock( clock_isr ) -rtems_isr_entry clock_isr; -{ - rtems_unsigned32 isrlevel; - - rtems_interrupt_disable( isrlevel ); - (void) set_vector( clock_isr, (VECTOR_BASE >> 28) * 0x10 + 0x9, 1 ); - rtems_interrupt_enable( isrlevel ); -} - -void Install_clock( clock_isr ) -rtems_isr_entry clock_isr; -{ - - Clock_driver_ticks = 0; - Clock_isrs = BSP_Configuration.microseconds_per_tick / 1000; - - if ( BSP_Configuration.ticks_per_timeslice ) { - Old_ticker = (rtems_isr_entry) - set_vector( clock_isr, (VECTOR_BASE >> 28) * 0x10 + 0x9, 1 ); - - lcsr->vector_base = 0x67800000; /* set vb, enable interrupts */ - lcsr->to_ctl = 0xE7; /* prescaler to 1 MHz (see Appendix A1) */ - lcsr->timer_cmp_2 = MS_COUNT; - lcsr->timer_cnt_2 = 0; /* clear counter */ - lcsr->board_ctl |= 0x700; /* increment, reset-on-compare, clear-ovfl-cnt */ - - lcsr->intr_level[0] |= CLOCK_INT_LEVEL * 0x10; /* set int level */ - lcsr->intr_ena |= 0x02000000; /* enable tick timer 2 interrupt */ - - atexit( Clock_exit ); - } - -} - -void Clock_exit( void ) -{ -/* Dummy for now. See other m68k BSP's for code examples */ -} diff --git a/c/src/lib/libbsp/m68k/mvme162/console/console.c b/c/src/lib/libbsp/m68k/mvme162/console/console.c deleted file mode 100644 index 7e8f5132f9..0000000000 --- a/c/src/lib/libbsp/m68k/mvme162/console/console.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - * This file contains the MVME162 console IO package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * Modifications of respective RTEMS file: COPYRIGHT (c) 1994. - * EISCAT Scientific Association. M.Savitski - * - * This material is a part of the MVME162 Board Support Package - * for the RTEMS executive. Its licensing policies are those of the - * RTEMS above. - * - * $Id$ - */ - -#define M162_INIT - -#include -#include "console.h" -#include "bsp.h" - -/* console_initialize - * - * This routine initializes the console IO driver. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_device_driver console_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg, - rtems_id self, - rtems_unsigned32 *status -) -{ - *status = RTEMS_SUCCESSFUL; -} - - -/* is_character_ready - * - * This routine returns TRUE if a character is available. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_boolean is_character_ready( - char *ch -) -{ - rtems_unsigned8 rr_0; - - Z8x30_READ_CONTROL( CONSOLE_CONTROL, RR_0, rr_0 ); - if ( !(rr_0 & RR_0_RX_DATA_AVAILABLE) ) - return( FALSE ); - - Z8x30_READ_DATA( CONSOLE_DATA, *ch ); - - return(TRUE); -} - -/* inbyte - * - * This routine reads a character from the SCC. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - * character read from SCC - */ - -char inbyte( void ) -{ - rtems_unsigned8 rr_0; - char ch; - - while ( 1 ) { - Z8x30_READ_CONTROL( CONSOLE_CONTROL, RR_0, rr_0 ); - if ( (rr_0 & RR_0_RX_DATA_AVAILABLE) != 0 ) - break; - } - - Z8x30_READ_DATA( CONSOLE_DATA, ch ); - return ch; -} - - -/* outbyte - * - * This routine transmits a character out the SCC. It supports - * XON/XOFF flow control. - * - * Input parameters: - * ch - character to be transmitted - * - * Output parameters: NONE - */ - -void outbyte( - char ch -) -{ - rtems_unsigned8 rr_0; - char flow_control; - - while ( 1 ) { - Z8x30_READ_CONTROL( CONSOLE_CONTROL, RR_0, rr_0 ); - if ( (rr_0 & RR_0_TX_BUFFER_EMPTY) != 0 ) - break; - } - - while ( 1 ) { - Z8x30_READ_CONTROL( CONSOLE_CONTROL, RR_0, rr_0 ); - if ( (rr_0 & RR_0_RX_DATA_AVAILABLE) == 0 ) - break; - - Z8x30_READ_DATA( CONSOLE_DATA, flow_control ); - - if ( flow_control == XOFF ) - do { - do { - Z8x30_READ_CONTROL( CONSOLE_CONTROL, RR_0, rr_0 ); - } while ( (rr_0 & RR_0_RX_DATA_AVAILABLE) == 0 ); - Z8x30_READ_DATA( CONSOLE_DATA, flow_control ); - } while ( flow_control != XON ); - } - - Z8x30_WRITE_DATA( CONSOLE_DATA, ch ); -} - -/* - * __read -- read bytes from the serial port. Ignore fd, since - * we only have stdin. - */ - -int __read( - int fd, - char *buf, - int nbytes -) -{ - int i = 0; - - for (i = 0; i < nbytes; i++) { - *(buf + i) = inbyte(); - if ((*(buf + i) == '\n') || (*(buf + i) == '\r')) { - (*(buf + i++)) = '\n'; - (*(buf + i)) = 0; - break; - } - } - return (i); -} - -/* - * __write -- write bytes to the serial port. Ignore fd, since - * stdout and stderr are the same. Since we have no filesystem, - * open will only return an error. - */ - -int __write( - int fd, - char *buf, - int nbytes -) -{ - int i; - - for (i = 0; i < nbytes; i++) { - if (*(buf + i) == '\n') { - outbyte ('\r'); - } - outbyte (*(buf + i)); - } - return (nbytes); -} diff --git a/c/src/lib/libbsp/m68k/mvme162/include/bsp.h b/c/src/lib/libbsp/m68k/mvme162/include/bsp.h deleted file mode 100644 index 0b3a7d76d8..0000000000 --- a/c/src/lib/libbsp/m68k/mvme162/include/bsp.h +++ /dev/null @@ -1,225 +0,0 @@ -/* bsp.h - * - * This include file contains all MVME162 board IO definitions. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * Modifications of respective RTEMS file: COPYRIGHT (c) 1994. - * EISCAT Scientific Association. M.Savitski - * - * This material is a part of the MVME162 Board Support Package - * for the RTEMS executive. Its licensing policies are those of the - * RTEMS above. - * - * $Id$ - */ - -#ifndef __MVME162_h -#define __MVME162_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* -// Following defines must reflect the setup of the particular MVME162 -//----------------------------------- -*/ -#define GROUP_BASE_ADDRESS 0x0000F200 -#define BOARD_BASE_ADDRESS 0x00000000 -/* Base for local interrupters' vectors (with enable bit set) */ -#define VECTOR_BASE 0x67800000 -/* RAM limits */ -#define RAM_START 0x00100000 -#define RAM_END 0x00200000 -/* -//----------------------------------- -*/ -static volatile struct lcsr { - unsigned long slave_adr[2]; - unsigned long slave_trn[2]; - unsigned long slave_ctl; - unsigned long mastr_adr[4]; - unsigned long mastr_trn; - unsigned long mastr_att; - unsigned long mastr_ctl; - unsigned long dma_ctl_1; - unsigned long dma_ctl_2; - unsigned long dma_loc_cnt; - unsigned long dma_vme_cnt; - unsigned long dma_byte_cnt; - unsigned long dma_adr_cnt; - unsigned long dma_status; - unsigned long to_ctl; - unsigned long timer_cmp_1; - unsigned long timer_cnt_1; - unsigned long timer_cmp_2; - unsigned long timer_cnt_2; - unsigned long board_ctl; - unsigned long prescaler_cnt; - unsigned long intr_stat; - unsigned long intr_ena; - unsigned long intr_soft_set; - unsigned long intr_clear; - unsigned long intr_level[4]; - unsigned long vector_base; -} *lcsr = (void *) 0xFFF40000; - -#define USE_CHANNEL_A 1 /* 1 = use channel A for console */ -#define USE_CHANNEL_B 0 /* 1 = use channel B for console */ - -/* Constants */ - -#if (USE_CHANNEL_A == 1) - #define CONSOLE_CONTROL 0xFFF45005 - #define CONSOLE_DATA 0xFFF45007 -#elif (USE_CHANNEL_B == 1) - #define CONSOLE_CONTROL 0xFFF45001 - #define CONSOLE_DATA 0xFFF45003 -#endif - -/* -// The following registers are located in the VMEbus short -// IO space and respond to address modifier codes $29 and $2D. -// On FORCE SPARC CPU use address gcsr_vme and device /dev/vme16d32. -*/ -static volatile struct gcsr { - unsigned char chip_revision; - unsigned char chip_id; - unsigned char lmsig; - unsigned char board_scr; - unsigned short gpr[6]; -} *gcsr_vme = (void *) (GROUP_BASE_ADDRESS + BOARD_BASE_ADDRESS), - *gcsr = (void *) 0xFFF40100; - -static volatile unsigned short *ipio[6] = { (unsigned short *) 0xFFF58000, - (unsigned short *) 0xFFF58100, - (unsigned short *) 0xFFF58200, - (unsigned short *) 0xFFF58300, - (unsigned short *) 0xFFF58400, - (unsigned short *) 0xFFF58500 - }; - -static volatile unsigned short *ipid[6] = { (unsigned short *) 0xFFF58080, - (unsigned short *) 0xFFF58180, - (unsigned short *) 0xFFF58280, - (unsigned short *) 0xFFF58380, - (unsigned short *) 0xFFF58080, - (unsigned short *) 0xFFF58280 - }; - -static volatile struct ipic_space { - struct sing { - unsigned short io_space[64]; - unsigned short id_space[32]; - unsigned short id_reptd[32]; - } single[4]; - struct twin { - unsigned short io_space[128]; - unsigned short io_reptd[128]; - } twin[2]; -} *ipic_space = (void *) 0xFFF58000; - -static volatile struct ipic_csr { - unsigned char chip_id; - unsigned char chip_rev; - unsigned char res[2]; - unsigned short a_31_16_base; - unsigned short b_31_16_base; - unsigned short c_31_16_base; - unsigned short d_31_16_base; - unsigned char a_23_16_size; - unsigned char b_23_16_size; - unsigned char c_23_16_size; - unsigned char d_23_16_size; - unsigned short a_intr_cnt; - unsigned short b_intr_cnt; - unsigned short c_intr_cnt; - unsigned short d_intr_cnt; -} *ipic_csr = (void *) 0xFFFBC000; - -/* - * Define the time limits for RTEMS Test Suite test durations. - * Long test and short test duration limits are provided. These - * values are in seconds and need to be converted to ticks for the - * application. - * - */ - -#define MAX_LONG_TEST_DURATION 300 /* 5 minutes = 300 seconds */ -#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */ - -/* - * Define the interrupt mechanism for Time Test 27 - * - * NOTE: Not implemented - */ - -#define MUST_WAIT_FOR_INTERRUPT 0 - -#define Install_tm27_vector( handler ) - -#define Cause_tm27_intr() - -#define Clear_tm27_intr() - -#define Lower_tm27_intr() - -/* - * Simple spin delay in microsecond units for device drivers. - * This is very dependent on the clock speed of the target. - */ - -#define delay( microseconds ) \ - { register rtems_unsigned32 _delay=(microseconds); \ - register rtems_unsigned32 _tmp=123; \ - asm volatile( "0: \ - nbcd %0 ; \ - nbcd %0 ; \ - dbf %1,0b" \ - : "=d" (_tmp), "=d" (_delay) \ - : "0" (_tmp), "1" (_delay) ); \ - } - -/* Constants */ - -#ifdef 1626_INIT -#undef EXTERN -#define EXTERN -#else -#undef EXTERN -#define EXTERN extern -#endif - -/* miscellaneous stuff assumed to exist */ - -extern rtems_configuration_table BSP_Configuration; - -extern m68k_isr M68Kvec[]; /* vector table address */ - -/* functions */ - -void bsp_cleanup( void ); - -m68k_isr set_vector( - rtems_isr_entry handler, - rtems_vector_number vector, - int type -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/m68k/mvme162/include/coverhd.h b/c/src/lib/libbsp/m68k/mvme162/include/coverhd.h deleted file mode 100644 index 0033a50502..0000000000 --- a/c/src/lib/libbsp/m68k/mvme162/include/coverhd.h +++ /dev/null @@ -1,104 +0,0 @@ -/* coverhd.h - * - * This include file has defines to represent the overhead associated - * with calling a particular directive from C on this target. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __COVERHD_h -#define __COVERHD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 2 -#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 1 -#define CALLING_OVERHEAD_TASK_CREATE 3 -#define CALLING_OVERHEAD_TASK_IDENT 2 -#define CALLING_OVERHEAD_TASK_START 2 -#define CALLING_OVERHEAD_TASK_RESTART 2 -#define CALLING_OVERHEAD_TASK_DELETE 1 -#define CALLING_OVERHEAD_TASK_SUSPEND 1 -#define CALLING_OVERHEAD_TASK_RESUME 2 -#define CALLING_OVERHEAD_TASK_SET_PRIORITY 2 -#define CALLING_OVERHEAD_TASK_MODE 2 -#define CALLING_OVERHEAD_TASK_GET_NOTE 2 -#define CALLING_OVERHEAD_TASK_SET_NOTE 2 -#define CALLING_OVERHEAD_TASK_WAKE_WHEN 4 -#define CALLING_OVERHEAD_TASK_WAKE_AFTER 1 -#define CALLING_OVERHEAD_INTERRUPT_CATCH 2 -#define CALLING_OVERHEAD_CLOCK_GET 4 -#define CALLING_OVERHEAD_CLOCK_SET 4 -#define CALLING_OVERHEAD_CLOCK_TICK 1 - -#define CALLING_OVERHEAD_TIMER_CREATE 2 -#define CALLING_OVERHEAD_TIMER_IDENT 1 -#define CALLING_OVERHEAD_TIMER_DELETE 2 -#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 2 -#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 5 -#define CALLING_OVERHEAD_TIMER_RESET 1 -#define CALLING_OVERHEAD_TIMER_CANCEL 1 -#define CALLING_OVERHEAD_SEMAPHORE_CREATE 2 -#define CALLING_OVERHEAD_SEMAPHORE_IDENT 1 -#define CALLING_OVERHEAD_SEMAPHORE_DELETE 2 -#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 2 -#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 2 - -#define CALLING_OVERHEAD_EVENT_SEND 2 -#define CALLING_OVERHEAD_EVENT_RECEIVE 2 -#define CALLING_OVERHEAD_SIGNAL_CATCH 2 -#define CALLING_OVERHEAD_SIGNAL_SEND 2 -#define CALLING_OVERHEAD_PARTITION_CREATE 3 -#define CALLING_OVERHEAD_PARTITION_IDENT 2 -#define CALLING_OVERHEAD_PARTITION_DELETE 2 -#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 2 -#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 2 -#define CALLING_OVERHEAD_REGION_CREATE 3 -#define CALLING_OVERHEAD_REGION_IDENT 2 -#define CALLING_OVERHEAD_REGION_DELETE 1 -#define CALLING_OVERHEAD_REGION_GET_SEGMENT 3 -#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 2 -#define CALLING_OVERHEAD_PORT_CREATE 3 -#define CALLING_OVERHEAD_PORT_IDENT 2 -#define CALLING_OVERHEAD_PORT_DELETE 2 -#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 2 -#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 2 - -#define CALLING_OVERHEAD_IO_INITIALIZE 3 -#define CALLING_OVERHEAD_IO_OPEN 2 -#define CALLING_OVERHEAD_IO_CLOSE 2 -#define CALLING_OVERHEAD_IO_READ 2 -#define CALLING_OVERHEAD_IO_WRITE 2 -#define CALLING_OVERHEAD_IO_CONTROL 2 -#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 2 -#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 2 -#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 2 -#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 1 - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c b/c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c deleted file mode 100644 index 215a53cc46..0000000000 --- a/c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * This routine returns control to 162Bug. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * - * Modifications of respective RTEMS file: COPYRIGHT (c) 1994. - * EISCAT Scientific Association. M.Savitski - * - * This material is a part of the MVME162 Board Support Package - * for the RTEMS executive. Its licensing policies are those of the - * RTEMS above. - * - * $Id$ - */ - -#include -#include -#include - -void bsp_return_to_monitor_trap() -{ - extern void start( void ); - - lcsr->intr_ena = 0; /* disable interrupts */ - m68k_set_vbr(0xFFE00000); /* restore 162Bug vectors */ - asm volatile( "trap #15" ); /* trap to 162Bug */ - asm volatile( ".short 0x63" ); /* return to 162Bug (.RETURN) */ - /* restart program */ - /* - * This does not work on the 162.... - */ -#if 0 - { register volatile void *start_addr; - - start_addr = start; - - asm volatile ( "jmp %0@" : "=a" (start_addr) : "0" (start_addr) ); - } -#endif -} - -void bsp_cleanup( void ) -{ - M68Kvec[ 45 ] = bsp_return_to_monitor_trap; /* install handler */ - asm volatile( "trap #13" ); /* insures SUPV mode */ -} diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c b/c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c deleted file mode 100644 index fb137f7ebc..0000000000 --- a/c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c +++ /dev/null @@ -1,171 +0,0 @@ -/* bsp_start() - * - * This routine starts the application. It includes application, - * board, and monitor specific initialization and configuration. - * The generic CPU dependent initialization has been performed - * before this routine is invoked. - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * Modifications of respective RTEMS file: COPYRIGHT (c) 1994. - * EISCAT Scientific Association. M.Savitski - * - * This material is a part of the MVME162 Board Support Package - * for the RTEMS executive. Its licensing policies are those of the - * RTEMS above. - * - * $Id$ - */ - -#include -#include -#include -#include - -/* - * The original table from the application and our copy of it with - * some changes. - */ - -extern rtems_configuration_table Configuration; -rtems_configuration_table BSP_Configuration; - -rtems_cpu_table Cpu_table; - -/* Initialize whatever libc we are using - * called from postdriver hook - */ - -void bsp_libc_init() -{ - extern int end; - rtems_unsigned32 heap_start; - - heap_start = (rtems_unsigned32) &end; - if (heap_start & (CPU_ALIGNMENT-1)) - heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - - RTEMS_Malloc_Initialize((void *) heap_start, 64 * 1024, 0); - - /* - * Set up for the libc handling. - */ - - if (BSP_Configuration.ticks_per_timeslice > 0) - libc_init(1); /* reentrant if possible */ - else - libc_init(0); /* non-reentrant */ - - /* - * Initialize the stack bounds checker - */ - -#ifdef STACK_CHECKER_ON - Stack_check_Initialize(); -#endif -} - -int bsp_start( - int argc, - char **argv, - char **environp -) -{ - m68k_isr *monitors_vector_table; - int index; - - /* - * 162Bug Vectors are at 0xFFE00000 - */ - - monitors_vector_table = (m68k_isr *)0xFFE00000; - - m68k_set_vbr( monitors_vector_table ); - - for ( index=2 ; index<=255 ; index++ ) - M68Kvec[ index ] = monitors_vector_table[ 32 ]; - - M68Kvec[ 2 ] = monitors_vector_table[ 2 ]; /* bus error vector */ - M68Kvec[ 4 ] = monitors_vector_table[ 4 ]; /* breakpoints vector */ - M68Kvec[ 9 ] = monitors_vector_table[ 9 ]; /* trace vector */ - M68Kvec[ 47 ] = monitors_vector_table[ 47 ]; /* system call vector */ - - m68k_set_vbr( &M68Kvec ); - - /* - * You may wish to make VME access round-robin here, currently - * we leave it as it is. - */ - - lcsr->vector_base = VECTOR_BASE; /* set the vector base register */ - - m68k_enable_caching(); - - /* - * we only use a hook to get the C library initialized. - */ - - Cpu_table.pretasking_hook = NULL; - - Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */ - - Cpu_table.postdriver_hook = NULL; /* Call our main() for constructors */ - - Cpu_table.idle_task = NULL; /* do not override system IDLE task */ - - Cpu_table.do_zero_of_workspace = TRUE; - - Cpu_table.interrupt_vector_table = (m68k_isr *) &M68Kvec; - - Cpu_table.interrupt_stack_size = 4096; - - Cpu_table.extra_system_initialization_stack = 0; - - /* - * Copy the table - */ - - BSP_Configuration = Configuration; - - /* - * Add 1 region for the RTEMS Malloc - */ - - BSP_Configuration.maximum_regions++; - - /* - * Add 1 extension for newlib libc - */ - -#ifdef RTEMS_NEWLIB - BSP_Configuration.maximum_extensions++; -#endif - - /* - * Add another extension if using the stack checker - */ - -#ifdef STACK_CHECKER_ON - BSP_Configuration.maximum_extensions++; -#endif - - BSP_Configuration.work_space_start = (void *) - (RAM_END - BSP_Configuration.work_space_size); - - rtems_initialize_executive( &BSP_Configuration, &Cpu_table ); - /* does not return */ - - bsp_cleanup(); - - return 0; -} diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds deleted file mode 100644 index 21a844ca88..0000000000 --- a/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds +++ /dev/null @@ -1,50 +0,0 @@ -/* - * This file contains directives for the GNU linker which are specific - * to the Motorola MVME162 board. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * Modifications of respective RTEMS file: COPYRIGHT (c) 1994. - * EISCAT Scientific Association. M.Savitski - * - * This material is a part of the MVME162 Board Support Package - * for the RTEMS executive. Its licensing policies are those of the - * RTEMS above. - * - * $Id$ - */ - -MEMORY - { - ram : org = 0x100000, l = 1M - } - -SECTIONS -{ - .text 0x100000 : - { - text_start = . ; - *(.text) - etext = ALIGN( 0x10 ) ; - } - .data ADDR( .text ) + SIZEOF( .text ): - { - data_start = . ; - *(.data) - edata = ALIGN( 0x10 ) ; - } - .bss ADDR( .data ) + SIZEOF( .data ): - { - bss_start = . ; - *(.bss) - *(COMMON) - end = . ; - _end = . ; - } -} diff --git a/c/src/lib/libbsp/m68k/mvme162/timer/timer.c b/c/src/lib/libbsp/m68k/mvme162/timer/timer.c deleted file mode 100644 index c000fadd28..0000000000 --- a/c/src/lib/libbsp/m68k/mvme162/timer/timer.c +++ /dev/null @@ -1,91 +0,0 @@ -/* Timer_init() - * - * This routine initializes the Tick Timer 1 on the MVME162 board. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * NOTE: This routine will not work if the optimizer is enabled - * for some compilers. The multiple writes - * may be optimized away. - * - * It is important that the timer start/stop overhead be - * determined when porting or modifying this code. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * Modifications of respective RTEMS file: COPYRIGHT (c) 1994. - * EISCAT Scientific Association. M.Savitski - * - * This material is a part of the MVME162 Board Support Package - * for the RTEMS executive. Its licensing policies are those of the - * RTEMS above. - * - * $Id$ - */ - - -#include -#include - -/* Periodic tick interval */ -#define TICK_INTERVAL 0x10000 -#define TIMER_INT_LEVEL 6 - -int Ttimer_val; -rtems_boolean Timer_driver_Find_average_overhead; - -rtems_isr timerisr(); - -void Timer_initialize() -{ - (void) set_vector( timerisr, (VECTOR_BASE >> 28) * 0x10 + 0x8, 0 ); - - Ttimer_val = 0; /* clear timer ISR count */ - lcsr->vector_base = 0x67800000; /* set vb, enable interrupts */ - lcsr->to_ctl = 0xE7; /* prescaler to 1 MHz (see Appendix A1) */ - lcsr->timer_cmp_1 = TICK_INTERVAL; - lcsr->timer_cnt_1 = 0; /* clear counter */ - lcsr->board_ctl |= 7; /* increment, reset-on-compare, clear-ovfl-cnt */ - - lcsr->intr_level[0] |= TIMER_INT_LEVEL; /* set int level */ - lcsr->intr_ena |= 0x01000000; /* enable tick timer 1 interrupt */ -} - -#define AVG_OVERHEAD 6 /* It typically takes 3.0 microseconds */ - /* (6 countdowns) to start/stop the timer. */ -#define LEAST_VALID 10 /* Don't trust a value lower than this */ - -int Read_timer() -{ - unsigned long total; - - total = (Ttimer_val * TICK_INTERVAL) + lcsr->timer_cnt_1; - - if ( Timer_driver_Find_average_overhead == 1 ) - return total; /* in one-half microsecond units */ - - if ( total < LEAST_VALID ) - return 0; /* below timer resolution */ - - return (total-AVG_OVERHEAD); /* in musec units */ -} - -rtems_status_code Empty_function( void ) -{ - return RTEMS_SUCCESSFUL; -} - -void Set_find_average_overhead( - rtems_boolean find_flag -) -{ - Timer_driver_Find_average_overhead = find_flag; -} diff --git a/c/src/lib/libbsp/m68k/mvme162/timer/timerisr.s b/c/src/lib/libbsp/m68k/mvme162/timer/timerisr.s deleted file mode 100644 index af31e4276b..0000000000 --- a/c/src/lib/libbsp/m68k/mvme162/timer/timerisr.s +++ /dev/null @@ -1,46 +0,0 @@ -/* timer_isr() - * - * This routine provides the ISR for the Z8036 timer on the MVME136 - * board. The timer is set up to generate an interrupt at maximum - * intervals. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * Modifications of respective RTEMS file: COPYRIGHT (c) 1994. - * EISCAT Scientific Association. M.Savitski - * - * This material is a part of the MVME162 Board Support Package - * for the RTEMS executive. Its licensing policies are those of the - * RTEMS above. - * - * $Id$ - */ - -#include "asm.h" - -BEGIN_CODE - -.set INTR_CLEAR_REG, 0xfff40074 | interrupt clear register -.set RELOAD, 0x01000000 | clear tick 1 interrupt - - PUBLIC (timerisr) -SYM (timerisr): - move.l a0, -(a7) | save a0 - movea.l #INTR_CLEAR_REG, a0 | a0 = addr of cmd status reg - ori.l #RELOAD, (a0) | reload countdown - addq.l #1, SYM (Ttimer_val) | increment timer value - move.l (a7)+, a0 | restore a0 - rte - -END_CODE -END diff --git a/c/src/lib/libbsp/m68k/mvme162/tools/sload.c b/c/src/lib/libbsp/m68k/mvme162/tools/sload.c deleted file mode 100644 index 8ce44d7a4b..0000000000 --- a/c/src/lib/libbsp/m68k/mvme162/tools/sload.c +++ /dev/null @@ -1,542 +0,0 @@ -/* - * - * Copyright (c) 1994 by EISCAT Scientific Association. - * All Rights Reserved. - * M.Savitski - * - * S-record code - courtesy of Kym Newbery - * 8918927y@lux.levels.unisa.edu.au - * - * Loading S-records into the VMEbus memory. - * - * Loads an executable in s-record format into the MVME dual-ported - * memory and directs the MVME CPU to start execution. - * VMEbus access is done via the FORCE CPU-2CE vmeplus driver in - * read/write mode for loading and in mmap mode for accessing MVME registers. - * See mvme162.h for #define's dependent on the MVME162 setup. - * - * $Id$ - * - */ - -#include -#include -#include - - -#include -#include -#include -#include -#include -#include - -#include "../include/bsp.h" - -#define FALSE 0 -#define TRUE 1 - -#define DATA19 0 -#define DATA28 1 -#define DATA37 3 -#define HEADER 4 -#define TERMINATOR 5 -#define NONE 6 - -unsigned int ahdtoi(unsigned char digit); -int issrec(char *str); -int validrec(char *str); -void hdr2str(char *sstr, char *pstr); -unsigned long getaddr(char *str); -unsigned int datasize(char *str); -void usage (void); -int MVMEControl(u_long entry, int reset, int go); - -unsigned int ahdtoi(unsigned char digit) -/* converts a hexadecimal char to an integer - * - * entry : digit = character to convert - * : 0..15 = result - * : -1 = char is not a digit - */ -{ -/* check digit */ - if (!isxdigit(digit)) - return(-1); - - switch (toupper(digit)) { - case 'A' : return(0xA); - case 'B' : return(0xB); - case 'C' : return(0xC); - case 'D' : return(0xD); - case 'E' : return(0xE); - case 'F' : return(0xF); - default : return(digit - 0x30); - } -} - -int issrec(char *str) -/* attempts to identify the type of Srecord string passed - * - * entry : str = pointer to null terminated string - * returns : 0,1,2,3,5,7,8,9 for S0..S9 except S6 & S4 - * : -1 = invalid header or header not found - * : -2 = invalid header number - */ -{ -/* Check first character for S */ - if ((isupper(str[0]) && (str[0] == 'S')) || - (islower(str[0]) && (str[0] == 's'))) - { - /* check for valid header number */ - switch (str[1]) { - case '0' : return 0; /* header record */ - case '1' : return 1; /* data record, 2byte addr */ - case '2' : return 2; /* " " , 3byte addr */ - case '3' : return 3; /* " " , 4byte addr */ - case '5' : return 5; /* number of S1,S2,S3 blocks */ - case '7' : return 7; /* S3 terminator */ - case '8' : return 8; /* S2 terminator */ - case '9' : return 9; /* S1 terminator */ - default : return -2; /* all others are invalid */ - } - } - return(-1); -} - -int validrec(char *str) -/* Tests for a valid srecord. tests checksum & for nondigit characters - * doesn't rely on any other srecord routines. - * - * entry : str = pointer to null terminated string - * returns : -1 = srecord contains invalid characters - * : -2 = srecord checksum is invalid - * : -3 = srecord record length is invalid - * : 0 = srecord is valid - */ -{ - int cn = 1, rlen=0; - int mchksum=0, rchksum=0; - -/* first check if there are any non-digit characters except S */ - while (str[cn]!=0) - if (!isxdigit(str[cn++])) - return(-1); - -/* test number of data bytes */ - rlen = ahdtoi(str[2])* 0x10 + ahdtoi(str[3]); - if (((strlen(str)-4)/2U) != rlen) return(-3); - -/* get checksum from string */ - rchksum = ahdtoi(str[rlen*2+2])*0x10 + ahdtoi(str[rlen*2+3]); - /* string chksum */ - -/* now calculate my own checksum */ - for (cn=2; cn <= rlen*2; ) - mchksum += ahdtoi(str[cn++])*0x10 + ahdtoi(str[cn++]); - mchksum = ~mchksum & 0xFF; - if (mchksum != rchksum) return(-2); /* return -2 in not equal */ - -/* return OK if we didn't fail any of these tests */ - return(0); -} - -void hdr2str(char *sstr, char *pstr) -/* converts header record (S0) string into a plain string - * - * entry : sstr = pointer to S0 string record - * exit : pstr = pointer to string long enough to hold string - * (caller must allocate enough space for string) - */ -{ - int rlen, cn, pn=0; - - rlen = ahdtoi(sstr[2])*0x10 + ahdtoi(sstr[3]); - for (cn=8; cn <= rlen*2; ) - pstr[pn++] = ahdtoi(sstr[cn++])*0x10 + ahdtoi(sstr[cn++]); - pstr[pn]=0; -} - -unsigned long getaddr(char *str) -/* returns the address of the srecord in str. assumes record is valid. - * - * entry : str = pointer to srecord string - * exit : address of data, word or long. - */ -{ - unsigned long addr=0; - - switch (issrec(str)) { - case 0 : - case 1 : - case 5 : - case 9 : - addr = ahdtoi(str[4])*0x1000 + ahdtoi(str[5])*0x100 - + ahdtoi(str[6])*0x10 + ahdtoi(str[7]); - return(addr); - case 2 : - case 8 : - addr = ahdtoi(str[4])*0x100000 + ahdtoi(str[5])*0x10000 - + ahdtoi(str[6])*0x1000 + ahdtoi(str[7])*0x100 - + ahdtoi(str[8])*0x10 + ahdtoi(str[9]); - return(addr); - case 3 : - case 7 : - addr = ahdtoi(str[4])*0x10000000 + ahdtoi(str[5])*0x1000000 - + ahdtoi(str[6])*0x100000 + ahdtoi(str[7])*0x10000 - + ahdtoi(str[8])*0x1000 + ahdtoi(str[9])*0x100 - + ahdtoi(str[10])*0x10 + ahdtoi(str[11]); - return(addr); - default : return(-1); - } -} - -unsigned int datasize(char *str) -/* - * returns the number of data bytes in the srecord. assumes record is valid. - * - * entry : str = pointer to srecord string - * exit : number of bytes of data in the data field. - */ -{ - unsigned int size=0; - - switch (issrec(str)) { - case 0 : - case 1 : - case 5 : - case 7 : - case 8 : - case 9 : size = ahdtoi(str[2])*0x10 + ahdtoi(str[3]); - return(size-3); - case 2 : size = ahdtoi(str[2])*0x10 + ahdtoi(str[3]); - return(size-4); - case 3 : size = ahdtoi(str[2])*0x10 + ahdtoi(str[3]); - return(size-5); - default : return(-1); - } -} - -void usage (void) -/* - * prints correct usage on stdout - */ -{ - printf("\nUSAGE : sload [-v][-g][-r] [file]\n"); - printf(" file is an s-record file\n"); - printf(" -v for verbose summary of s-records loaded\n"); - printf(" -g to start execution\n"); - printf(" -r to reset MVME162\n\n"); -} - -int MVMEControl(u_long entry, int reset, int go) -/* Controls MVME-162 from other VME master: - * if entry != 0, loads it as start address - * if go != 0, starts program execution from entry - * if reset != 0, resets mvme162's local bus - * Depends upon #define'ed GROUP_BASE_ADDRESS and BOARD_BASE_ADDRESS - * which in turn are set by the 162-BUG's ENV command. - */ -{ - int vme; - char vmedev[32] = "/dev/vme16d32"; /* d32 is important !!! */ - u_long pagesize; - struct gcsr *gcsr_map; - - pagesize = sysconf(_SC_PAGESIZE); /* mmap likes to be page-aligned */ - - if ((vme = open(vmedev, O_RDWR)) == -1) { - perror("open"); - fprintf(stderr, "Cannot open vme as %s to access GCSR\n", vmedev); - return 1; - } - -/* "MAP_SHARED" is important here */ - gcsr_map = (struct gcsr *) - mmap(0, 0x1000, PROT_WRITE|PROT_READ, MAP_SHARED, - vme, (u_long)gcsr_vme / pagesize * pagesize); - if (gcsr_map == (struct gcsr *) - 1) { - perror("mmap"); - fprintf(stderr, "Cannot mmap() to remote bus address 0x%08X\n", - (u_long)gcsr_vme / pagesize * pagesize); - return 1; - } - -/* - * use GCSR to start execution in MVME162 - * adjust pointer to compensate for page alignement - */ - gcsr_map = (struct gcsr *)((u_long)gcsr_map + - (u_long)gcsr_vme % pagesize); - - if (reset) { /* reset the local bus... */ - gcsr_map->board_scr |= 0x80; - } - if (entry) { /* ...load start address... */ - gcsr_map->gpr[0] = entry >> 16U; - gcsr_map->gpr[1] = entry & 0x0000FFFF; - } - if (go) { /* ... and kick it in the ass! */ - gcsr_map->lmsig = 0x1; - } -} - -/*=================================================================== */ -main(int argc, char *argv[]) -{ - char inpstr[256]; - u_char image[256]; - char hdrstr[64]; - int i, j, k, result, size, line=0, lastrec=0; - long addr, tsize=0, naddr=0, blksize=0, blknum=1; - FILE *in; - char infile[256] = ""; - char vmedev[32] = "/dev/vme32d32"; /* Assume "/dev/vme32d32" */ - int vme, verbose = 0, go = 0, reset = 0, havefile = 0; - -/* Parse the command line */ - - --argc; - - while (argv++, argc--) { - if (**argv != '-') { - strcpy(infile, *argv); - havefile = 1; - } else if (!strcmp(*argv, "-v")) { - verbose = 1; - } else if (!strcmp(*argv, "-g")) { - go = 1; - } else if (!strcmp(*argv, "-r")) { - reset = 1; -/* } else if (!strcmp(*argv, "-vme32")) { */ -/* strcpy(vmedev, "/dev/vme32d32"); */ -/* } else if (!strcmp(*argv, "-vme24")) { */ -/* strcpy(vmedev, "/dev/vme24d32"); */ -/* } else if (!strcmp(*argv, "-vme16")) { */ -/* strcpy(vmedev, "/dev/vme16d32"); */ - } else if (!strcmp(*argv, "-")) { - usage(); - exit(0); - } else { - usage(); - exit(0); - } - } - - if (!havefile) { - if (!reset && !go) { - usage(); - } - else { - MVMEControl(0, reset, go); - } - exit(0); - } - - if ((in = fopen(infile, "r")) == NULL) { - perror("open"); - fprintf(stderr, "Cannot open input file %s\n", infile); - exit(1); - } - - if ((vme = open(vmedev, O_RDWR)) == -1) { - fprintf(stderr, "Cannot open vme as %s\n", vmedev); - } - - while (fscanf(in, "%s", &inpstr) != EOF) { - line++; - if (validrec(inpstr) == 0) { - switch (issrec(inpstr)) { - case 0 : - hdr2str(inpstr, hdrstr); - if (verbose) printf("HEADER string = `%s'\n", hdrstr); - lastrec=HEADER; - break; - case 1 : - addr = getaddr(inpstr); - size = datasize(inpstr); - if (blksize == 0) { - blksize+=size; - naddr=addr+size; - if (verbose) printf("DATA\tS19\t$%04lX", addr); - lastrec=DATA19; - } - else if ((blksize!=0) && (addr==naddr)) { - blksize+=size; - naddr=addr+size; - } - else { - if (verbose) printf("\t$%04lX\t%lu", naddr-1, blksize); - if (verbose) printf("\t%d\n", blknum); - blknum+=1; - naddr=addr+size; - blksize=size; - if (verbose) printf("DATA\tS19\t$%04lX", addr); - lastrec=DATA19; - } - tsize += size; - if (vme == -1) break; - for (i = 0, j = 8, k = size; k-- > 0; i += 1, j += 2) { - image[i] = ahdtoi(inpstr[j])*0x10 + ahdtoi(inpstr[j+1]); - } - if (lseek(vme, addr, SEEK_SET) == -1) { - fprintf(stderr, "lseek() to vme address %08X failed\n", addr); - } - else { - if (write(vme, (u_char *)image, size) != size) { - fprintf(stderr, "Write to vme address %08X failed\n", addr); - } - } - break; - case 2 : - addr = getaddr(inpstr); - size = datasize(inpstr); - if (blksize == 0) { - blksize+=size; - naddr=addr+size; - if (verbose) printf("DATA\tS28\t$%06lX",addr); - lastrec=DATA28; - } - else if ((blksize!=0) && (addr==naddr)) { - blksize+=size; - naddr=addr+size; - } - else { - if (verbose) printf("\t$%06lX\t%lu",naddr-1,blksize); - if (verbose) printf("\t%d\n",blknum); - blknum+=1; - naddr=addr+size; - blksize=size; - if (verbose) printf("DATA\tS28\t$%06lX",addr); - lastrec=DATA28; - } - tsize += size; - if (vme == -1) break; - for (i = 0, j = 10, k = size; k-- > 0; i += 1, j += 2) { - image[i] = ahdtoi(inpstr[j])*0x10 + ahdtoi(inpstr[j+1]); - } - if (lseek(vme, addr, SEEK_SET) == -1) { - fprintf(stderr, "lseek() to vme address %08X failed\n", addr); - } - else { - if (write(vme, (u_char *)image, size) != size) { - fprintf(stderr, "Write to vme address %08X failed\n", addr); - } - } - break; - case 3 : - addr = getaddr(inpstr); - size = datasize(inpstr); - if (blksize == 0) { - blksize+=size; - naddr=addr+size; - if (verbose) printf("DATA\tS37\t$%08lX",addr); - lastrec=DATA37; - } - else if ((blksize!=0) && (addr==naddr)) { - blksize+=size; - naddr=addr+size; - } - else { - if (verbose) printf("\t$%08lX\t%lu",naddr-1,blksize); - if (verbose) printf("\t%d\n",blknum); - blknum+=1; - naddr=addr+size; - blksize=size; - if (verbose) printf("DATA\tS37\t$%08lX",addr); - lastrec=DATA37; - } - tsize += size; - if (vme == -1) break; - for (i = 0, j = 12, k = size; k-- > 0; i += 1, j += 2) { - image[i] = ahdtoi(inpstr[j])*0x10 + ahdtoi(inpstr[j+1]); - } - if (lseek(vme, addr, SEEK_SET) == -1) { - fprintf(stderr, "lseek() to vme address %08X failed\n", addr); - } - else { - if (write(vme, (u_char *)image, size) != size) { - fprintf(stderr, "Write to vme address %08X failed\n", addr); - } - } - break; - case 7 : - if (lastrec==DATA19){ - if (verbose) printf("\t$%04lX\t%lu",naddr-1,blksize); - } - if (lastrec==DATA28){ - if (verbose) printf("\t$%06lX\t%lu",naddr-1,blksize); - } - if (lastrec==DATA37){ - if (verbose) printf("\t$%08lX\t%lu",naddr-1,blksize); - } - if (verbose) printf("\t%d\n",blknum); - addr = getaddr(inpstr); - if (verbose) printf("TERM\tS37"); - printf("\nExecution address = $%08lX\n", addr); - lastrec=TERMINATOR; - break; - case 8 : - if (lastrec==DATA19){ - if (verbose) printf("\t$%04lX\t%lu",naddr-1,blksize); - } - if (lastrec==DATA28){ - if (verbose) printf("\t$%06lX\t%lu",naddr-1,blksize); - } - if (lastrec==DATA37){ - if (verbose) printf("\t$%08lX\t%lu",naddr-1,blksize); - } - if (verbose) printf("\t%d\n",blknum); - addr = getaddr(inpstr); - if (verbose) printf("TERM\tS28"); - printf("\nExecution address = $%06lX\n", addr); - lastrec=TERMINATOR; - break; - case 9 : - if (lastrec==DATA19){ - if (verbose) printf("\t$%04lX\t%lu",naddr-1,blksize); - } - if (lastrec==DATA28){ - if (verbose) printf("\t$%06lX\t%lu",naddr-1,blksize); - } - if (lastrec==DATA37){ - if (verbose) printf("\t$%08lX\t%lu",naddr-1,blksize); - } - if (verbose) printf("\t%d\n",blknum); - addr = getaddr(inpstr); - if (verbose) printf("TERM\tS19"); - printf("\nExecution address = $%04lX\n", addr); - lastrec=TERMINATOR; - break; - } - } - else { - printf("\nError on line %d. ",line); - switch (validrec(inpstr)) { - case -1 : {printf("SRecord contains invalid characters.\n"); break; } - case -2 : {printf("SRecord checksum is invalid.\n"); break;} - case -3 : {printf("SRecord length is invalid.\n"); break;} - } - exit(1); - } - } - - if ((lastrec==DATA19) || (lastrec==DATA28) || (lastrec==DATA37)) { - if (lastrec==DATA19){ - if (verbose) printf("\t$%04lX\t%lu",naddr-1,blksize); - } - if (lastrec==DATA28){ - if (verbose) printf("\t$%06lX\t%lu",naddr-1,blksize); - } - if (lastrec==DATA37){ - if (verbose) printf("\t$%08lX\t%lu",naddr-1,blksize); - } - if (verbose) printf("\t%d\n",blknum); - printf("ERROR: terminator record not found.\n"); - } - else { - for (i = 0x000FFFF; i-- > 0;) ; /* mystique delay... */ - MVMEControl(addr, reset, go); - } - if (verbose) printf("total data size = %lu bytes\n", tsize); -} diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/README b/c/src/lib/libbsp/no_cpu/no_bsp/README deleted file mode 100644 index 8ed80e29f8..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/README +++ /dev/null @@ -1,69 +0,0 @@ -# -# $Id$ -# -# This is a sample hardware description file for a BSP. This comment -# block does not have to appear in a real one. The intention of this -# file is to provide a central place to look when searching for -# information about a board when starting a new BSP. For example, -# you may want to find an existing timer driver for the chip you are -# using on your board. It is easier to grep for the chip name in -# all of the HARDWARE files than to peruse the source tree. Hopefully, -# making the HARDDWARE files accurate will also alleviate the common -# problem of not knowing anything about a board based on its BSP -# name. -# -# NOTE: If you have a class of peripheral chip on board which -# is not in this list please add it to this file so -# others will also use the same name. -# -# Timer resolution is the way it is configured in this BSP. -# On a counting timer, this is the length of time which -# corresponds to 1 count. -# - -BSP NAME: fastsbc1 -BOARD: Fasssst Computers, Fast SBC-1 -BUS: SchoolBus -CPU FAMILY: i386 -CPU: Intel Hexium -COPROCESSORS: Witch Hex87 -MODE: 32 bit mode - -DEBUG MONITOR: HexBug - -PERIPHERALS -=========== -TIMERS: Intel i8254 - RESOLUTION: .0001 microseconds -SERIAL PORTS: Zilog Z8530 (with 2 ports) -REAL-TIME CLOCK: RTC-4 -DMA: Intel i8259 -VIDEO: none -SCSI: none -NETWORKING: none - -DRIVER INFORMATION -================== -CLOCK DRIVER: RTC-4 -IOSUPP DRIVER: Zilog Z8530 port A -SHMSUPP: polled and interrupts -TIMER DRIVER: Intel i8254 -TTY DRIVER: stub only - -STDIO -===== -PORT: Console port 0 -ELECTRICAL: RS-232 -BAUD: 9600 -BITS PER CHARACTER: 8 -PARITY: None -STOP BITS: 1 - -NOTES -===== - -(1) 900 Mhz and 950 Mhz versions. - -(2) 1 Gb or 2 Gb RAM. - -(3) PC compatible if HexBug not enabled. diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/clock/ckinit.c b/c/src/lib/libbsp/no_cpu/no_bsp/clock/ckinit.c deleted file mode 100644 index 426b55137b..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/clock/ckinit.c +++ /dev/null @@ -1,143 +0,0 @@ -/* ckinit.c - * - * This file provides a template for the clock device driver initialization. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include - -/* - * The interrupt vector number associated with the clock tick device - * driver. - */ - -#define CLOCK_VECTOR 4 - -/* - * Clock_driver_ticks is a monotonically increasing counter of the - * number of clock ticks since the driver was initialized. - */ -volatile rtems_unsigned32 Clock_driver_ticks; - -/* - * Clock_isrs is the number of clock ISRs until the next invocation of - * the RTEMS clock tick routine. The clock tick device driver - * gets an interrupt once a millisecond and counts down until the - * length of time between the user configured microseconds per tick - * has passed. - */ - -rtems_unsigned32 Clock_isrs; /* ISRs until next tick */ - -/* - * The previous ISR on this clock tick interrupt vector. - */ - -rtems_isr_entry Old_ticker; - -/* - * Clock_initialize - * - * Device driver entry point for clock tick driver initialization. - */ - -rtems_device_driver Clock_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - Install_clock( Clock_isr ); -} - -/* - * Reinstall_clock - * - * Install a clock tick handler without reprogramming the chip. This - * is used by the polling shared memory device driver. - */ - -void ReInstall_clock( - rtems_isr_entry clock_isr -) -{ - rtems_unsigned32 isrlevel = 0; - - /* - * Disable interrupts and install the clock ISR vector using the - * BSP dependent set_vector routine. In the below example, the clock - * ISR is on vector 4 and is an RTEMS interrupt. - */ - - rtems_interrupt_disable( isrlevel ); - (void) set_vector( clock_isr, CLOCK_VECTOR, 1 ); - rtems_interrupt_enable( isrlevel ); -} - -/* - * Install_clock - * - * Install a clock tick handler and reprograms the chip. This - * is used to initially establish the clock tick. - */ - -void Install_clock( - rtems_isr_entry clock_isr -) -{ - /* - * Initialize the clock tick device driver variables - */ - - Clock_driver_ticks = 0; - Clock_isrs = BSP_Configuration.microseconds_per_tick / 1000; - - /* - * If ticks_per_timeslice is configured as non-zero, then the user - * wants a clock tick. - */ - - if ( BSP_Configuration.ticks_per_timeslice ) { - Old_ticker = ( rtems_isr_entry ) set_vector( clock_isr, CLOCK_VECTOR, 1 ); - /* - * Hardware specific initialize goes here - */ - - /* XXX */ - } - - /* - * Schedule the clock cleanup routine to execute if the application exits. - */ - - atexit( Clock_exit ); -} - -/* - * Clean up before the application exits - */ - -void Clock_exit( void ) -{ - if ( BSP_Configuration.ticks_per_timeslice ) { - - /* XXX: turn off the timer interrupts */ - - /* XXX: If necessary, restore the old vector */ - } -} diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/console/console.c b/c/src/lib/libbsp/no_cpu/no_bsp/console/console.c deleted file mode 100644 index c115e256a3..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/console/console.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - * This file contains the template for a console IO package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#define NO_BSP_INIT - -#include -#include "console.h" -#include "bsp.h" - -/* console_initialize - * - * This routine initializes the console IO driver. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_device_driver console_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg, - rtems_id self, - rtems_unsigned32 *status -) -{ - *status = RTEMS_SUCCESSFUL; -} - - -/* is_character_ready - * - * This routine returns TRUE if a character is available. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - */ - -rtems_boolean is_character_ready( - char *ch -) -{ - *ch = '\0'; /* return NULL for no particular reason */ - return(TRUE); -} - -/* inbyte - * - * This routine reads a character from the SOURCE. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * Return values: - * character read from SOURCE - */ - -char inbyte( void ) -{ - /* - * If polling, wait until a character is available. - */ - - return '\0'; -} - -/* outbyte - * - * This routine transmits a character out the SOURCE. It may support - * XON/XOFF flow control. - * - * Input parameters: - * ch - character to be transmitted - * - * Output parameters: NONE - */ - -void outbyte( - char ch -) -{ - /* - * If polling, wait for the transmitter to be ready. - * Check for flow control requests and process. - * Then output the character. - */ - - /* - * Carriage Return/New line translation. - */ - - if ( ch == '\n' ) - outbyte( '\r' ); -} - -/* - * __read -- read bytes from the serial port. Ignore fd, since - * we only have stdin. - */ - -int __read( - int fd, - char *buf, - int nbytes -) -{ - int i = 0; - - for (i = 0; i < nbytes; i++) { - *(buf + i) = inbyte(); - if ((*(buf + i) == '\n') || (*(buf + i) == '\r')) { - (*(buf + i++)) = '\n'; - (*(buf + i)) = 0; - break; - } - } - return (i); -} - -/* - * __write -- write bytes to the serial port. Ignore fd, since - * stdout and stderr are the same. Since we have no filesystem, - * open will only return an error. - */ - -int __write( - int fd, - char *buf, - int nbytes -) -{ - int i; - - for (i = 0; i < nbytes; i++) { - if (*(buf + i) == '\n') { - outbyte ('\r'); - } - outbyte (*(buf + i)); - } - return (nbytes); -} diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h b/c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h deleted file mode 100644 index 0f1c94caf4..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h +++ /dev/null @@ -1,85 +0,0 @@ -/* bsp.h - * - * This include file contains all board IO definitions. - * - * XXX : put yours in here - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __NO_BSP_h -#define __NO_BSP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * Define the time limits for RTEMS Test Suite test durations. - * Long test and short test duration limits are provided. These - * values are in seconds and need to be converted to ticks for the - * application. - * - */ - -#define MAX_LONG_TEST_DURATION 300 /* 5 minutes = 300 seconds */ -#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */ - -/* - * Stuff for Time Test 27 - */ - -#define MUST_WAIT_FOR_INTERRUPT 0 - -#define Install_tm27_vector( handler ) set_vector( (handler), 0, 1 ) - -#define Cause_tm27_intr() - -#define Clear_tm27_intr() - -#define Lower_tm27_intr() - -/* - * Simple spin delay in microsecond units for device drivers. - * This is very dependent on the clock speed of the target. - */ - -#define delay( microseconds ) \ - { \ - } - -/* Constants */ - -#define RAM_START 0 -#define RAM_END 0x100000 - -/* miscellaneous stuff assumed to exist */ - -extern rtems_configuration_table BSP_Configuration; - -/* functions */ - -void bsp_cleanup( void ); - -no_cpu_isr_entry set_vector( /* returns old vector */ - rtems_isr_entry handler, /* isr routine */ - rtems_vector_number vector, /* vector number */ - int type /* RTEMS or RAW intr */ -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/include/coverhd.h b/c/src/lib/libbsp/no_cpu/no_bsp/include/coverhd.h deleted file mode 100644 index 88435c5348..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/include/coverhd.h +++ /dev/null @@ -1,115 +0,0 @@ -/* coverhd.h - * - * This include file has defines to represent the overhead associated - * with calling a particular directive from C. These are used in the - * Timing Test Suite to ignore the overhead required to pass arguments - * to directives. On some CPUs and/or target boards, this overhead - * is significant and makes it difficult to distinguish internal - * RTEMS execution time from that used to call the directive. - * This file should be updated after running the C overhead timing - * test. Once this update has been performed, the RTEMS Time Test - * Suite should be rebuilt to account for these overhead times in the - * timing results. - * - * NOTE: If these are all zero, then the times reported include all - * all calling overhead including passing of arguments. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __COVERHD_h -#define __COVERHD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 0 -#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 0 -#define CALLING_OVERHEAD_TASK_CREATE 0 -#define CALLING_OVERHEAD_TASK_IDENT 0 -#define CALLING_OVERHEAD_TASK_START 0 -#define CALLING_OVERHEAD_TASK_RESTART 0 -#define CALLING_OVERHEAD_TASK_DELETE 0 -#define CALLING_OVERHEAD_TASK_SUSPEND 0 -#define CALLING_OVERHEAD_TASK_RESUME 0 -#define CALLING_OVERHEAD_TASK_SET_PRIORITY 0 -#define CALLING_OVERHEAD_TASK_MODE 0 -#define CALLING_OVERHEAD_TASK_GET_NOTE 0 -#define CALLING_OVERHEAD_TASK_SET_NOTE 0 -#define CALLING_OVERHEAD_TASK_WAKE_WHEN 0 -#define CALLING_OVERHEAD_TASK_WAKE_AFTER 0 -#define CALLING_OVERHEAD_INTERRUPT_CATCH 0 -#define CALLING_OVERHEAD_CLOCK_GET 0 -#define CALLING_OVERHEAD_CLOCK_SET 0 -#define CALLING_OVERHEAD_CLOCK_TICK 0 - -#define CALLING_OVERHEAD_TIMER_CREATE 0 -#define CALLING_OVERHEAD_TIMER_IDENT 0 -#define CALLING_OVERHEAD_TIMER_DELETE 0 -#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 0 -#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 0 -#define CALLING_OVERHEAD_TIMER_RESET 0 -#define CALLING_OVERHEAD_TIMER_CANCEL 0 -#define CALLING_OVERHEAD_SEMAPHORE_CREATE 0 -#define CALLING_OVERHEAD_SEMAPHORE_IDENT 0 -#define CALLING_OVERHEAD_SEMAPHORE_DELETE 0 -#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 0 -#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 0 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 0 - -#define CALLING_OVERHEAD_EVENT_SEND 0 -#define CALLING_OVERHEAD_EVENT_RECEIVE 0 -#define CALLING_OVERHEAD_SIGNAL_CATCH 0 -#define CALLING_OVERHEAD_SIGNAL_SEND 0 -#define CALLING_OVERHEAD_PARTITION_CREATE 0 -#define CALLING_OVERHEAD_PARTITION_IDENT 0 -#define CALLING_OVERHEAD_PARTITION_DELETE 0 -#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 0 -#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 0 -#define CALLING_OVERHEAD_REGION_CREATE 0 -#define CALLING_OVERHEAD_REGION_IDENT 0 -#define CALLING_OVERHEAD_REGION_DELETE 0 -#define CALLING_OVERHEAD_REGION_GET_SEGMENT 0 -#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 0 -#define CALLING_OVERHEAD_PORT_CREATE 0 -#define CALLING_OVERHEAD_PORT_IDENT 0 -#define CALLING_OVERHEAD_PORT_DELETE 0 -#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 0 -#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 0 - -#define CALLING_OVERHEAD_IO_INITIALIZE 0 -#define CALLING_OVERHEAD_IO_OPEN 0 -#define CALLING_OVERHEAD_IO_CLOSE 0 -#define CALLING_OVERHEAD_IO_READ 0 -#define CALLING_OVERHEAD_IO_WRITE 0 -#define CALLING_OVERHEAD_IO_CONTROL 0 -#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 0 -#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 0 -#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 0 - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/addrconv.c b/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/addrconv.c deleted file mode 100644 index 0e188fc941..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/addrconv.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Shm_Convert_address - * - * No address range conversion is required. - * - * Input parameters: - * address - address to convert - * - * Output parameters: - * returns - converted address - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -void *Shm_Convert_address( - void *address -) -{ - return ( address ); -} diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/getcfg.c b/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/getcfg.c deleted file mode 100644 index ca8409a3f0..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/getcfg.c +++ /dev/null @@ -1,77 +0,0 @@ -/* void Shm_Get_configuration( localnode, &shmcfg ) - * - * This routine initializes, if necessary, and returns a pointer - * to the Shared Memory Configuration Table for the XXX target. - * - * INPUT PARAMETERS: - * localnode - local node number - * shmcfg - address of pointer to SHM Config Table - * - * OUTPUT PARAMETERS: - * *shmcfg - pointer to SHM Config Table - * -XXX: FIX THE COMMENTS BELOW WHEN THE CPU IS KNOWN - * NOTES: The XYZ does not have an interprocessor interrupt. - * - * The following table illustrates the configuration limitations: - * - * BUS MAX - * MODE ENDIAN NODES - * ========= ====== ======= - * POLLED BIG 2+ - * INTERRUPT **** NOT SUPPORTED **** - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -/* - * configured if currently polling of interrupt driven - */ - -#define INTERRUPT 0 /* XXX: */ -#define POLLING 1 /* XXX: fix me -- is polling ONLY!!! */ - - -shm_config_table BSP_shm_cfgtbl; - -void Shm_Get_configuration( - rtems_unsigned32 localnode, - shm_config_table **shmcfg -) -{ - BSP_shm_cfgtbl.base = 0x0; - BSP_shm_cfgtbl.length = 1 * MEGABYTE; - BSP_shm_cfgtbl.format = SHM_BIG; - - /* - * Override cause_intr or shm_isr if your target has - * special requirements. - */ - - BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt; - -#ifdef NEUTRAL_BIG - BSP_shm_cfgtbl.convert = NULL_CONVERT; -#else - BSP_shm_cfgtbl.convert = CPU_swap_u32; -#endif - - BSP_shm_cfgtbl.poll_intr = POLLED_MODE; - BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT; - BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT; - BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT; - - *shmcfg = &BSP_shm_cfgtbl; -} diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/lock.c b/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/lock.c deleted file mode 100644 index acdc8b7b48..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/lock.c +++ /dev/null @@ -1,86 +0,0 @@ -/* Shared Memory Lock Routines - * - * This shared memory locked queue support routine need to be - * able to lock the specified locked queue. Interrupts are - * disabled while the queue is locked to prevent preemption - * and deadlock when two tasks poll for the same lock. - * previous level. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -/* - * Shm_Initialize_lock - * - * Initialize the lock for the specified locked queue. - */ - -void Shm_Initialize_lock( - Shm_Locked_queue_Control *lq_cb -) -{ - lq_cb->lock = LQ_UNLOCKED; -} - -/* void _Shm_Lock( &lq_cb ) - * - * This shared memory locked queue support routine locks the - * specified locked queue. It disables interrupts to prevent - * a deadlock condition. - */ - -void Shm_Lock( - Shm_Locked_queue_Control *lq_cb -) -{ - rtems_unsigned32 isr_level; - rtems_unsigned32 *lockptr = &lq_cb->lock; - rtems_unsigned32 lock_value; - - lock_value = 0x80000000; - rtems_interrupt_disable( isr_level ); - - Shm_isrstat = isr_level; - while ( lock_value ) { - asm volatile( "" - : "=r" (lockptr), "=r" (lock_value) - : "0" (lockptr), "1" (lock_value) - ); - /* - * If not available, then may want to delay to reduce load on lock. - */ - - if ( lock_value ) - delay( 10 ); /* approximately 10 microseconds */ - } -} - -/* - * Shm_Unlock - * - * Unlock the lock for the specified locked queue. - */ - -void Shm_Unlock( - Shm_Locked_queue_Control *lq_cb -) -{ - rtems_unsigned32 isr_level; - - lq_cb->lock = SHM_UNLOCK_VALUE; - isr_level = Shm_isrstat; - rtems_interrupt_enable( isr_level ); -} - diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/mpisr.c b/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/mpisr.c deleted file mode 100644 index 592c0cfcc5..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/mpisr.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Shm_isr_nobsp() - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -rtems_isr Shm_isr_nobsp( void ) -{ - /* - * If this routine has to do anything other than the mpisr.c - * found in the generic driver, then copy the contents of the generic - * mpisr.c and augment it to satisfy this particular board. Typically, - * you need to have a board specific mpisr.c when the interrupt - * must be cleared. - * - * If the generic mpisr.c satisifies your requirements, then - * remove this routine from your target's shmsupp/mpisb.c file. - * Then simply install the generic Shm_isr in the Shm_setvec - * routine below. - */ -} - -/* Shm_setvec - * - * This driver routine sets the SHM interrupt vector to point to the - * driver's SHM interrupt service routine. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void Shm_setvec( void ) -{ - /* XXX: FIX ME!!! */ -} diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/startup/bspclean.c b/c/src/lib/libbsp/no_cpu/no_bsp/startup/bspclean.c deleted file mode 100644 index ca498e7806..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/startup/bspclean.c +++ /dev/null @@ -1,26 +0,0 @@ -/* bsp_cleanup() - * - * This routine normally is part of start.s and usually returns - * control to a monitor. - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -void bsp_cleanup( void ) -{ -} diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/startup/bspstart.c b/c/src/lib/libbsp/no_cpu/no_bsp/startup/bspstart.c deleted file mode 100644 index 4d3d3a7175..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/startup/bspstart.c +++ /dev/null @@ -1,164 +0,0 @@ -/* bsp_start() - * - * This routine starts the application. It includes application, - * board, and monitor specific initialization and configuration. - * The generic CPU dependent initialization has been performed - * before this routine is invoked. - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/* - * The original table from the application and our copy of it with - * some changes. - */ - -extern rtems_configuration_table Configuration; - -rtems_configuration_table BSP_Configuration; - -rtems_cpu_table Cpu_table; - -/* Initialize whatever libc we are using - * called from postdriver hook - */ - -void bsp_libc_init() -{ - extern int end; - rtems_unsigned32 heap_start; - - heap_start = (rtems_unsigned32) &end; - if (heap_start & (CPU_ALIGNMENT-1)) - heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - - /* - * The last parameter to RTEMS_Malloc_Initialize is the "chunk" - * size which a multiple of will be requested on each sbrk() - * call by malloc(). A value of 0 indicates that sbrk() should - * not be called to extend the heap. - */ - - RTEMS_Malloc_Initialize((void *) heap_start, 64 * 1024, 0); - - /* - * Set up for the libc handling. - */ - - if (BSP_Configuration.ticks_per_timeslice > 0) - libc_init(1); /* reentrant if possible */ - else - libc_init(0); /* non-reentrant */ - - /* - * Initialize the stack bounds checker - */ - -#ifdef STACK_CHECKER_ON - Stack_check_Initialize(); -#endif -} - -int bsp_start( - int argc, - char **argv, - char **environp -) -{ - /* - * Allocate the memory for the RTEMS Work Space. This can come from - * a variety of places: hard coded address, malloc'ed from outside - * RTEMS world (e.g. simulator or primitive memory manager), or (as - * typically done by stock BSPs) by subtracting the required amount - * of work space from the last physical address on the CPU board. - */ - - /* - * Copy the Configuration Table .. so we can change it - */ - - BSP_Configuration = Configuration; - - /* - * Add 1 region for the RTEMS Malloc - */ - - BSP_Configuration.maximum_regions++; - - /* - * Add 1 extension for newlib libc - */ - -#ifdef RTEMS_NEWLIB - BSP_Configuration.maximum_extensions++; -#endif - - /* - * Add 1 extension for newlib libc - */ - -#ifdef RTEMS_NEWLIB - BSP_Configuration.maximum_extensions++; -#endif - - /* - * Need to "allocate" the memory for the RTEMS Workspace and - * tell the RTEMS configuration where it is. This memory is - * not malloc'ed. It is just "pulled from the air". - */ - - BSP_Configuration.work_space_start = (void *) 0; - - /* - * initialize the CPU table for this BSP - */ - - /* - * we do not use the pretasking_hook - */ - - Cpu_table.pretasking_hook = NULL; - - Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */ - - Cpu_table.postdriver_hook = NULL; - - Cpu_table.idle_task = NULL; /* do not override system IDLE task */ - - Cpu_table.do_zero_of_workspace = TRUE; - - Cpu_table.interrupt_stack_size = 4096; - - Cpu_table.extra_system_initialization_stack = 0; - - /* - * Don't forget the other CPU Table entries. - */ - - /* - * Start RTEMS - */ - - rtems_initialize_executive( &BSP_Configuration, &Cpu_table ); - - bsp_cleanup(); - - return 0; -} diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/startup/linkcmds b/c/src/lib/libbsp/no_cpu/no_bsp/startup/linkcmds deleted file mode 100644 index 144b9e68a0..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/startup/linkcmds +++ /dev/null @@ -1,46 +0,0 @@ -/* - * This file contains directives for the GNU linker which are specific - * to the FORCE CPU386 board. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -MEMORY - { - ram : org = 0x0, l = 1M - } - -SECTIONS -{ - .text 0x0 : - { - text_start = . ; - _text_start = . ; - *(.text) - _etext = ALIGN( 0x10 ) ; - } - .data ADDR( .text ) + SIZEOF( .text ): - { - data_start = . ; - _data_start = . ; - *(.data) - _edata = ALIGN( 0x10 ) ; - } - .bss ADDR( .data ) + SIZEOF( .data ): - { - bss_start = . ; - _bss_start = . ; - *(.bss) - *(COMMON) - end = . ; - __end = . ; - } -} diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/startup/main.c b/c/src/lib/libbsp/no_cpu/no_bsp/startup/main.c deleted file mode 100644 index 622edb1ad7..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/startup/main.c +++ /dev/null @@ -1,33 +0,0 @@ -/* main() - * - * This is the entry point for the application. It calls - * the bsp_start routine to the actual dirty work. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -int main( - int argc, - char **argv -) -{ - bsp_start(); - - /* - * May be able to return to the "crt/start.s" code but also - * may not be able to. Do something here which is board dependent. - */ - - rtems_fatal_error_occurred( 0 ); -} diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/startup/setvec.c b/c/src/lib/libbsp/no_cpu/no_bsp/startup/setvec.c deleted file mode 100644 index 0f556a4d5e..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/startup/setvec.c +++ /dev/null @@ -1,44 +0,0 @@ -/* set_vector - * - * This routine installs an interrupt vector on the target Board/CPU. - * This routine is allowed to be as board dependent as necessary. - * - * INPUT: - * handler - interrupt handler entry point - * vector - vector number - * type - 0 indicates raw hardware connect - * 1 indicates RTEMS interrupt connect - * - * RETURNS: - * address of previous interrupt handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -no_cpu_isr_entry set_vector( /* returns old vector */ - rtems_isr_entry handler, /* isr routine */ - rtems_vector_number vector, /* vector number */ - int type /* RTEMS or RAW intr */ -) -{ - no_cpu_isr_entry previous_isr; - - if ( type ) - rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr ); - else { - /* XXX: install non-RTEMS ISR as "raw" interupt */ - } - return previous_isr; -} - diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/timer/timer.c b/c/src/lib/libbsp/no_cpu/no_bsp/timer/timer.c deleted file mode 100644 index a3b8775444..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/timer/timer.c +++ /dev/null @@ -1,105 +0,0 @@ -/* timer.c - * - * This file manages the benchmark timer used by the RTEMS Timing Test - * Suite. Each measured time period is demarcated by calls to - * Timer_initialize() and Read_timer(). Read_timer() usually returns - * the number of microseconds since Timer_initialize() exitted. - * - * NOTE: It is important that the timer start/stop overhead be - * determined when porting or modifying this code. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -rtems_unsigned32 Timer_interrupts; -rtems_boolean Timer_driver_Find_average_overhead; - -void Timer_initialize( void ) -{ - - /* - * Timer has never overflowed. This may not be necessary on some - * implemenations of timer but .... - */ - - Timer_interrupts = 0; - - /* - * Somehow start the timer - */ -} - -/* - * The following controls the behavior of Read_timer(). - * - * AVG_OVEREHAD is the overhead for starting and stopping the timer. It - * is usually deducted from the number returned. - * - * LEAST_VALID is the lowest number this routine should trust. Numbers - * below this are "noise" and zero is returned. - */ - -#define AVG_OVERHEAD 0 /* It typically takes X.X microseconds */ - /* (Y countdowns) to start/stop the timer. */ - /* This value is in microseconds. */ -#define LEAST_VALID 1 /* Don't trust a clicks value lower than this */ - -int Read_timer( void ) -{ - rtems_unsigned32 clicks; - rtems_unsigned32 total; - - /* - * Read the timer and see how many clicks it has been since we started. - */ - - clicks = 0; /* XXX: read some HW here */ - - /* - * Total is calculated by taking into account the number of timer overflow - * interrupts since the timer was initialized and clicks since the last - * interrupts. - */ - - total = clicks * 0; - - if ( Timer_driver_Find_average_overhead == 1 ) - return total; /* in XXX microsecond units */ - else { - if ( total < LEAST_VALID ) - return 0; /* below timer resolution */ - /* - * Somehow convert total into microseconds - */ - return (total - AVG_OVERHEAD); - } -} - -/* - * Empty function call used in loops to measure basic cost of looping - * in Timing Test Suite. - */ - -rtems_status_code Empty_function( void ) -{ - return RTEMS_SUCCESSFUL; -} - -void Set_find_average_overhead( - rtems_boolean find_flag -) -{ - Timer_driver_Find_average_overhead = find_flag; -} - diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/timer/timerisr.c b/c/src/lib/libbsp/no_cpu/no_bsp/timer/timerisr.c deleted file mode 100644 index f52774b75e..0000000000 --- a/c/src/lib/libbsp/no_cpu/no_bsp/timer/timerisr.c +++ /dev/null @@ -1,37 +0,0 @@ -/* timerisr.s - * - * If required this ISR is used to bump a count of interval "overflow" - * interrupts which have occurred since the timer was started. The - * number of overflows is taken into account in the Read_timer() - * routine if necessary. - * - * To reduce overhead this is best to be the "rawest" hardware interupt - * handler you can write. This should be the only interrupt which can - * occur during the measured time period. - * - * NOTE: This file is USUALLY in assembly and is LEAN AND MEAN. - * Any code in this isr is pure overhead which can perturb - * the accuracy of the Timing Test Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -extern rtems_unsigned32 _Timer_interrupts; - -void timerisr( void ) -{ - /* - * _Timer_interrupts += TIMER_BETWEEN_OVERFLOWS (usually in microseconds) - * return from interrupt - */ -} diff --git a/c/src/lib/libbsp/shmdr/README b/c/src/lib/libbsp/shmdr/README deleted file mode 100644 index 5ed9e861b0..0000000000 --- a/c/src/lib/libbsp/shmdr/README +++ /dev/null @@ -1,9 +0,0 @@ -# -# $Id$ -# - -The mpci.h file provided in here is too simple for an MPCI with -multiple ways to get to a node. - -This version of the shm driver needs to be reorganized to follow -the better model of the Ada version. diff --git a/c/src/lib/libbsp/shmdr/addlq.c b/c/src/lib/libbsp/shmdr/addlq.c deleted file mode 100644 index 2c2529c834..0000000000 --- a/c/src/lib/libbsp/shmdr/addlq.c +++ /dev/null @@ -1,43 +0,0 @@ -/* void Shm_Locked_queue_Add( lq_cb, ecb ) - * - * This routine adds an envelope control block to a shared memory queue. - * - * Input parameters: - * lq_cb - pointer to a locked queue control block - * ecb - pointer to an envelope control block - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -void Shm_Locked_queue_Add( - Shm_Locked_queue_Control *lq_cb, - Shm_Envelope_control *ecb -) -{ - rtems_unsigned32 index; - - ecb->next = Shm_Locked_queue_End_of_list; - ecb->queue = lq_cb->owner; - index = ecb->index; - - Shm_Lock( lq_cb ); - if ( Shm_Convert(lq_cb->front) != Shm_Locked_queue_End_of_list ) - Shm_Envelopes[ Shm_Convert(lq_cb->rear) ].next = index; - else - lq_cb->front = index; - lq_cb->rear = index; - Shm_Unlock( lq_cb ); -} diff --git a/c/src/lib/libbsp/shmdr/cnvpkt.c b/c/src/lib/libbsp/shmdr/cnvpkt.c deleted file mode 100644 index 2c3a144167..0000000000 --- a/c/src/lib/libbsp/shmdr/cnvpkt.c +++ /dev/null @@ -1,42 +0,0 @@ -/* void Shm_Convert_packet( &packet ) - * - * This routine is the shared memory locked queue MPCI driver routine - * used to convert the RTEMS's information in a packet from non-native - * format to processor native format. - * - * Input parameters: - * packet - pointer to a packet - * - * Output parameters: - * *packet - packet in native format - * - * NOTE: Message buffers are not manipulated. - * Endian conversion is currently the only conversion. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -void Shm_Convert_packet( - rtems_packet_prefix *packet -) -{ - rtems_unsigned32 *pkt, i; - - pkt = (rtems_unsigned32 *) packet; - for ( i=RTEMS_MINIMUN_HETERO_CONVERSION ; i ; i--, pkt++ ) - *pkt = CPU_swap_u32( *pkt ); - - for ( i=packet->to_convert ; i ; i--, pkt++ ) - *pkt = CPU_swap_u32( *pkt ); -} diff --git a/c/src/lib/libbsp/shmdr/dump.c b/c/src/lib/libbsp/shmdr/dump.c deleted file mode 100644 index e028ab4204..0000000000 --- a/c/src/lib/libbsp/shmdr/dump.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * This routine is invoked following a reset to report the statistics - * gathered during the previous execution. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -#include "shm.h" - -void -Shm_Print_statistics(void) -{ - rtems_unsigned32 ticks; - rtems_unsigned32 ticks_per_second; - rtems_unsigned32 seconds; - int packets_per_second; - - (void) rtems_clock_get( RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &ticks ); - (void) rtems_clock_get( RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticks_per_second ); - - seconds = ticks / ticks_per_second; - - packets_per_second = Shm_Receive_message_count / seconds; - if ( (Shm_Receive_message_count % seconds) >= (seconds / 2) ) - packets_per_second++; - - printf( "\n\nSHMDR STATISTICS (NODE %d)\n", Shm_Local_node ); - printf( "TICKS SINCE BOOT = %d\n", ticks ); - printf( "TICKS PER SECOND = %d\n", ticks_per_second ); - printf( "ISRs=%d\n", Shm_Interrupt_count ); - printf( "RECV=%d\n", Shm_Receive_message_count ); - printf( "NULL=%d\n", Shm_Null_message_count ); - printf( "PKTS/SEC=%d\n", packets_per_second ); -} diff --git a/c/src/lib/libbsp/shmdr/fatal.c b/c/src/lib/libbsp/shmdr/fatal.c deleted file mode 100644 index fc1e9f8624..0000000000 --- a/c/src/lib/libbsp/shmdr/fatal.c +++ /dev/null @@ -1,37 +0,0 @@ -/* void MPCI_Fatal( error ) - * - * This routine is the shared memory driver fatal error handler. - * - * Input parameters: - * error - fatal error code - * - * Output parameters: NEVER RETURNS - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -void MPCI_Fatal( - rtems_unsigned32 error -) -{ - /* Eventually need to attempt to broadcast a K_FATAL message - * without checking for all possible errors (do not want to - * recurse). - * - * Also need to avoid using Shm_Node_statuses if the driver has not been - * initialized. - */ - - Shm_Local_node_status->error = Shm_Convert(error); -} diff --git a/c/src/lib/libbsp/shmdr/getlq.c b/c/src/lib/libbsp/shmdr/getlq.c deleted file mode 100644 index 180c33ef00..0000000000 --- a/c/src/lib/libbsp/shmdr/getlq.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Shm_Envelope_control *Shm_Locked_queue_Get( lq_cb ) - * - * This routine returns an envelope control block from a shared - * memory queue. - * - * Input parameters: - * lq_cb - pointer to a locked queue control block - * - * Output parameters: - * returns - pointer to an envelope control block - * - NULL if no envelopes on specified queue - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -Shm_Envelope_control *Shm_Locked_queue_Get( - Shm_Locked_queue_Control *lq_cb -) -{ - Shm_Envelope_control *tmp_ecb; - rtems_unsigned32 tmpfront; - - tmp_ecb = NULL; - Shm_Lock( lq_cb ); - tmpfront = Shm_Convert(lq_cb->front); - if ( tmpfront != Shm_Locked_queue_End_of_list ) { - tmp_ecb = &Shm_Envelopes[ tmpfront ]; - lq_cb->front = tmp_ecb->next; - if ( tmp_ecb->next == Shm_Locked_queue_End_of_list ) - lq_cb->rear = Shm_Locked_queue_End_of_list; - tmp_ecb->next = Shm_Locked_queue_Not_on_list; - } - Shm_Unlock( lq_cb ); - return( tmp_ecb ); -} diff --git a/c/src/lib/libbsp/shmdr/getpkt.c b/c/src/lib/libbsp/shmdr/getpkt.c deleted file mode 100644 index c80b3ed282..0000000000 --- a/c/src/lib/libbsp/shmdr/getpkt.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Shm_Get_packet - * - * This routine is the shared memory locked queue MPCI driver - * routine used to obtain an empty message packet. - * - * Input parameters: - * packet - address of pointer to packet - * - * Output parameters: - * *(cpb->get_packet) - address of allocated packet - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -rtems_mpci_entry Shm_Get_packet( - rtems_packet_prefix **packet -) -{ - Shm_Envelope_control *ecb; - - ecb = Shm_Allocate_envelope(); - if ( !ecb ) - rtems_fatal_error_occurred ( SHM_NO_FREE_PKTS ); - *packet = Shm_Envelope_control_to_packet_prefix_pointer( ecb ); -} diff --git a/c/src/lib/libbsp/shmdr/init.c b/c/src/lib/libbsp/shmdr/init.c deleted file mode 100644 index b9de91d449..0000000000 --- a/c/src/lib/libbsp/shmdr/init.c +++ /dev/null @@ -1,248 +0,0 @@ -/* Shm_Initialization - * - * This routine is the shared memory communications initerface - * driver initialization routine. - * - * Input parameters: - * configuration - address of configuration table - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#define _SHM_INIT - -#include -#include "shm.h" - -/* - * Need a user extension control to install MPCI_Fatal as - * a fatal error handler extension - */ - -rtems_extensions_table MPCI_Shm_extensions; - -rtems_mpci_entry Shm_Initialization( - rtems_configuration_table *configuration, - rtems_cpu_table *cpu_configuration, - rtems_multiprocessing_table *mp_configuration - -) -{ - rtems_unsigned32 i, *u32_ptr, *endshm, all_initialized; - rtems_unsigned32 interrupt_cause, interrupt_value; - void *interrupt_address; - Shm_Node_status_control *nscb; - rtems_unsigned32 extension_id; /* for installation of MPCI_Fatal */ - rtems_unsigned32 remaining_memory; - - Shm_RTEMS_Configuration = configuration; - Shm_RTEMS_MP_Configuration = mp_configuration; - - Shm_Local_node = Shm_RTEMS_MP_Configuration->node; - Shm_Maximum_nodes = Shm_RTEMS_MP_Configuration->maximum_nodes; - - Shm_Get_configuration( Shm_Local_node ,&Shm_Configuration ); - - Shm_Receive_message_count = 0; - Shm_Null_message_count = 0; - Shm_Interrupt_count = 0; - - /* - * Set the Node Status indicators - */ - -#define PEND Shm_Convert(rtems_build_name( 'P', 'E', 'N', 'D' )) -#define COMP Shm_Convert(rtems_build_name( 'C', 'O', 'M', 'P' )) -#define ACTV Shm_Convert(rtems_build_name( 'A', 'C', 'T', 'V' )) - - Shm_Pending_initialization = PEND; - Shm_Initialization_complete = COMP; - Shm_Active_node = ACTV; - - /* - * Initialize the constants used by the Locked Queue code. - */ - - Shm_Locked_queue_End_of_list = Shm_Convert( 0xffffffff ); - Shm_Locked_queue_Not_on_list = Shm_Convert( 0xfffffffe ); - - /* - * Set the base addresses for the: - * + Node Status Table - * + Free Pool and Receive Queues - * + Envelopes - */ - - Shm_Node_statuses = (Shm_Node_status_control *) START_NS_CBS; - Shm_Locked_queues = (Shm_Locked_queue_Control *) START_LQ_CBS; - Shm_Envelopes = (Shm_Envelope_control *) START_ENVELOPES; - - /* - * Calculate the maximum number of envelopes which can be - * placed the remaining shared memory. - */ - - remaining_memory = - ((void *)Shm_Configuration->base + Shm_Configuration->length) - - ((void *)Shm_Envelopes); - - Shm_Maximum_envelopes = remaining_memory / sizeof( Shm_Envelope_control ); - Shm_Maximum_envelopes -= 1; - - /* - * Set the pointer to the receive queue for the local node. - * When we receive a node, we will get it from here before - * processing it. - */ - - Shm_Local_receive_queue = &Shm_Locked_queues[ Shm_Local_node ]; - Shm_Local_node_status = &Shm_Node_statuses[ Shm_Local_node ]; - - /* - * Convert local interrupt cause information into the - * neutral format so other nodes will be able to - * understand it. - */ - - interrupt_address = - (void *) Shm_Convert( (rtems_unsigned32)Shm_Configuration->Intr.address ); - interrupt_value = Shm_Convert( Shm_Configuration->Intr.value ); - interrupt_cause = Shm_Convert( Shm_Configuration->Intr.length ); - - if ( Shm_Configuration->poll_intr == POLLED_MODE ) Shm_setclockvec(); - else Shm_setvec(); - - if ( Shm_Is_master_node() ) { - - /* - * Zero out the shared memory area. - */ - - for ( u32_ptr = (rtems_unsigned32 *)Shm_Configuration->base, - endshm = (rtems_unsigned32 *)END_SHARED_MEM ; - u32_ptr < endshm ; ) - *u32_ptr++ = 0; - - /* - * Initialize all of the locked queues (the free envelope - * pool and a receive queue per node) and set all of the - * node's status so they will be waiting to initialization - * to complete. - */ - - Shm_Locked_queue_Initialize( FREE_ENV_CB, FREE_ENV_POOL ); - - for ( i=SHM_FIRST_NODE ; i<=Shm_Maximum_nodes ; i++ ) { - Shm_Initialize_receive_queue( i ); - - Shm_Node_statuses[ i ].status = Shm_Pending_initialization; - Shm_Node_statuses[ i ].error = 0; - } - - /* - * Initialize all of the envelopes and place them in the - * free pool. - */ - - for ( i=0 ; iint_address = (rtems_unsigned32) interrupt_address; - Shm_Local_node_status->int_value = interrupt_value; - Shm_Local_node_status->int_length = interrupt_cause; - - Shm_Local_node_status->status = Shm_Initialization_complete; - - /* - * Loop until all nodes have completed initialization. - */ - - all_initialized = 0; - - for ( ; ; ) { - - if ( all_initialized == 1 ) break; - - all_initialized = 1; - - for ( i = SHM_FIRST_NODE ; i <= Shm_Maximum_nodes ; i++ ) - if ( Shm_Node_statuses[ i ].status != Shm_Initialization_complete ) - all_initialized = 0; - } - - /* - * Tell the other nodes we think that the system is up. - */ - - for ( i = SHM_FIRST_NODE ; i <= Shm_Maximum_nodes ; i++ ) - Shm_Node_statuses[ i ].status = Shm_Active_node; - - } else { /* is not MASTER node */ - - /* - * Initialize the node status for the non-master nodes. - * Because the master node zeroes out memory, it is - * necessary for them to keep putting their values in - * the node status area until the master says they - * should become active. - */ - - Shm_Local_node_status->status = Shm_Pending_initialization; - - do { - - if ( Shm_Local_node_status->status == Shm_Pending_initialization ) { - - /* - * Initialize this node's interrupt information in the - * shared area so other nodes can interrupt us. - */ - - Shm_Local_node_status->int_address = - (rtems_unsigned32) interrupt_address; - Shm_Local_node_status->int_value = interrupt_value; - Shm_Local_node_status->int_length = interrupt_cause; - - Shm_Local_node_status->status = Shm_Initialization_complete; - } - } while ( Shm_Local_node_status->status != Shm_Active_node ) ; - } - - /* - * Initialize the Interrupt Information Table - */ - - for ( i = SHM_FIRST_NODE ; i <= Shm_Maximum_nodes ; i++ ) { - nscb = &Shm_Node_statuses[ i ]; - - Shm_Interrupt_table[i].address = Shm_Convert_address( - (void *)Shm_Convert(((vol_u32) nscb->int_address)) - ); - Shm_Interrupt_table[i].value = Shm_Convert( nscb->int_value ); - Shm_Interrupt_table[i].length = Shm_Convert( nscb->int_length ); - } - - MPCI_Shm_extensions.fatal = MPCI_Fatal; - (void) rtems_extension_create( - rtems_build_name( 'M', 'P', 'E', 'X' ), - &MPCI_Shm_extensions, - &extension_id - ); -} diff --git a/c/src/lib/libbsp/shmdr/initlq.c b/c/src/lib/libbsp/shmdr/initlq.c deleted file mode 100644 index 3f44cf577d..0000000000 --- a/c/src/lib/libbsp/shmdr/initlq.c +++ /dev/null @@ -1,35 +0,0 @@ -/* void Shm_Locked_queue_Initialize( lq_cb, owner ) - * - * This routine initializes a shared memory locked queue. - * - * Input parameters: - * lq_cb - pointer to the control block of the queue - * to be initialized - * owner - unique idenitifier of who owns this queue. - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -void Shm_Locked_queue_Initialize( - Shm_Locked_queue_Control *lq_cb, - rtems_unsigned32 owner -) -{ - Shm_Initialize_lock( lq_cb ); - lq_cb->front = Shm_Locked_queue_End_of_list; - lq_cb->rear = Shm_Locked_queue_End_of_list; - lq_cb->owner = Shm_Convert(owner); -} diff --git a/c/src/lib/libbsp/shmdr/intr.c b/c/src/lib/libbsp/shmdr/intr.c deleted file mode 100644 index 8982103227..0000000000 --- a/c/src/lib/libbsp/shmdr/intr.c +++ /dev/null @@ -1,58 +0,0 @@ -/* void Shm_Cause_interrupt( node ) - * - * This routine is the shared memory driver routine which - * generates interrupts to other CPUs. - * - * It uses the information placed in the node status control - * block by each node. For example, when used with the Motorola - * MVME136 board, the MPCSR is used. - * - * Input parameters: - * node - destination of this packet (0 = broadcast) - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -void Shm_Cause_interrupt( - rtems_unsigned32 node -) -{ - Shm_Interrupt_information *intr; - rtems_unsigned8 *u8; - rtems_unsigned16 *u16; - rtems_unsigned32 *u32; - rtems_unsigned32 value; - - intr = &Shm_Interrupt_table[node]; - value = intr->value; - - switch ( intr->length ) { - case NO_INTERRUPT: - break; - case BYTE: - u8 = (rtems_unsigned8 *)intr->address; - *u8 = (rtems_unsigned8) value; - break; - case WORD: - u16 = (rtems_unsigned16 *)intr->address; - *u16 = (rtems_unsigned16) value; - break; - case LONG: - u32 = (rtems_unsigned32 *)intr->address; - *u32 = (rtems_unsigned32) value; - break; - } -} diff --git a/c/src/lib/libbsp/shmdr/mpci.h b/c/src/lib/libbsp/shmdr/mpci.h deleted file mode 100644 index 819349f96f..0000000000 --- a/c/src/lib/libbsp/shmdr/mpci.h +++ /dev/null @@ -1,59 +0,0 @@ -/* mpci.h - * - * This include file contains all the renaming necessary to - * have an application use the Shared Memory Driver as its - * sole mechanism for MPCI. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MPCI_h -#define __MPCI_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include "shm.h" - -#define MPCI_Initialization( _configuration ) \ - Shm_Initialization( _configuration ) - -#define MPCI_Get_packet( _the_packet ) \ - Shm_Get_packet( _the_packet ) - -#define MPCI_Return_packet( _the_packet ) \ - Shm_Return_packet( _the_packet ) - -#define MPCI_Receive_packet( _the_packet ) \ - Shm_Receive_packet( _the_packet ) - -#define MPCI_Send_packet( _destination, _the_packet ) \ - Shm_Send_packet( _destination, _the_packet ) - -/* Unnecessary... mapped in shm.h -#define MPCI_Fatal( _the_error ) \ - Shm_Fatal( _the_error ) -*/ - -#define MPCI_Enable_statistics() - -#define MPCI_Print_statistics() \ - Shm_Print_statistics() - -/* no need to rename the MPCI_Table either */ - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/shmdr/mpisr.c b/c/src/lib/libbsp/shmdr/mpisr.c deleted file mode 100644 index 93ced3d351..0000000000 --- a/c/src/lib/libbsp/shmdr/mpisr.c +++ /dev/null @@ -1,23 +0,0 @@ -/* _Shm_isr() - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -rtems_isr Shm_isr( - rtems_vector_number vector -) -{ - Shm_Interrupt_count += 1; - rtems_multiprocessing_announce(); -} diff --git a/c/src/lib/libbsp/shmdr/poll.c b/c/src/lib/libbsp/shmdr/poll.c deleted file mode 100644 index 43f6711ff9..0000000000 --- a/c/src/lib/libbsp/shmdr/poll.c +++ /dev/null @@ -1,40 +0,0 @@ -/* void Shm_Poll() - * - * This routine polls to see if a packet has arrived. If one - * has it informs the executive. It is typically called from - * the clock tick interrupt service routine. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" -#include "clockdrv.h" - -void Shm_Poll() -{ - rtems_unsigned32 tmpfront; - - Clock_isr( 0 ); /* invoke standard clock ISR */ - - /* enable_tracing(); */ - /* ticks += 1; */ - Shm_Lock( Shm_Local_receive_queue ); - tmpfront = Shm_Local_receive_queue->front; - Shm_Unlock( Shm_Local_receive_queue ); - if ( Shm_Convert(tmpfront) == Shm_Locked_queue_End_of_list ) return; - rtems_multiprocessing_announce(); - Shm_Interrupt_count++; -} diff --git a/c/src/lib/libbsp/shmdr/receive.c b/c/src/lib/libbsp/shmdr/receive.c deleted file mode 100644 index e094a2df6b..0000000000 --- a/c/src/lib/libbsp/shmdr/receive.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Shm_Receive_packet - * - * This routine is the shared memory locked queue MPCI driver routine - * used to obtain a packet containing a message from this node's - * receive queue. - * - * Input parameters: - * packet - address of a pointer to a packet - * - * Output parameters: - * *(rpb->packet) - pointer to packet - * NULL if no packet currently available - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -rtems_mpci_entry Shm_Receive_packet( - rtems_packet_prefix **packet -) -{ - Shm_Envelope_control *ecb; - - ecb = Shm_Locked_queue_Get( Shm_Local_receive_queue ); - if ( ecb ) { - *(packet) = Shm_Envelope_control_to_packet_prefix_pointer( ecb ); - if ( ecb->Preamble.endian != Shm_Configuration->format ) - Shm_Convert_packet( *packet ); - Shm_Receive_message_count++; - } else { - *(packet) = NULL; - Shm_Null_message_count++; - } -} diff --git a/c/src/lib/libbsp/shmdr/retpkt.c b/c/src/lib/libbsp/shmdr/retpkt.c deleted file mode 100644 index 973b84ab0d..0000000000 --- a/c/src/lib/libbsp/shmdr/retpkt.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Shm_Return_packet - * - * This routine is the shared memory locked queue MPCI driver - * routine used to return a message packet to a free envelope - * pool accessible by this node. - * - * Input parameters: - * packet - address of pointer to packet - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -rtems_mpci_entry Shm_Return_packet( - rtems_packet_prefix *packet -) -{ - Shm_Free_envelope( Shm_Packet_prefix_to_envelope_control_pointer(packet) ); -} - diff --git a/c/src/lib/libbsp/shmdr/send.c b/c/src/lib/libbsp/shmdr/send.c deleted file mode 100644 index 58a5bb93b9..0000000000 --- a/c/src/lib/libbsp/shmdr/send.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Shm_Send_packet - * - * This routine is the shared memory driver locked queue write - * MPCI driver routine. This routine sends the specified packet - * to the destination specified by "node". A "node" value of - * zero designates that this packet is to be broadcasted. - * - * Input parameters: - * node - destination of this packet (0 = broadcast) - * packet - address of packet - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -struct pkt_cpy { - rtems_unsigned32 packet[MAX_PACKET_SIZE/4]; -}; - -rtems_mpci_entry Shm_Send_packet( - rtems_unsigned32 node, - rtems_packet_prefix *packet -) -{ - Shm_Envelope_control *ecb, *tmp_ecb; - rtems_unsigned32 nnum; - - ecb = Shm_Packet_prefix_to_envelope_control_pointer( packet ); - if ( node ) { - Shm_Build_preamble( ecb, node ); - Shm_Build_postamble( ecb ); - Shm_Append_to_receive_queue( node, ecb ); - (*Shm_Configuration->cause_intr)( node ); - } - else { - for( nnum = SHM_FIRST_NODE ; nnum <= Shm_Maximum_nodes ; nnum++ ) - if ( Shm_Local_node != nnum ) { - tmp_ecb = Shm_Allocate_envelope(); - if ( !tmp_ecb ) - rtems_fatal_error_occurred( SHM_NO_FREE_PKTS ); - Shm_Build_preamble( tmp_ecb, nnum ); - *((struct pkt_cpy *)tmp_ecb->packet) = *((struct pkt_cpy *)packet); - Shm_Build_postamble( tmp_ecb ); - Shm_Append_to_receive_queue( nnum, tmp_ecb ); - (*Shm_Configuration->cause_intr)( nnum ); - } - Shm_Free_envelope( ecb ); - } -} diff --git a/c/src/lib/libbsp/shmdr/setckvec.c b/c/src/lib/libbsp/shmdr/setckvec.c deleted file mode 100644 index 0b5e306dab..0000000000 --- a/c/src/lib/libbsp/shmdr/setckvec.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Shm_setclockvec - * - * This routines installs the shared memory clock interrupt handler - * used when the driver is used in polling mode. - * - * INPUT PARAMETERS: NONE - * - * OUTPUT PARAMETERS: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" -#include "clockdrv.h" - -rtems_isr Shm_setclockvec() -{ - ReInstall_clock( Shm_Poll ); -} diff --git a/c/src/lib/libbsp/shmdr/shm.h b/c/src/lib/libbsp/shmdr/shm.h deleted file mode 100644 index bee930138c..0000000000 --- a/c/src/lib/libbsp/shmdr/shm.h +++ /dev/null @@ -1,542 +0,0 @@ -/* shm.h - * - * This include file contains all the constants, structures, - * and global variables for this RTEMS based shared memory - * communications interface driver. - * - * Processor board dependencies are in other files. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SHM_h -#define __SHM_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* The information contained in the Node Status, Locked Queue, and - * Envelope Control Blocks must be maintained in a NEUTRAL format. - * Currently the neutral format may be selected as big or little - * endian by simply defining either NEUTRAL_BIG or NEUTRAL_LITTLE. - * - * It is CRITICAL to note that the neutral format can ONLY be - * changed by modifying this file and recompiling the ENTIRE - * SHM driver including ALL target specific support files. - * - * The following table details the memory contents for the endian - * field of the Node Status Control Block in the various - * data format configurations (data is in hexadecimal): - * - * NEUTRAL NATIVE BYTE 0 BYTE 1 BYTE 2 BYTE 3 - * ======= ====== ====== ====== ====== ====== - * BIG BIG 00 00 00 01 - * BIG LITTLE 10 00 00 00 - * LITTLE BIG 01 00 00 00 - * LITTLE LITTLE 00 00 00 10 - * - * - * NOTE: XXX - * PORTABILITY OF LOCKING INSTRUCTIONS - * =================================== - * The locking mechanism described below is not - * general enough. Where the hardware supports - * it we should use "atomic swap" instructions - * so the values in the lock can be tailored to - * support a CPU with only weak atomic memory - * instructions. There are combinations of - * CPUs with inflexible atomic memory instructions - * which appear to be incompatible. For example, - * the SPARClite instruction uses a byte which is - * 0xFF when locked. The PA-RISC uses 1 to indicate - * locked and 0 when unlocked. These CPUs appear to - * have incompatible lock instructions. But - * they could be used in a heterogenous system - * with does not mix SPARCs and PA-RISCs. For - * example, the i386 and SPARC or i386 and SPARC - * could work together. The bottom line is that - * not every CPU will work together using this - * locking scheme. There are supposed to be - * algorithms to do this without hardware assist - * and one of these should be incorporated into - * the shared memory driver. - * - * The most flexible scheme using the instructions - * of the various CPUs for efficiency would be to use - * "atomic swaps" wherever possible. Make the lock - * and unlock configurable much like BIG vs LITTLE - * endian use of shared memory is now. The values - * of the lock could then reflect the "worst" - * CPU in a system. This still results in mixes - * of CPUs which are incompatible. - * - * The current locking mechanism is based upon the MC68020 - * "tas" instruction which is atomic. All ports to other CPUs - * comply with the restrictive placement of lock bit by this - * instruction. The lock bit is the most significant bit in a - * big-endian rtems_unsigned32. On other processors, the lock is - * typically implemented via an atomic swap or atomic modify - * bits type instruction. - */ - -#define NEUTRAL_BIG - -#ifdef NEUTRAL_BIG -#define SHM_BIG 0x00000001 -#define SHM_LITTLE 0x10000000 -#endif - -#ifdef NEUTRAL_LITTLE -#define SHM_BIG 0x01000000 -#define SHM_LITTLE 0x00000010 -#endif - -/* - * The following are the values used to fill in the lock field. Some CPUs - * are able to write only a single value into field. By making the - * lock and unlock values configurable, CPUs which support "atomic swap" - * instructions can generally be made to work in any heterogeneous - * configuration. However, it is possible for two CPUs to be incompatible - * in regards to the lock field values. This occurs when two CPUs - * which write only a single value to the field are used in a system - * but the two CPUs write different incompatible values. - * - * NOTE: The following is a first attempt at defining values which - * have a chance at working together. The m68k should use - * chk2 instead of tas to be less restrictive. Target endian - * problems (like the Force CPU386 which has (broken) big endian - * view of the VMEbus address space) are not addressed yet. - */ - -#if defined(i960) -#define SHM_LOCK_VALUE 0x00000080 -#define SHM_UNLOCK_VALUE 0 -#elif defined(m68k) -#define SHM_LOCK_VALUE 0x80000000 -#define SHM_UNLOCK_VALUE 0 -#define SHM_LOCK_VALUE 0x80000000 -#define SHM_UNLOCK_VALUE 0 -#elif defined(i386) -#define SHM_LOCK_VALUE 0x80000000 -#define SHM_UNLOCK_VALUE 0 -#elif defined(hppa1_1) -#define SHM_LOCK_VALUE 0 -#define SHM_UNLOCK_VALUE 1 -#elif defined(unix) -#define SHM_LOCK_VALUE 0 -#define SHM_UNLOCK_VALUE 1 -#elif defined(no_cpu) /* for this values are irrelevant */ -#define SHM_LOCK_VALUE 1 -#define SHM_UNLOCK_VALUE 0 -#endif - -#define Shm_Convert( value ) \ - ((Shm_Configuration->convert) ? \ - (*Shm_Configuration->convert)(value) : (value)) - -/* constants */ - -#define SHM_MASTER 1 /* master initialization node */ -#define SHM_FIRST_NODE 1 - -/* size constants */ - -#define KILOBYTE (1024) -#define MEGABYTE (1024*1024) - -/* inter-node interrupt values */ - -#define NO_INTERRUPT 0 /* used for polled nodes */ -#define BYTE 1 -#define WORD 2 -#define LONG 4 - -/* operational mode constants -- used in SHM Configuration Table */ -#define POLLED_MODE 0 -#define INTR_MODE 1 - -/* error codes */ - -#define NO_ERROR 0 -#define SHM_NO_FREE_PKTS 0xf0000 - -/* null pointers of different types */ - -#define NULL_ENV_CB ((Shm_Envelope_control *) 0) -#define NULL_SHM_INFO ((struct shm_info *) 0) -#define NULL_CONVERT 0 -#if 0 -#define NULL_CONVERT (((rtems_unsigned32 *)())0) /* we want this */ -#endif - -/* The following is adjusted so envelopes are 0x80 bytes long. */ -/* It should be >= MIN_PKT_SIZE in rtems.h */ - -#define MAX_PACKET_SIZE (80) - -/* constants pertinent to Locked Queue routines */ - -#define LQ_UNLOCKED SHM_UNLOCK_VALUE -#define LQ_LOCKED SHM_LOCK_VALUE - -/* constants related to the Free Envelope Pool */ - -#define FREE_ENV_POOL 0 -#define FREE_ENV_CB (&Shm_Locked_queues[ FREE_ENV_POOL ]) - -/* The following are important when dealing with - * the shared memory communications interface area. - * - * NOTE: The starting address and length of the shared memory - * is defined in a system dependent file. - */ - -#if 0 -#define START_NS_CBS ( (rtems_unsigned8 *) START_SHARED_MEM ) -#define START_LQ_CBS ( ((rtems_unsigned8 *) START_NS_CBS) + \ - ( (sizeof (Shm_Node_status_control)) * (Shm_Maximum_nodes + 1) ) ) -#define START_ENVELOPES ( ((rtems_unsigned8 *) START_LQ_CBS) + \ - ( (sizeof (Shm_Locked_queue_Control)) * (Shm_Maximum_nodes + 1) ) ) -#define END_SHMCI_AREA ( (rtems_unsigned8 *) START_ENVELOPES + \ - ( (sizeof (Shm_Envelope_control)) * Shm_Maximum_envelopes ) ) -#define END_SHARED_MEM ((rtems_unsigned32)START_SHARED_MEM+SHARED_MEM_LEN) -#endif - -#define START_NS_CBS ((void *)Shm_Configuration->base) -#define START_LQ_CBS ((START_NS_CBS) + \ - ( (sizeof (Shm_Node_status_control)) * (Shm_Maximum_nodes + 1) ) ) -#define START_ENVELOPES ( ((void *) START_LQ_CBS) + \ - ( (sizeof (Shm_Locked_queue_Control)) * (Shm_Maximum_nodes + 1) ) ) -#define END_SHMCI_AREA ( (void *) START_ENVELOPES + \ - ( (sizeof (Shm_Envelope_control)) * Shm_Maximum_envelopes ) ) -#define END_SHARED_MEM (START_NS_CBS+Shm_Configuration->length) - -/* macros */ - -#define Shm_Is_master_node() \ - ( SHM_MASTER == Shm_Local_node ) - -#define Shm_Free_envelope( ecb ) \ - Shm_Locked_queue_Add( FREE_ENV_CB, (ecb) ) -#define Shm_Allocate_envelope() \ - Shm_Locked_queue_Get(FREE_ENV_CB) - -#define Shm_Initialize_receive_queue(node) \ - Shm_Locked_queue_Initialize( &Shm_Locked_queues[node], node ) - -#define Shm_Append_to_receive_queue(node, ecb) \ - Shm_Locked_queue_Add( &Shm_Locked_queues[node], (ecb) ) - -#define Shm_Envelope_control_to_packet_prefix_pointer(ecb) \ - ((void *)(ecb)->packet) - -#define Shm_Packet_prefix_to_envelope_control_pointer( pkt ) \ - ((Shm_Envelope_control *)((rtems_unsigned8 *)(pkt) - \ - (sizeof(Shm_Envelope_preamble) + 4*sizeof(vol_u32)))) - -#define Shm_Build_preamble(ecb, node) \ - (ecb)->Preamble.endian = Shm_Configuration->format - -#define Shm_Build_postamble( ecb ) - -/* structures */ - -typedef volatile rtems_unsigned8 vol_u8; -typedef volatile rtems_unsigned32 vol_u32; - -/* shm control information */ - -struct shm_info { - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; - vol_u32 not_currently_used_3; -}; - -typedef struct { - /*byte start_of_text;*/ - vol_u32 endian; - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; -} Shm_Envelope_preamble; - -typedef struct { - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; - vol_u32 not_currently_used_3; - /*byte end_of_text;*/ -} Shm_Envelope_postable; - -/* WARNING! If you change this structure, don't forget to change - * Shm_Envelope_control_to_packet_prefix_pointer() and - * Shm_Packet_prefix_to_envelope_control_pointer() above. - */ - -/* This comment block describes the contents of each field - * of the Envelope Control Block: - * - * next - The index of the next envelope on this queue. - * queue - The index of the queue this envelope is on. - * index - The index of this envelope. - * Preamble - Generic packet preamble. One day this structure - * could be enhanced to contain routing information. - * packet - RTEMS MPCI packet. Untouched by SHM Driver - * other than copying and format conversion as - * documented in the RTEMS User's Guide. - * Postamble - Generic packet postamble. One day this structure - * could be enhanced to contain checksum information. - */ - -typedef struct { - vol_u32 next; /* next envelope on queue */ - vol_u32 queue; /* queue on which this resides */ - vol_u32 index; /* index into array of envelopes*/ - vol_u32 pad0; /* insure the next one is aligned */ - Shm_Envelope_preamble Preamble; /* header information */ - vol_u8 packet[MAX_PACKET_SIZE]; /* RTEMS INFO */ - Shm_Envelope_postable Postamble;/* trailer information */ -} Shm_Envelope_control; - -/* This comment block describes the contents of each field - * of the Locked Queue Control Block: - * - * lock - Lock used to insure mutually exclusive access. - * front - Index of first envelope on queue. This field - * is used to remove head of queue (receive). - * rear - Index of last envelope on queue. This field - * is used to add evelope to queue (send). - * owner - The node number of the recipient (owning) node. - * RTEMS does not use the node number zero (0). - * The zero node is used by the SHM Driver for the - * Free Envelope Queue shared by all nodes. - */ - -typedef struct { - vol_u32 lock; /* lock field for this queue */ - vol_u32 front; /* first envelope on queue */ - vol_u32 rear; /* last envelope on queue */ - vol_u32 owner; /* receiving (i.e. owning) node */ -} Shm_Locked_queue_Control; - -/* This comment block describes the contents of each field - * of the Node Status Control Block: - * - * status - Node status. Current values are Pending Initialization, - * Initialization Complete, and Active Node. Other values - * could be added to enhance fault tolerance. - * error - Zero if the node has not failed. Otherwise, - * this field contains a status indicating the - * failure reason. - * int_address, int_value, and int_length - * - These field are the Interrupt Information table - * for this node in neutral format. This is how - * each node knows how to generate interrupts. - */ - -typedef struct { - vol_u32 status; /* node status information */ - vol_u32 error; /* fatal error code */ - vol_u32 int_address; /* write here for interrupt */ - vol_u32 int_value; /* this value causes interrupt */ - vol_u32 int_length; /* for this length (0,1,2,4) */ - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; -} Shm_Node_status_control; - -/* This comment block describes the contents of each field - * of the Interrupt Information Table. This table describes - * how another node can generate an interrupt to this node. - * This information is target board dependent. If the - * SHM Driver is in POLLED_MODE, then all fields should - * be initialized to NO_INTERRUPT. - * - * address - The address to which another node should - * write to cause an interrupt. - * value - The value which must be written - * length - The size of the value to write. Valid - * values are BYTE, WORD, and LONG. - * - * NOTE: The Node Status Control Block contains this - * information in neutral format and not in a - * structure to avoid potential alignment problems. - */ - -typedef struct { - vol_u32 *address; /* write here for interrupt */ - vol_u32 value; /* this value causes interrupt */ - vol_u32 length; /* for this length (0,1,2,4) */ -} Shm_Interrupt_information; - -/* SHM Configuration Table - * - * This comment block describes the contents of each field - * of the SHM Configuration Table. - * - * base - The base address of the shared memory. This - * address may be specific to this node. - * length - The length of the shared memory in bytes. - * format - The natural format for rtems_unsigned32's in the - * shared memory. Valid values are currently - * only SHM_LITTLE and SHM_BIG. - * convert - The address of the routine which converts - * between neutral and local format. - * poll_intr - The operational mode of the driver. Some - * target boards may not provide hardware for - * an interprocessor interrupt. If POLLED_MODE - * is selected, the SHM driver will install a - * wrapper around the Clock_isr() to poll for - * incoming packets. Throughput is dependent - * on the time between clock interrupts. - * Valid values are POLLED_MODE and INTR_MODE. - * cause_intr - This is the address of the routine used to - * write to a particular address and cause an - * interrupt on another node. This routine - * may need to be target dependent if something - * other than a normal write from C does not work. - * Intr - This structure describes the operation required - * to cause an interrupt to this node. The actual - * contents of this structure are described above. - */ - -struct shm_config_info { - vol_u32 *base; /* base address of SHM */ - vol_u32 length; /* length (in bytes) of SHM */ - vol_u32 format; /* SHM is big or little endian */ - vol_u32 (*convert)();/* neutral conversion routine */ - vol_u32 poll_intr;/* POLLED or INTR driven mode */ - void (*cause_intr)( rtems_unsigned32 ); - Shm_Interrupt_information Intr; /* cause intr information */ -}; - -typedef struct shm_config_info shm_config_table; - -/* global variables */ - -#ifdef _SHM_INIT -#define SHM_EXTERN -#else -#define SHM_EXTERN extern -#endif - -SHM_EXTERN shm_config_table *Shm_Configuration; -SHM_EXTERN Shm_Interrupt_information Shm_Interrupt_table[16]; -SHM_EXTERN Shm_Node_status_control *Shm_Node_statuses; -SHM_EXTERN Shm_Locked_queue_Control *Shm_Locked_queues; -SHM_EXTERN Shm_Envelope_control *Shm_Envelopes; -SHM_EXTERN rtems_configuration_table *Shm_RTEMS_Configuration; -SHM_EXTERN rtems_multiprocessing_table *Shm_RTEMS_MP_Configuration; -SHM_EXTERN rtems_unsigned32 Shm_Receive_message_count; -SHM_EXTERN rtems_unsigned32 Shm_Null_message_count; -SHM_EXTERN rtems_unsigned32 Shm_Interrupt_count; -SHM_EXTERN rtems_unsigned32 Shm_Local_node; -SHM_EXTERN Shm_Locked_queue_Control *Shm_Local_receive_queue; -SHM_EXTERN Shm_Node_status_control *Shm_Local_node_status; -SHM_EXTERN rtems_unsigned32 Shm_isrstat; - /* reported by shmdr */ - -SHM_EXTERN rtems_unsigned32 Shm_Pending_initialization; -SHM_EXTERN rtems_unsigned32 Shm_Initialization_complete; -SHM_EXTERN rtems_unsigned32 Shm_Active_node; - -SHM_EXTERN rtems_unsigned32 Shm_Maximum_nodes; -SHM_EXTERN rtems_unsigned32 Shm_Maximum_envelopes; - -SHM_EXTERN rtems_unsigned32 Shm_Locked_queue_End_of_list; -SHM_EXTERN rtems_unsigned32 Shm_Locked_queue_Not_on_list; - -/* functions */ - -/* locked queue routines */ -void Shm_Locked_queue_Add( - Shm_Locked_queue_Control *, Shm_Envelope_control * ); -Shm_Envelope_control *Shm_Locked_queue_Get( Shm_Locked_queue_Control * ); -void Shm_Locked_queue_Initialize( - Shm_Locked_queue_Control *, rtems_unsigned32 ); - /* Shm_Initialize_lock is CPU dependent */ - /* Shm_Lock is CPU dependent */ - /* Shm_Unlock is CPU dependent */ - -/* portable routines */ -void Init_env_pool(); -void Shm_Print_statistics( void ); -void MPCI_Fatal( rtems_unsigned32 ); -rtems_task Shm_Cause_interrupt( rtems_unsigned32 ); -void Shm_Poll(); -void Shm_setclockvec(); -void Shm_Convert_packet( rtems_packet_prefix * ); - -/* CPU specific routines are inlined in shmcpu.h */ - -/* target specific routines */ -void *Shm_Convert_address( void * ); -void Shm_Get_configuration( rtems_unsigned32, shm_config_table ** ); -void Shm_isr(); -void Shm_setvec( void ); - -void Shm_Initialize_lock( Shm_Locked_queue_Control * ); -void Shm_Lock( Shm_Locked_queue_Control * ); -void Shm_Unlock( Shm_Locked_queue_Control * ); - -/* MPCI entry points */ -rtems_mpci_entry Shm_Get_packet( - rtems_packet_prefix ** -); - -rtems_mpci_entry Shm_Initialization( - rtems_configuration_table *configuration, - rtems_cpu_table *cpu_configuration, - rtems_multiprocessing_table *mp_configuration -); - -rtems_mpci_entry Shm_Receive_packet( - rtems_packet_prefix ** -); - -rtems_mpci_entry Shm_Return_packet( - rtems_packet_prefix * -); - -rtems_mpci_entry Shm_Send_packet( - rtems_unsigned32, - rtems_packet_prefix * -); - -#ifdef _SHM_INIT - -/* multiprocessor communications interface (MPCI) table */ - -rtems_mpci_table MPCI_table = { - 100000, /* default timeout value in ticks */ - Shm_Initialization, /* initialization procedure */ - Shm_Get_packet, /* get packet procedure */ - Shm_Return_packet, /* return packet procedure */ - Shm_Send_packet, /* packet send procedure */ - Shm_Receive_packet /* packet receive procedure */ -}; - -#else - -extern rtems_mpci_table MPCI_table; - -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/shmdr/shm_driver.h b/c/src/lib/libbsp/shmdr/shm_driver.h deleted file mode 100644 index bee930138c..0000000000 --- a/c/src/lib/libbsp/shmdr/shm_driver.h +++ /dev/null @@ -1,542 +0,0 @@ -/* shm.h - * - * This include file contains all the constants, structures, - * and global variables for this RTEMS based shared memory - * communications interface driver. - * - * Processor board dependencies are in other files. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SHM_h -#define __SHM_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* The information contained in the Node Status, Locked Queue, and - * Envelope Control Blocks must be maintained in a NEUTRAL format. - * Currently the neutral format may be selected as big or little - * endian by simply defining either NEUTRAL_BIG or NEUTRAL_LITTLE. - * - * It is CRITICAL to note that the neutral format can ONLY be - * changed by modifying this file and recompiling the ENTIRE - * SHM driver including ALL target specific support files. - * - * The following table details the memory contents for the endian - * field of the Node Status Control Block in the various - * data format configurations (data is in hexadecimal): - * - * NEUTRAL NATIVE BYTE 0 BYTE 1 BYTE 2 BYTE 3 - * ======= ====== ====== ====== ====== ====== - * BIG BIG 00 00 00 01 - * BIG LITTLE 10 00 00 00 - * LITTLE BIG 01 00 00 00 - * LITTLE LITTLE 00 00 00 10 - * - * - * NOTE: XXX - * PORTABILITY OF LOCKING INSTRUCTIONS - * =================================== - * The locking mechanism described below is not - * general enough. Where the hardware supports - * it we should use "atomic swap" instructions - * so the values in the lock can be tailored to - * support a CPU with only weak atomic memory - * instructions. There are combinations of - * CPUs with inflexible atomic memory instructions - * which appear to be incompatible. For example, - * the SPARClite instruction uses a byte which is - * 0xFF when locked. The PA-RISC uses 1 to indicate - * locked and 0 when unlocked. These CPUs appear to - * have incompatible lock instructions. But - * they could be used in a heterogenous system - * with does not mix SPARCs and PA-RISCs. For - * example, the i386 and SPARC or i386 and SPARC - * could work together. The bottom line is that - * not every CPU will work together using this - * locking scheme. There are supposed to be - * algorithms to do this without hardware assist - * and one of these should be incorporated into - * the shared memory driver. - * - * The most flexible scheme using the instructions - * of the various CPUs for efficiency would be to use - * "atomic swaps" wherever possible. Make the lock - * and unlock configurable much like BIG vs LITTLE - * endian use of shared memory is now. The values - * of the lock could then reflect the "worst" - * CPU in a system. This still results in mixes - * of CPUs which are incompatible. - * - * The current locking mechanism is based upon the MC68020 - * "tas" instruction which is atomic. All ports to other CPUs - * comply with the restrictive placement of lock bit by this - * instruction. The lock bit is the most significant bit in a - * big-endian rtems_unsigned32. On other processors, the lock is - * typically implemented via an atomic swap or atomic modify - * bits type instruction. - */ - -#define NEUTRAL_BIG - -#ifdef NEUTRAL_BIG -#define SHM_BIG 0x00000001 -#define SHM_LITTLE 0x10000000 -#endif - -#ifdef NEUTRAL_LITTLE -#define SHM_BIG 0x01000000 -#define SHM_LITTLE 0x00000010 -#endif - -/* - * The following are the values used to fill in the lock field. Some CPUs - * are able to write only a single value into field. By making the - * lock and unlock values configurable, CPUs which support "atomic swap" - * instructions can generally be made to work in any heterogeneous - * configuration. However, it is possible for two CPUs to be incompatible - * in regards to the lock field values. This occurs when two CPUs - * which write only a single value to the field are used in a system - * but the two CPUs write different incompatible values. - * - * NOTE: The following is a first attempt at defining values which - * have a chance at working together. The m68k should use - * chk2 instead of tas to be less restrictive. Target endian - * problems (like the Force CPU386 which has (broken) big endian - * view of the VMEbus address space) are not addressed yet. - */ - -#if defined(i960) -#define SHM_LOCK_VALUE 0x00000080 -#define SHM_UNLOCK_VALUE 0 -#elif defined(m68k) -#define SHM_LOCK_VALUE 0x80000000 -#define SHM_UNLOCK_VALUE 0 -#define SHM_LOCK_VALUE 0x80000000 -#define SHM_UNLOCK_VALUE 0 -#elif defined(i386) -#define SHM_LOCK_VALUE 0x80000000 -#define SHM_UNLOCK_VALUE 0 -#elif defined(hppa1_1) -#define SHM_LOCK_VALUE 0 -#define SHM_UNLOCK_VALUE 1 -#elif defined(unix) -#define SHM_LOCK_VALUE 0 -#define SHM_UNLOCK_VALUE 1 -#elif defined(no_cpu) /* for this values are irrelevant */ -#define SHM_LOCK_VALUE 1 -#define SHM_UNLOCK_VALUE 0 -#endif - -#define Shm_Convert( value ) \ - ((Shm_Configuration->convert) ? \ - (*Shm_Configuration->convert)(value) : (value)) - -/* constants */ - -#define SHM_MASTER 1 /* master initialization node */ -#define SHM_FIRST_NODE 1 - -/* size constants */ - -#define KILOBYTE (1024) -#define MEGABYTE (1024*1024) - -/* inter-node interrupt values */ - -#define NO_INTERRUPT 0 /* used for polled nodes */ -#define BYTE 1 -#define WORD 2 -#define LONG 4 - -/* operational mode constants -- used in SHM Configuration Table */ -#define POLLED_MODE 0 -#define INTR_MODE 1 - -/* error codes */ - -#define NO_ERROR 0 -#define SHM_NO_FREE_PKTS 0xf0000 - -/* null pointers of different types */ - -#define NULL_ENV_CB ((Shm_Envelope_control *) 0) -#define NULL_SHM_INFO ((struct shm_info *) 0) -#define NULL_CONVERT 0 -#if 0 -#define NULL_CONVERT (((rtems_unsigned32 *)())0) /* we want this */ -#endif - -/* The following is adjusted so envelopes are 0x80 bytes long. */ -/* It should be >= MIN_PKT_SIZE in rtems.h */ - -#define MAX_PACKET_SIZE (80) - -/* constants pertinent to Locked Queue routines */ - -#define LQ_UNLOCKED SHM_UNLOCK_VALUE -#define LQ_LOCKED SHM_LOCK_VALUE - -/* constants related to the Free Envelope Pool */ - -#define FREE_ENV_POOL 0 -#define FREE_ENV_CB (&Shm_Locked_queues[ FREE_ENV_POOL ]) - -/* The following are important when dealing with - * the shared memory communications interface area. - * - * NOTE: The starting address and length of the shared memory - * is defined in a system dependent file. - */ - -#if 0 -#define START_NS_CBS ( (rtems_unsigned8 *) START_SHARED_MEM ) -#define START_LQ_CBS ( ((rtems_unsigned8 *) START_NS_CBS) + \ - ( (sizeof (Shm_Node_status_control)) * (Shm_Maximum_nodes + 1) ) ) -#define START_ENVELOPES ( ((rtems_unsigned8 *) START_LQ_CBS) + \ - ( (sizeof (Shm_Locked_queue_Control)) * (Shm_Maximum_nodes + 1) ) ) -#define END_SHMCI_AREA ( (rtems_unsigned8 *) START_ENVELOPES + \ - ( (sizeof (Shm_Envelope_control)) * Shm_Maximum_envelopes ) ) -#define END_SHARED_MEM ((rtems_unsigned32)START_SHARED_MEM+SHARED_MEM_LEN) -#endif - -#define START_NS_CBS ((void *)Shm_Configuration->base) -#define START_LQ_CBS ((START_NS_CBS) + \ - ( (sizeof (Shm_Node_status_control)) * (Shm_Maximum_nodes + 1) ) ) -#define START_ENVELOPES ( ((void *) START_LQ_CBS) + \ - ( (sizeof (Shm_Locked_queue_Control)) * (Shm_Maximum_nodes + 1) ) ) -#define END_SHMCI_AREA ( (void *) START_ENVELOPES + \ - ( (sizeof (Shm_Envelope_control)) * Shm_Maximum_envelopes ) ) -#define END_SHARED_MEM (START_NS_CBS+Shm_Configuration->length) - -/* macros */ - -#define Shm_Is_master_node() \ - ( SHM_MASTER == Shm_Local_node ) - -#define Shm_Free_envelope( ecb ) \ - Shm_Locked_queue_Add( FREE_ENV_CB, (ecb) ) -#define Shm_Allocate_envelope() \ - Shm_Locked_queue_Get(FREE_ENV_CB) - -#define Shm_Initialize_receive_queue(node) \ - Shm_Locked_queue_Initialize( &Shm_Locked_queues[node], node ) - -#define Shm_Append_to_receive_queue(node, ecb) \ - Shm_Locked_queue_Add( &Shm_Locked_queues[node], (ecb) ) - -#define Shm_Envelope_control_to_packet_prefix_pointer(ecb) \ - ((void *)(ecb)->packet) - -#define Shm_Packet_prefix_to_envelope_control_pointer( pkt ) \ - ((Shm_Envelope_control *)((rtems_unsigned8 *)(pkt) - \ - (sizeof(Shm_Envelope_preamble) + 4*sizeof(vol_u32)))) - -#define Shm_Build_preamble(ecb, node) \ - (ecb)->Preamble.endian = Shm_Configuration->format - -#define Shm_Build_postamble( ecb ) - -/* structures */ - -typedef volatile rtems_unsigned8 vol_u8; -typedef volatile rtems_unsigned32 vol_u32; - -/* shm control information */ - -struct shm_info { - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; - vol_u32 not_currently_used_3; -}; - -typedef struct { - /*byte start_of_text;*/ - vol_u32 endian; - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; -} Shm_Envelope_preamble; - -typedef struct { - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; - vol_u32 not_currently_used_3; - /*byte end_of_text;*/ -} Shm_Envelope_postable; - -/* WARNING! If you change this structure, don't forget to change - * Shm_Envelope_control_to_packet_prefix_pointer() and - * Shm_Packet_prefix_to_envelope_control_pointer() above. - */ - -/* This comment block describes the contents of each field - * of the Envelope Control Block: - * - * next - The index of the next envelope on this queue. - * queue - The index of the queue this envelope is on. - * index - The index of this envelope. - * Preamble - Generic packet preamble. One day this structure - * could be enhanced to contain routing information. - * packet - RTEMS MPCI packet. Untouched by SHM Driver - * other than copying and format conversion as - * documented in the RTEMS User's Guide. - * Postamble - Generic packet postamble. One day this structure - * could be enhanced to contain checksum information. - */ - -typedef struct { - vol_u32 next; /* next envelope on queue */ - vol_u32 queue; /* queue on which this resides */ - vol_u32 index; /* index into array of envelopes*/ - vol_u32 pad0; /* insure the next one is aligned */ - Shm_Envelope_preamble Preamble; /* header information */ - vol_u8 packet[MAX_PACKET_SIZE]; /* RTEMS INFO */ - Shm_Envelope_postable Postamble;/* trailer information */ -} Shm_Envelope_control; - -/* This comment block describes the contents of each field - * of the Locked Queue Control Block: - * - * lock - Lock used to insure mutually exclusive access. - * front - Index of first envelope on queue. This field - * is used to remove head of queue (receive). - * rear - Index of last envelope on queue. This field - * is used to add evelope to queue (send). - * owner - The node number of the recipient (owning) node. - * RTEMS does not use the node number zero (0). - * The zero node is used by the SHM Driver for the - * Free Envelope Queue shared by all nodes. - */ - -typedef struct { - vol_u32 lock; /* lock field for this queue */ - vol_u32 front; /* first envelope on queue */ - vol_u32 rear; /* last envelope on queue */ - vol_u32 owner; /* receiving (i.e. owning) node */ -} Shm_Locked_queue_Control; - -/* This comment block describes the contents of each field - * of the Node Status Control Block: - * - * status - Node status. Current values are Pending Initialization, - * Initialization Complete, and Active Node. Other values - * could be added to enhance fault tolerance. - * error - Zero if the node has not failed. Otherwise, - * this field contains a status indicating the - * failure reason. - * int_address, int_value, and int_length - * - These field are the Interrupt Information table - * for this node in neutral format. This is how - * each node knows how to generate interrupts. - */ - -typedef struct { - vol_u32 status; /* node status information */ - vol_u32 error; /* fatal error code */ - vol_u32 int_address; /* write here for interrupt */ - vol_u32 int_value; /* this value causes interrupt */ - vol_u32 int_length; /* for this length (0,1,2,4) */ - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; -} Shm_Node_status_control; - -/* This comment block describes the contents of each field - * of the Interrupt Information Table. This table describes - * how another node can generate an interrupt to this node. - * This information is target board dependent. If the - * SHM Driver is in POLLED_MODE, then all fields should - * be initialized to NO_INTERRUPT. - * - * address - The address to which another node should - * write to cause an interrupt. - * value - The value which must be written - * length - The size of the value to write. Valid - * values are BYTE, WORD, and LONG. - * - * NOTE: The Node Status Control Block contains this - * information in neutral format and not in a - * structure to avoid potential alignment problems. - */ - -typedef struct { - vol_u32 *address; /* write here for interrupt */ - vol_u32 value; /* this value causes interrupt */ - vol_u32 length; /* for this length (0,1,2,4) */ -} Shm_Interrupt_information; - -/* SHM Configuration Table - * - * This comment block describes the contents of each field - * of the SHM Configuration Table. - * - * base - The base address of the shared memory. This - * address may be specific to this node. - * length - The length of the shared memory in bytes. - * format - The natural format for rtems_unsigned32's in the - * shared memory. Valid values are currently - * only SHM_LITTLE and SHM_BIG. - * convert - The address of the routine which converts - * between neutral and local format. - * poll_intr - The operational mode of the driver. Some - * target boards may not provide hardware for - * an interprocessor interrupt. If POLLED_MODE - * is selected, the SHM driver will install a - * wrapper around the Clock_isr() to poll for - * incoming packets. Throughput is dependent - * on the time between clock interrupts. - * Valid values are POLLED_MODE and INTR_MODE. - * cause_intr - This is the address of the routine used to - * write to a particular address and cause an - * interrupt on another node. This routine - * may need to be target dependent if something - * other than a normal write from C does not work. - * Intr - This structure describes the operation required - * to cause an interrupt to this node. The actual - * contents of this structure are described above. - */ - -struct shm_config_info { - vol_u32 *base; /* base address of SHM */ - vol_u32 length; /* length (in bytes) of SHM */ - vol_u32 format; /* SHM is big or little endian */ - vol_u32 (*convert)();/* neutral conversion routine */ - vol_u32 poll_intr;/* POLLED or INTR driven mode */ - void (*cause_intr)( rtems_unsigned32 ); - Shm_Interrupt_information Intr; /* cause intr information */ -}; - -typedef struct shm_config_info shm_config_table; - -/* global variables */ - -#ifdef _SHM_INIT -#define SHM_EXTERN -#else -#define SHM_EXTERN extern -#endif - -SHM_EXTERN shm_config_table *Shm_Configuration; -SHM_EXTERN Shm_Interrupt_information Shm_Interrupt_table[16]; -SHM_EXTERN Shm_Node_status_control *Shm_Node_statuses; -SHM_EXTERN Shm_Locked_queue_Control *Shm_Locked_queues; -SHM_EXTERN Shm_Envelope_control *Shm_Envelopes; -SHM_EXTERN rtems_configuration_table *Shm_RTEMS_Configuration; -SHM_EXTERN rtems_multiprocessing_table *Shm_RTEMS_MP_Configuration; -SHM_EXTERN rtems_unsigned32 Shm_Receive_message_count; -SHM_EXTERN rtems_unsigned32 Shm_Null_message_count; -SHM_EXTERN rtems_unsigned32 Shm_Interrupt_count; -SHM_EXTERN rtems_unsigned32 Shm_Local_node; -SHM_EXTERN Shm_Locked_queue_Control *Shm_Local_receive_queue; -SHM_EXTERN Shm_Node_status_control *Shm_Local_node_status; -SHM_EXTERN rtems_unsigned32 Shm_isrstat; - /* reported by shmdr */ - -SHM_EXTERN rtems_unsigned32 Shm_Pending_initialization; -SHM_EXTERN rtems_unsigned32 Shm_Initialization_complete; -SHM_EXTERN rtems_unsigned32 Shm_Active_node; - -SHM_EXTERN rtems_unsigned32 Shm_Maximum_nodes; -SHM_EXTERN rtems_unsigned32 Shm_Maximum_envelopes; - -SHM_EXTERN rtems_unsigned32 Shm_Locked_queue_End_of_list; -SHM_EXTERN rtems_unsigned32 Shm_Locked_queue_Not_on_list; - -/* functions */ - -/* locked queue routines */ -void Shm_Locked_queue_Add( - Shm_Locked_queue_Control *, Shm_Envelope_control * ); -Shm_Envelope_control *Shm_Locked_queue_Get( Shm_Locked_queue_Control * ); -void Shm_Locked_queue_Initialize( - Shm_Locked_queue_Control *, rtems_unsigned32 ); - /* Shm_Initialize_lock is CPU dependent */ - /* Shm_Lock is CPU dependent */ - /* Shm_Unlock is CPU dependent */ - -/* portable routines */ -void Init_env_pool(); -void Shm_Print_statistics( void ); -void MPCI_Fatal( rtems_unsigned32 ); -rtems_task Shm_Cause_interrupt( rtems_unsigned32 ); -void Shm_Poll(); -void Shm_setclockvec(); -void Shm_Convert_packet( rtems_packet_prefix * ); - -/* CPU specific routines are inlined in shmcpu.h */ - -/* target specific routines */ -void *Shm_Convert_address( void * ); -void Shm_Get_configuration( rtems_unsigned32, shm_config_table ** ); -void Shm_isr(); -void Shm_setvec( void ); - -void Shm_Initialize_lock( Shm_Locked_queue_Control * ); -void Shm_Lock( Shm_Locked_queue_Control * ); -void Shm_Unlock( Shm_Locked_queue_Control * ); - -/* MPCI entry points */ -rtems_mpci_entry Shm_Get_packet( - rtems_packet_prefix ** -); - -rtems_mpci_entry Shm_Initialization( - rtems_configuration_table *configuration, - rtems_cpu_table *cpu_configuration, - rtems_multiprocessing_table *mp_configuration -); - -rtems_mpci_entry Shm_Receive_packet( - rtems_packet_prefix ** -); - -rtems_mpci_entry Shm_Return_packet( - rtems_packet_prefix * -); - -rtems_mpci_entry Shm_Send_packet( - rtems_unsigned32, - rtems_packet_prefix * -); - -#ifdef _SHM_INIT - -/* multiprocessor communications interface (MPCI) table */ - -rtems_mpci_table MPCI_table = { - 100000, /* default timeout value in ticks */ - Shm_Initialization, /* initialization procedure */ - Shm_Get_packet, /* get packet procedure */ - Shm_Return_packet, /* return packet procedure */ - Shm_Send_packet, /* packet send procedure */ - Shm_Receive_packet /* packet receive procedure */ -}; - -#else - -extern rtems_mpci_table MPCI_table; - -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libc/README b/c/src/lib/libc/README deleted file mode 100644 index ee7a90501e..0000000000 --- a/c/src/lib/libc/README +++ /dev/null @@ -1,37 +0,0 @@ --- --- $Id$ --- - -Overview of newlib support (newlib is from CYGNUS) - Each task can have its own libc state including: - open stdio files - strtok - multi precision arithmetic state - etc. - - This is implemented by a reentrancy data structure for each task. - - When a task is "started" (in RTEMS sense) the reentrancy structure - is allocated. Its address is stored in notepad[NOTEPAD_LAST]. - - When task is switched to, the value of global variable _impure_ptr - is changed to the value of the new tasks reentrancy structure. - - When a task is deleted - atexit() processing (for that task) happens - task's stdio buffers are flushed - - When exit(3) is called - calling task's atexit processing done - global libc state atexit processing done - (this will include any atexit routines installed by drivers) - executive is shutdown - causes a context switch back to bsp land - - -NOTE: - libc extension are installed by bsp_libc_init() - iff we are using clock interrupts. - This hack is necessary to allow the tmtests to avoid - timing the extensions. - diff --git a/c/src/lib/libc/__brk.c b/c/src/lib/libc/__brk.c deleted file mode 100644 index 6fb15342fe..0000000000 --- a/c/src/lib/libc/__brk.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * RTEMS "Broken" __brk/__sbrk Implementation - * - * NOTE: sbrk is BSP provided. - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include -#ifdef RTEMS_NEWLIB -#include -#endif -#include - -/* we use RTEMS for memory management. We don't need sbrk */ - -void * __sbrk(int incr) -{ - errno = EINVAL; - return (void *)0; -} - -int __brk( const void *endds ) -{ - errno = EINVAL; - return -1; -} diff --git a/c/src/lib/libc/__gettod.c b/c/src/lib/libc/__gettod.c deleted file mode 100644 index a1ab9776c8..0000000000 --- a/c/src/lib/libc/__gettod.c +++ /dev/null @@ -1,84 +0,0 @@ -#if !defined(RTEMS_UNIX) -/* - * RTEMS gettimeofday Implementation - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#ifdef RTEMS_NEWLIB -#include -#endif -#include -#include -#include -#include - -/* - * NOTE: The solaris gettimeofday does not have a second parameter. - */ - -int gettimeofday( - struct timeval *tp, - struct timezone *tzp -) -{ - rtems_status_code status; - rtems_clock_time_value time; - - if ( !tp || !tzp ) { - errno = EFAULT; - return -1; - } - - /* "POSIX" does not seem to allow for not having a TOD */ - status = rtems_clock_get( RTEMS_CLOCK_GET_TIME_VALUE, &time ); - if ( status != RTEMS_SUCCESSFUL ) { - assert( 0 ); - return -1; - } - - tp->tv_sec = time.seconds; - tp->tv_usec = time.microseconds; - -#if 0 - tzp->minuteswest = timezone / 60; /* from seconds to minutes */ - tzp->dsttime = daylight; -#endif - - /* - * newlib does not have timezone and daylight savings time - * yet. When it does this needs to be fixed. - */ - - tzp->tz_minuteswest = 0; /* at UTC */ - tzp->tz_dsttime = 0; /* no daylight savings */ - return 0; -} - -/* - * "Reentrant" versions of the above routines implemented above. - */ - -#if 0 -int _gettimeofday_r( - struct _reent *ignored_reentrancy_stuff, - struct timeval *tp, - struct timezone *tzp -) -{ - return gettimeofday( tp, tzp ); -} -#endif - -#endif diff --git a/c/src/lib/libc/__times.c b/c/src/lib/libc/__times.c deleted file mode 100644 index 12fd9241fe..0000000000 --- a/c/src/lib/libc/__times.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * RTEMS _times Implementation - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include - -clock_t _times( - struct tms *ptms -) -{ - rtems_status_code status; - rtems_interval ticks_since_boot; - - if ( !ptms ) { - errno = EFAULT; - return -1; - } - - /* "POSIX" does not seem to allow for not having a TOD */ - status = rtems_clock_get( - RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, - &ticks_since_boot - ); - if ( status != RTEMS_SUCCESSFUL ) { - assert( 0 ); - return -1; - } - - /* - * RTEMS has no notion of system versus user time and does - * not (as of 3.2.0) keep track of CPU usage on a per task basis. - */ - - ptms->tms_utime = ticks_since_boot; - ptms->tms_stime = 0; - ptms->tms_cutime = 0; - ptms->tms_cstime = 0; - - return 0; -} - -clock_t times( - struct tms *ptms -) -{ - return _times( ptms ); -} - diff --git a/c/src/lib/libc/internal.h b/c/src/lib/libc/internal.h deleted file mode 100644 index 8ca6c8ed48..0000000000 --- a/c/src/lib/libc/internal.h +++ /dev/null @@ -1,41 +0,0 @@ -/* internal.h - * - * This include file contains internal information - * for the RTEMS C library support which is needed across - * files. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INTERNAL_LIBC_h -#define __INTERNAL_LIBC_h - -#ifdef __cplusplus -extern "C" { -#endif - -void MY_task_set_note( - rtems_tcb *tcb, - rtems_unsigned32 notepad, - rtems_unsigned32 note -); - -rtems_unsigned32 MY_task_get_note( - rtems_tcb *tcb, - rtems_unsigned32 notepad -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libc/libcsupport.h b/c/src/lib/libc/libcsupport.h deleted file mode 100644 index 2b199707f8..0000000000 --- a/c/src/lib/libc/libcsupport.h +++ /dev/null @@ -1,47 +0,0 @@ -/* libcsupport.h - * - * This include file contains the information regarding the - * RTEMS specific support for the standard C library. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __LIBC_SUPPORT_h -#define __LIBC_SUPPORT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -void RTEMS_Malloc_Initialize( - void *start, - size_t length, - size_t sbrk_amount -); - -extern void libc_init(int reentrant); - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libc/malloc.c b/c/src/lib/libc/malloc.c deleted file mode 100644 index 7d0ba04143..0000000000 --- a/c/src/lib/libc/malloc.c +++ /dev/null @@ -1,280 +0,0 @@ -/* - * RTEMS Malloc Family Implementation - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#ifdef RTEMS_LIBC -#include -#endif -#include "libcsupport.h" -#ifdef RTEMS_NEWLIB -#include -#endif - -#include -#include -#include -#include -#include -#include - -/* - * XXX: Do we really need to duplicate these? It appears that they - * only cause typing problems. - */ - -#if 0 -void *malloc(size_t); -void *calloc(size_t, size_t); -void *realloc(void *, size_t); -void free(void *); -void *sbrk(size_t); -#endif - -rtems_id RTEMS_Malloc_Heap; -size_t RTEMS_Malloc_Sbrk_amount; - -void RTEMS_Malloc_Initialize( - void *start, - size_t length, - size_t sbrk_amount -) -{ - rtems_status_code status; - void *starting_address; - rtems_unsigned32 u32_address; - - /* - * If the starting address is 0 then we are to attempt to - * get length worth of memory using sbrk. Make sure we - * align the address that we get back. - */ - - starting_address = start; - - if (!starting_address) { - u32_address = (unsigned int)sbrk(length); - - if (u32_address == -1) { - rtems_fatal_error_occurred( RTEMS_NO_MEMORY ); - /* DOES NOT RETURN!!! */ - } - - if (u32_address & (CPU_ALIGNMENT-1)) { - u32_address = (u32_address + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - /* XXX: if we do any alignment .. then length should be shortened */ - } - - starting_address = (void *)u32_address; - } - - /* - * Unfortunately we cannot use assert if this fails because if this - * has failed we do not have a heap and if we do not have a heap - * STDIO cannot work because there will be no buffers. - */ - - status = rtems_region_create( - rtems_build_name( 'H', 'E', 'A', 'P' ), - starting_address, - length, - 8, /* XXX : use CPU dependent RTEMS constant */ - RTEMS_DEFAULT_ATTRIBUTES, - &RTEMS_Malloc_Heap - ); - if ( status != RTEMS_SUCCESSFUL ) - rtems_fatal_error_occurred( status ); -} - -void *malloc( - size_t size -) -{ - void *return_this; - void *starting_address; - rtems_unsigned32 the_size; - rtems_unsigned32 sbrk_amount; - rtems_status_code status; - - if ( !size ) - return (void *) 0; - - /* - * Try to give a segment in the current region if there is not - * enough space then try to grow the region using rtems_region_extend(). - * If this fails then return a NULL pointer. - */ - - status = rtems_region_get_segment( - RTEMS_Malloc_Heap, - size, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &return_this - ); - - if ( status != RTEMS_SUCCESSFUL ) { - /* - * Round to the "requested sbrk amount" so hopefully we won't have - * to grow again for a while. This effectively does sbrk() calls - * in "page" amounts. - */ - - sbrk_amount = RTEMS_Malloc_Sbrk_amount; - - if ( sbrk_amount == 0 ) - return (void *) 0; - - the_size = ((size + sbrk_amount) / sbrk_amount * sbrk_amount); - - if (((rtems_unsigned32)starting_address = sbrk(the_size)) == -1) - return (void *) 0; - - /* - fprintf(stderr, "Extended the C heap starting at 0x%x for %d bytes\n", - (unsigned32)starting_address, the_size); - */ - - status = rtems_region_extend( - RTEMS_Malloc_Heap, - starting_address, - the_size - ); - if ( status != RTEMS_SUCCESSFUL ) { - sbrk(-the_size); - return(FALSE); - errno = ENOMEM; - return (void *) 0; - } - status = rtems_region_get_segment( - RTEMS_Malloc_Heap, - size, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &return_this - ); - if ( status != RTEMS_SUCCESSFUL ) { - errno = ENOMEM; - return (void *) 0; - } - } - - return return_this; -} - -void *calloc( - size_t nelem, - size_t elsize -) -{ - register char *cptr; - int length; - - length = nelem * elsize; - cptr = malloc( length ); - if ( cptr ) - memset( cptr, '\0', length ); - - return cptr; -} - -void *realloc( - void *ptr, - size_t size -) -{ - rtems_unsigned32 old_size; - rtems_status_code status; - char *new_area; - - if ( !ptr ) - return malloc( size ); - - if ( !size ) { - free( ptr ); - return (void *) 0; - } - - status = rtems_region_get_segment_size( RTEMS_Malloc_Heap, ptr, &old_size ); - if ( status != RTEMS_SUCCESSFUL ) { - errno = EINVAL; - return (void *) 0; - } - - new_area = malloc( size ); - if ( !new_area ) { - free( ptr ); - return (void *) 0; - } - - memcpy( new_area, ptr, (size < old_size) ? size : old_size ); - free( ptr ); - - return new_area; - -} - -void free( - void *ptr -) -{ - rtems_status_code status; - - if ( !ptr ) - return; - - status = rtems_region_return_segment( RTEMS_Malloc_Heap, ptr ); - if ( status != RTEMS_SUCCESSFUL ) { - errno = EINVAL; - assert( 0 ); - } -} - -/* - * "Reentrant" versions of the above routines implemented above. - */ - -#ifdef RTEMS_NEWLIB -void *malloc_r( - struct _reent *ignored, - size_t size -) -{ - return malloc( size ); -} - -void *calloc_r( - size_t nelem, - size_t elsize -) -{ - return calloc( nelem, elsize ); -} - -void *realloc_r( - void *ptr, - size_t size -) -{ - return realloc_r( ptr, size ); -} - -void free_r( - void *ptr -) -{ - free( ptr ); -} -#endif - diff --git a/c/src/lib/libc/newlibc.c b/c/src/lib/libc/newlibc.c deleted file mode 100644 index 3c5e58b67c..0000000000 --- a/c/src/lib/libc/newlibc.c +++ /dev/null @@ -1,292 +0,0 @@ -/* - * @(#)newlibc.c 1.8 - 95/04/25 - * - */ - -#if defined(RTEMS_NEWLIB) - -/* - * File: $RCSfile$ - * Project: PixelFlow - * Created: 94/12/7 - * Revision: $Revision$ - * Last Mod: $Date$ - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * Description: - * Implementation of hooks for the CYGNUS newlib libc - * These hooks set things up so that: - * '_REENT' is switched at task switch time. - * - * - * TODO: - * - * NOTE: - * - * $Id$ - * - */ - -#include -#include -#include /* for free() */ -#include /* for memset() */ - -#include /* for extern of _REENT (aka _impure_ptr) */ - -#include "internal.h" - -#define LIBC_NOTEPAD RTEMS_NOTEPAD_LAST - - -int libc_reentrant; /* do we think we are reentrant? */ -struct _reent libc_global_reent = _REENT_INIT(libc_global_reent);; - -/* - * CYGNUS newlib routine that does atexit() processing and flushes - * stdio streams - * undocumented - */ - -extern void _wrapup_reent(struct _reent *); -extern void _reclaim_reent(struct _reent *); - -void -libc_wrapup(void) -{ - _wrapup_reent(0); - if (_REENT != &libc_global_reent) - { - _wrapup_reent(&libc_global_reent); -#if 0 - /* don't reclaim this one, just in case we do printfs */ - /* on our way out to ROM */ - _reclaim_reent(&libc_global_reent); -#endif - _REENT = &libc_global_reent; - } -} - - -rtems_extension -libc_create_hook(rtems_tcb *current_task, - rtems_tcb *creating_task) -{ - MY_task_set_note(creating_task, LIBC_NOTEPAD, 0); -} - -/* - * Called for all user TASKS (system tasks are SYSI and IDLE) - */ - -rtems_extension -libc_start_hook(rtems_tcb *current_task, - rtems_tcb *starting_task) -{ - struct _reent *ptr; - - /* NOTE: our malloc is reentrant without a reent ptr since - * it is based on region manager - */ - - ptr = (struct _reent *) malloc(sizeof(struct _reent)); - - /* GCC extension: structure constants */ - *ptr = (struct _reent) _REENT_INIT((*ptr)); - - MY_task_set_note(starting_task, LIBC_NOTEPAD, (rtems_unsigned32) ptr); -} - -rtems_extension -libc_switch_hook(rtems_tcb *current_task, - rtems_tcb *heir_task) -{ - rtems_unsigned32 impure_value; - - /* XXX We can't use rtems_task_set_note() here since SYSI task has a - * tid of 0, which is treated specially (optimized, actually) - * by rtems_task_set_note - */ - - impure_value = (rtems_unsigned32) _REENT; - MY_task_set_note(current_task, LIBC_NOTEPAD, impure_value); - - _REENT = (struct _reent *) MY_task_get_note(heir_task, LIBC_NOTEPAD); - -} - -/* - * Function: libc_delete_hook - * Created: 94/12/10 - * - * Description: - * Called when a task is deleted. - * Must restore the new lib reentrancy state for the new current - * task. - * - * Parameters: - * - * - * Returns: - * - * - * Side Effects: - * - * Notes: - * - * - * Deficiencies/ToDo: - * - * - */ -rtems_extension -libc_delete_hook(rtems_tcb *current_task, - rtems_tcb *deleted_task) -{ - struct _reent *ptr; - - /* - * The reentrancy structure was allocated by newlib using malloc() - */ - - if (current_task == deleted_task) - { - ptr = _REENT; - } - else - { - ptr = (struct _reent *) MY_task_get_note(deleted_task, LIBC_NOTEPAD); - } - - if (ptr) - { - _wrapup_reent(ptr); - _reclaim_reent(ptr); - } - - MY_task_set_note(deleted_task, LIBC_NOTEPAD, 0); - - /* - * Require the switch back to another task to install its own - */ - - if (current_task == deleted_task) - { - _REENT = 0; - } -} - -/* - * Function: libc_init - * Created: 94/12/10 - * - * Description: - * Init libc for CYGNUS newlib - * Set up _REENT to use our global libc_global_reent. - * (newlib provides a global of its own, but we prefer our - * own name for it) - * - * If reentrancy is desired (which it should be), then - * we install the task extension hooks to maintain the - * newlib reentrancy global variable _REENT on task - * create, delete, switch, exit, etc. - * - * Parameters: - * reentrant non-zero if reentrant library desired. - * - * Returns: - * - * Side Effects: - * installs libc extensions if reentrant. - * - * Notes: - * - * - * Deficiencies/ToDo: - * - */ - -void -libc_init(int reentrant) -{ - rtems_extensions_table libc_extension; - rtems_id extension_id; - rtems_status_code rc; - - _REENT = &libc_global_reent; - - if (reentrant) - { - memset(&libc_extension, 0, sizeof(libc_extension)); - - libc_extension.rtems_task_create = libc_create_hook; - libc_extension.rtems_task_start = libc_start_hook; - libc_extension.task_switch = libc_switch_hook; - libc_extension.rtems_task_delete = libc_delete_hook; - - rc = rtems_extension_create(rtems_build_name('L', 'I', 'B', 'C'), - &libc_extension, &extension_id); - if (rc != RTEMS_SUCCESSFUL) - rtems_fatal_error_occurred(rc); - - libc_reentrant = reentrant; - } -} - - -void -exit(int status) -{ - libc_wrapup(); - rtems_shutdown_executive(status); -} - - -/* - * Function: _exit - * Created: 94/12/10 - * - * Description: - * Called from exit() after it does atexit() processing and stdio fflush's - * - * called from bottom of exit() to really delete the task. - * If we are using reentrant libc, then let the delete extension - * do all the work, otherwise if a shutdown is in progress, - * then just do it. - * - * Parameters: - * exit status - * - * Returns: - * does not return - * - * Side Effects: - * - * Notes: - * - * - * Deficiencies/ToDo: - * - * - */ - -#ifndef RTEMS_UNIX -void _exit(int status) -{ - rtems_shutdown_executive(status); -} -#endif - -#endif diff --git a/c/src/lib/libc/no_libc.c b/c/src/lib/libc/no_libc.c deleted file mode 100644 index 43a91eb30e..0000000000 --- a/c/src/lib/libc/no_libc.c +++ /dev/null @@ -1,45 +0,0 @@ -#if !defined(RTEMS_LIBC) && !defined(RTEMS_NEWLIB) && !defined(RTEMS_UNIX) - -/* no_libc.h - * - * This file contains stubs for the reentrancy hooks when - * an unknown C library is used. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "libcsupport.h" -#include "internal.h" - -#include /* for free() */ - -void -libc_init(int reentrant) -{ -} - -void libc_suspend_main(void) -{ -} - - -void libc_global_exit(rtems_unsigned32 code) -{ -} - -void _exit(int status) -{ -} - -#endif diff --git a/c/src/lib/libc/support.c b/c/src/lib/libc/support.c deleted file mode 100644 index ac7b06963d..0000000000 --- a/c/src/lib/libc/support.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Routines to Access Internal RTEMS Resources - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - * - */ - -#include -#include - -void MY_task_set_note( - Thread_Control *the_thread, - unsigned32 notepad, - unsigned32 note -) -{ - the_thread->Notepads[ notepad ] = note; -} - - -unsigned32 MY_task_get_note( - Thread_Control *the_thread, - unsigned32 notepad -) -{ - return the_thread->Notepads[ notepad ]; -} - -void *MY_CPU_Context_FP_start( - void *base, - unsigned32 offset -) -{ - return _CPU_Context_Fp_start( base, offset ); -} - diff --git a/c/src/lib/libc/syscalls.c b/c/src/lib/libc/syscalls.c deleted file mode 100644 index 41eedb40d0..0000000000 --- a/c/src/lib/libc/syscalls.c +++ /dev/null @@ -1,77 +0,0 @@ -#if !defined(RTEMS_UNIX) - -/* - * RTEMS Fake System Calls - * - * This file contains "fake" versions of the system call routines - * which are reference by many libc implementations. Once a routine - * has been implemented in terms of RTEMS services, it should be - * taken out of this file. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - * - */ - -#include -#include - -int -__fstat(int _fd, struct stat* _sbuf) -{ - return -1; -} - -int -__isatty(int _fd) -{ - return 1; -} - -int -__close(int _fd) -{ - /* return value usually ignored anyhow */ - return 0; -} - -int -__open(const char *filename) -{ - /* always fail */ - return -1; -} - -int -__lseek(int _fd, off_t offset, int whence) -{ - /* nothing is ever seekable */ - return -1; -} - -int stat( const char *path, struct stat *buf ) -{ - /* always fail */ - return -1; -} - -int link( const char *existing, const char *new ) -{ - /* always fail */ - return -1; -} - -int unlink( const char *path ) -{ - /* always fail */ - return -1; -} - -#endif diff --git a/c/src/lib/libc/unixlibc.c b/c/src/lib/libc/unixlibc.c deleted file mode 100644 index 74b4eea360..0000000000 --- a/c/src/lib/libc/unixlibc.c +++ /dev/null @@ -1,7 +0,0 @@ -#if defined(RTEMS_UNIXLIB) - -void libc_init(int reentrant) -{ -} - -#endif diff --git a/c/src/lib/libcpu/README b/c/src/lib/libcpu/README deleted file mode 100644 index e7e293660c..0000000000 --- a/c/src/lib/libcpu/README +++ /dev/null @@ -1,14 +0,0 @@ -# -# $Id$ -# - -This is the README file for libcpu. - -This directory contains reusable libraries which are CPU dependent but not -target board dependent. For example, the HPPA has an on chip interval timer -which may be used by all HPPA bsp's. - -Another example might be the Intel i960CA has on-chip DMA which could be -supported in a library and placed in lib/libcpu/i960. This level of support -will make it easier for others developing embedded applications on a given -CPU. diff --git a/c/src/lib/libcpu/hppa1.1/clock/clock.c b/c/src/lib/libcpu/hppa1.1/clock/clock.c deleted file mode 100644 index 62bb8e2826..0000000000 --- a/c/src/lib/libcpu/hppa1.1/clock/clock.c +++ /dev/null @@ -1,220 +0,0 @@ -/* Clock - * - * This routine initializes the interval timer on the - * PA-RISC CPU. The tick frequency is specified by the bsp. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -#include /* for atexit() */ - -extern rtems_cpu_table Cpu_table; /* owned by BSP */ - -typedef unsigned long long hppa_click_count_t; - -/* - * CPU_HPPA_CLICKS_PER_TICK is either a #define or an rtems_unsigned32 - * allocated and set by bsp_start() - */ - -#ifndef CPU_HPPA_CLICKS_PER_TICK -extern rtems_unsigned32 CPU_HPPA_CLICKS_PER_TICK; -#endif - -volatile rtems_unsigned32 Clock_driver_ticks; -rtems_unsigned32 Clock_isrs; /* ISRs until next tick */ - -rtems_unsigned32 most_recent_itimer_value; - -rtems_unsigned64 Clock_clicks; /* running total of cycles */ - -rtems_unsigned32 Clock_clicks_interrupt; - -rtems_device_driver Clock_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - Install_clock(Clock_isr); -} - -void -ReInstall_clock(rtems_isr_entry new_clock_isr) -{ - rtems_unsigned32 isrlevel = 0; - - rtems_interrupt_disable(isrlevel); - (void) set_vector( - new_clock_isr, - HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER, - 1 - ); - rtems_interrupt_enable(isrlevel); -} - -/* - * read itimer and update Clock_clicks as appropriate - */ - -rtems_unsigned32 -Clock_read_itimer() -{ - rtems_unsigned32 isrlevel; - rtems_unsigned32 itimer_value; - rtems_unsigned32 wrap_count; - rtems_unsigned32 recent_count; - - rtems_interrupt_disable(isrlevel); - - wrap_count = (Clock_clicks & 0xFFFFFFFF00000000ULL) >> 32; - recent_count = (rtems_unsigned32) Clock_clicks; - - itimer_value = get_itimer(); - - if (itimer_value < recent_count) - wrap_count++; - Clock_clicks = (((rtems_unsigned64) wrap_count) << 32) + itimer_value; - - rtems_interrupt_enable(isrlevel); - - return itimer_value; -} - - -void Install_clock(rtems_isr_entry clock_isr) -{ - Clock_driver_ticks = 0; - Clock_clicks_interrupt = 0; - Clock_clicks = 0; - - Clock_isrs = BSP_Configuration.microseconds_per_tick / 1000; - - if (BSP_Configuration.ticks_per_timeslice) - { - /* - * initialize the interval here - * First tick is set to right amount of time in the future - * Future ticks will be incremented over last value set - * in order to provide consistent clicks in the face of - * interrupt overhead - */ - - Clock_clicks_interrupt = Clock_read_itimer() + CPU_HPPA_CLICKS_PER_TICK; - set_itimer((rtems_unsigned32) Clock_clicks_interrupt); - - (void) set_vector(clock_isr, HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER, 1); - } - atexit(Clock_exit); -} - -rtems_isr -Clock_isr(rtems_vector_number vector) -{ - rtems_unsigned32 clicks_til_next_interrupt; - rtems_unsigned32 itimer_value; - - /* - * setup for next interrupt; making sure the new value is reasonably - * in the future.... in case we lost out on an interrupt somehow - */ - - itimer_value = Clock_read_itimer(); - Clock_clicks_interrupt += CPU_HPPA_CLICKS_PER_TICK; - - /* - * how far away is next interrupt *really* - * It may be a long time; this subtraction works even if - * Clock_clicks_interrupt < Clock_clicks_low_order via - * the miracle of unsigned math. - */ - clicks_til_next_interrupt = Clock_clicks_interrupt - itimer_value; - - /* - * If it is too soon then bump it up. - * This should only happen if CPU_HPPA_CLICKS_PER_TICK is too small. - * But setting it low is useful for debug, so... - */ - - if (clicks_til_next_interrupt < 400) - { - Clock_clicks_interrupt = itimer_value + 1000; - /* XXX: count these! this should be rare */ - } - - /* - * If it is too late, that means we missed the interrupt somehow. - * Rather than wait 35-50s for a wrap, we just fudge it here. - */ - - if (clicks_til_next_interrupt > CPU_HPPA_CLICKS_PER_TICK) - { - Clock_clicks_interrupt = itimer_value + 1000; - /* XXX: count these! this should never happen :-) */ - } - - set_itimer((rtems_unsigned32) Clock_clicks_interrupt); - - Clock_driver_ticks++; - - if (Clock_isrs == 1) - { - rtems_clock_tick(); - Clock_isrs = BSP_Configuration.microseconds_per_tick / 10000; - if (Clock_isrs == 0) - Clock_isrs = 1; - } - else - Clock_isrs--; -} - -/* - * Called via atexit() - * Remove the clock interrupt handler by setting handler to NULL - */ - -void -Clock_exit(void) -{ - if ( BSP_Configuration.ticks_per_timeslice ) - { - (void) set_vector(0, HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER, 1); - } -} - -/* - * spin delay for specified number of microseconds - * used by RTEMS delay macro - */ - -void -Clock_delay(rtems_unsigned32 microseconds) -{ - rtems_unsigned64 future_time; - - (void) Clock_read_itimer(); - future_time = Clock_clicks + - ((rtems_unsigned64) microseconds) * - Cpu_table.itimer_clicks_per_microsecond; - - for (;;) - { - (void) Clock_read_itimer(); - if (future_time <= Clock_clicks) - break; - } -} - diff --git a/c/src/lib/libcpu/hppa1.1/runway/runway.h b/c/src/lib/libcpu/hppa1.1/runway/runway.h deleted file mode 100644 index 41aafe26ef..0000000000 --- a/c/src/lib/libcpu/hppa1.1/runway/runway.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * File: $RCSfile$ - * Project: PixelFlow - * Created: 94/11/29 - * RespEngr: tony bennett - * Revision: $Revision$ - * Last Mod: $Date$ - * - * Description: - * definitions specific to the runway bus - * - * TODO: - * Add lots more. - * - * $Id$ - */ - -#ifndef _INCLUDE_RUNWAY_H -#define _INCLUDE_RUNWAY_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define HPPA_RUNWAY_PROC_HPA_BASE ((void *) 0xFFFA0000) - -/* given a processor number, where is its HPA? */ -#define HPPA_RUNWAY_HPA(cpu) \ - ((rtems_unsigned32) (HPPA_RUNWAY_PROC_HPA_BASE + ((cpu) * 0x2000))) - -#define HPPA_RUNWAY_REG_IO_EIR_OFFSET 0x000 - -#ifdef __cplusplus -} -#endif - -#endif /* ! _INCLUDE_RUNWAY_H */ diff --git a/c/src/lib/libcpu/hppa1.1/semaphore/semaphore.c b/c/src/lib/libcpu/hppa1.1/semaphore/semaphore.c deleted file mode 100644 index aa8b768b3a..0000000000 --- a/c/src/lib/libcpu/hppa1.1/semaphore/semaphore.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - * File: $RCSfile$ - * Project: PixelFlow - * Created: 94/11/29 - * RespEngr: tony bennett - * Revision: $Revision$ - * Last Mod: $Date$ - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * Description: - * HPPA fast spinlock semaphores based on LDCWX instruction. - * These semaphores are not known to RTEMS. - * - * TODO: - * Put node number in high 16 bits of flag?? - * XXX: Need h_s_deallocate - * - * $Id$ - */ - -#include - -#include "semaphore.h" - -/* - * Report fatal semaphore error - */ - -#define SEM_FATAL_ERROR(sp) rtems_fatal_error_occurred((rtems_unsigned32) sp) - -#define SEM_CHECK(sp) do { \ - if (((sp) == 0) || (int) (sp) & 0xf) \ - { \ - SEM_FATAL_ERROR(sp); \ - } \ - } while (0) - -/* - * Init a semaphore to be free - */ - -#define SEM_FREE_INIT(sp) \ - do { \ - (sp)->lock = 1; \ - (sp)->flags = 0; \ - (sp)->owner_tcb = 0; \ - } while (0) - -/* - * Grab a semaphore recording its owner. - */ - -#define SEM_MARK_GRABBED(sp) \ - do { \ - (sp)->owner_tcb = _Thread_Executing; \ - } while (0) - -/* - * Mark the semaphore busy - */ - -#define SEM_MARK_BUSY(sp) ((sp)->flags |= HPPA_SEM_IN_USE) - -/* - * Is a semaphore available? - */ - -#define SEM_IS_AVAILABLE(sp) ((sp)->owner_tcb == 0) - -/* - * The pool control semaphore is the first in the pool - */ - -#define SEM_CONTROL (&hppa_semaphore_pool[0]) -#define SEM_FIRST (&hppa_semaphore_pool[1]) - -#define SEM_PRIVATE(cookie) rtems_interrupt_disable(cookie) - -#define SEM_PUBLIC(cookie) rtems_interrupt_enable(cookie) - - -/* - * Control variables for the pool - */ - -hppa_semaphore_t *hppa_semaphore_pool; /* ptr to first */ -int hppa_semaphores; -int hppa_semaphores_available; - -void -hppa_semaphore_pool_initialize(void *pool_base, - int pool_size) -{ - hppa_semaphore_t *sp; - int align_factor; - rtems_unsigned32 isr_level; - - /* - * round pool_base up to be a multiple of SEM_ALIGN - */ - - align_factor = SEM_ALIGN - (((int) pool_base) & (SEM_ALIGN-1)); - if (align_factor != SEM_ALIGN) - { - pool_base += align_factor; - pool_size -= align_factor; - } - - /* - * How many can the pool hold? - * Assumes the semaphores are SEM_ALIGN bytes each - */ - - if (sizeof(hppa_semaphore_t) != SEM_ALIGN) - rtems_fatal_error_occurred(RTEMS_INVALID_SIZE); - - pool_size &= ~(SEM_ALIGN - 1); - - SEM_PRIVATE(isr_level); - - hppa_semaphore_pool = pool_base; - hppa_semaphores = pool_size / SEM_ALIGN; - - /* - * If we are node0, then init all in the pool - */ - - if (cpu_number == 0) - { - /* - * Tell other cpus we are not done, jic - */ - SEM_CONTROL->user = rtems_build_name('!', 'D', 'N', 'E'); - - for (sp=SEM_FIRST; sp < &hppa_semaphore_pool[hppa_semaphores]; sp++) - SEM_FREE_INIT(sp); - SEM_FREE_INIT(SEM_CONTROL); - } - - /* - * Tell other cpus we are done, or wait for it to be done if on another cpu - */ - - if (cpu_number == 0) - SEM_CONTROL->user = rtems_build_name('D', 'O', 'N', 'E'); - else - while (SEM_CONTROL->user != rtems_build_name('D', 'O', 'N', 'E')) - ; - - hppa_semaphores_available = hppa_semaphores; - - SEM_PUBLIC(isr_level); -} - -/* - * Function: hppa_semaphore_acquire - * Created: 94/11/29 - * RespEngr: tony bennett - * - * Description: - * Acquire a semaphore. Will spin on the semaphore unless - * 'flag' says not to. - * - * Parameters: - * - * - * Returns: - * 0 -- if did not acquire - * non-zero -- if acquired semaphore - * (actually this is the spin count) - * - * Notes: - * There is no requirement that the semaphore be within the pool - * - * Deficiencies/ToDo: - * - */ - - -rtems_unsigned32 -hppa_semaphore_acquire(hppa_semaphore_t *sp, - int flag) -{ - rtems_unsigned32 lock_value; - rtems_unsigned32 spin_count = 1; - - SEM_CHECK(sp); - - for (;;) - { - HPPA_ASM_LDCWS(0, 0, sp, lock_value); - - if (lock_value) /* we now own the lock */ - { - SEM_MARK_GRABBED(sp); - return spin_count ? spin_count : ~0; /* jic */ - } - - if (flag & HPPA_SEM_NO_SPIN) - return 0; - - spin_count++; - } -} - -void -hppa_semaphore_release(hppa_semaphore_t *sp) -{ - SEM_CHECK(sp); - - if (sp->owner_tcb != _Thread_Executing) - SEM_FATAL_ERROR("owner mismatch"); - - sp->lock = 1; -} - - -/* - * Function: hppa_semaphore_allocate - * Created: 94/11/29 - * RespEngr: tony bennett - * - * Description: - * Get a pointer to a semaphore. - * - * Parameters: - * which -- if 0, then allocate a free semaphore from the pool - * if non-zero, then return pointer to that one, even - * if it is already busy. - * - * Returns: - * successful -- pointer to semaphore - * NULL otherwise - * - * Notes: - * - * - * Deficiencies/ToDo: - * - * - */ - -hppa_semaphore_t * -hppa_semaphore_allocate(rtems_unsigned32 which, - int flag) -{ - hppa_semaphore_t *sp = 0; - - /* - * grab the control semaphore - */ - - if (hppa_semaphore_acquire(SEM_CONTROL, 0) == 0) - SEM_FATAL_ERROR("could not grab control semaphore"); - - /* - * Find a free one and init it - */ - - if (which) - { - if (which >= hppa_semaphores) - SEM_FATAL_ERROR("requested non-existent semaphore"); - sp = &hppa_semaphore_pool[which]; - - /* - * if it is "free", then mark it claimed now. - * If it is not free then we are done. - */ - - if (SEM_IS_AVAILABLE(sp)) - goto allmine; - } - else for (sp = SEM_FIRST; - sp < &hppa_semaphore_pool[hppa_semaphores]; - sp++) - { - if (SEM_IS_AVAILABLE(sp)) - { -allmine: SEM_FREE_INIT(sp); - SEM_MARK_BUSY(sp); - if ( ! (flag & HPPA_SEM_INITIALLY_FREE)) - SEM_MARK_GRABBED(sp); - break; - } - } - - /* - * Free up the control semaphore - */ - - hppa_semaphore_release(SEM_CONTROL); - - return sp; -} - diff --git a/c/src/lib/libcpu/hppa1.1/semaphore/semaphore.h b/c/src/lib/libcpu/hppa1.1/semaphore/semaphore.h deleted file mode 100644 index 04f709cf64..0000000000 --- a/c/src/lib/libcpu/hppa1.1/semaphore/semaphore.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * File: $RCSfile$ - * Project: PixelFlow - * Created: 94/11/29 - * RespEngr: tony e bennett - * Revision: $Revision$ - * Last Mod: $Date$ - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * Description: - * HPPA fast spinlock semaphores based on LDCWX instruction. - * These semaphores are not known to RTEMS. - * - * TODO: - * - * $Id$ - */ - -#ifndef _INCLUDE_SEMAPHORE_H -#define _INCLUDE_SEMAPHORE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This structure has hardware requirements. - * LDCWX opcode requires 16byte alignment for the lock - * 'lock' must be first member of structure. - */ - -#define SEM_ALIGN 16 - -typedef volatile struct { - - rtems_unsigned32 lock __attribute__ ((aligned (SEM_ALIGN))); - - rtems_unsigned32 flags; - - void *owner_tcb; /* for debug/commentary only */ - - rtems_unsigned32 user; /* for use by user */ - -} hppa_semaphore_t; - -/* - * Values for flags - */ - -#define HPPA_SEM_IN_USE 0x0001 /* semaphore owned by somebody */ -#define HPPA_SEM_NO_SPIN 0x0002 /* don't spin if unavailable */ -#define HPPA_SEM_INITIALLY_FREE 0x0004 /* init it to be free */ - -/* - * Caller specifiable flags - */ - -#define HPPA_SEM_CALLER_FLAGS (HPPA_SEM_NO_SPIN | HPPA_SEM_INITIALLY_FREE) - -void hppa_semaphore_pool_initialize(void *pool_base, int pool_size); - -rtems_unsigned32 hppa_semaphore_acquire(hppa_semaphore_t *sp, int flag); - -void hppa_semaphore_release(hppa_semaphore_t *sp); - -hppa_semaphore_t *hppa_semaphore_allocate(rtems_unsigned32 which, int flag); - -#ifdef __cplusplus -} -#endif - -#endif /* ! _INCLUDE_SEMAPHORE_H */ diff --git a/c/src/lib/libcpu/hppa1.1/timer/timer.c b/c/src/lib/libcpu/hppa1.1/timer/timer.c deleted file mode 100644 index caa04bd282..0000000000 --- a/c/src/lib/libcpu/hppa1.1/timer/timer.c +++ /dev/null @@ -1,62 +0,0 @@ -/* timer.c - * - * This file manages the interval timer on the PA-RISC. - * - * NOTE: It is important that the timer start/stop overhead be - * determined when porting or modifying this code. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -volatile rtems_unsigned32 Timer_starting; -rtems_boolean Timer_driver_Find_average_overhead; - -void Timer_initialize() -{ - Timer_starting = get_itimer(); -} - -#define AVG_OVERHEAD 0 /* It typically takes 3.0 microseconds */ - /* (6 countdowns) to start/stop the timer. */ -#define LEAST_VALID 1 /* Don't trust a value lower than this */ - -int Read_timer() -{ - rtems_unsigned32 clicks; - rtems_unsigned32 total; - - clicks = get_itimer(); - - total = clicks - Timer_starting; - - if ( Timer_driver_Find_average_overhead == 1 ) - return total; /* in XXX microsecond units */ - - else { - if ( total < LEAST_VALID ) - return 0; /* below timer resolution */ - return (total - AVG_OVERHEAD); - } -} - -rtems_status_code Empty_function( void ) -{ - return RTEMS_SUCCESSFUL; -} - -void Set_find_average_overhead( - rtems_boolean find_flag -) -{ - Timer_driver_Find_average_overhead = find_flag; -} diff --git a/c/src/lib/libmisc/README b/c/src/lib/libmisc/README deleted file mode 100644 index 6825898121..0000000000 --- a/c/src/lib/libmisc/README +++ /dev/null @@ -1,16 +0,0 @@ -# -# $Id$ -# - -This directory contains for the "miscellaneous" library. Currently -the only item in this library is a user extension set which checks -for a task "blowing" it's stack. - -The following ideas have been mentioned for items which could go -in this library, but this list is not all inclusive: - - + Workspace Consistency Checker - + Task Execution Time Monitor - -The intent of this library is to provide a home for useful utility routines -which are dependent upon RTEMS. diff --git a/c/src/lib/libmisc/monitor/README b/c/src/lib/libmisc/monitor/README deleted file mode 100644 index cae39d593c..0000000000 --- a/c/src/lib/libmisc/monitor/README +++ /dev/null @@ -1,7 +0,0 @@ -# -# $Id$ -# - -This is a snapshot of a work in process. It is the beginnings of a -debug monitor task and trap handler which is tasking aware. - diff --git a/c/src/lib/libmisc/monitor/mon-monitor.c b/c/src/lib/libmisc/monitor/mon-monitor.c deleted file mode 100644 index aa466143f9..0000000000 --- a/c/src/lib/libmisc/monitor/mon-monitor.c +++ /dev/null @@ -1,307 +0,0 @@ -/* - * @(#)monitor.c 1.6 - 95/04/24 - * - */ - -/* - * mon-task.c - * - * Description: - * RTEMS monitor task - * - * - * - * TODO: - * add pause command (monitor sleeps for 'n' ticks, then wakes up) - * - */ - -#include -/* #include */ - -#include "symbols.h" -#include "monitor.h" - -#include -#include -#include -#include - -#define STREQ(a,b) (strcmp(a,b) == 0) - -/* set by trap handler */ -extern rtems_tcb *debugger_interrupted_task; -extern rtems_context *debugger_interrupted_task_context; -extern rtems_unsigned32 debugger_trap; - -/* our task id needs to be public so any debugger can resume us */ -rtems_unsigned32 rtems_monitor_task_id; - - -rtems_symbol_table_t *rtems_monitor_symbols; - - -#ifndef MONITOR_PROMPT -#define MONITOR_PROMPT "rtems> " -#endif - -#define MONITOR_WAKEUP_EVENT RTEMS_EVENT_0 - -/* - * Function: rtems_monitor_init - * - * Description: - * Create the RTEMS monitor task - * - * Parameters: - * 'monitor_suspend' arg is passed as initial arg to monitor task - * If TRUE, monitor will suspend itself as it starts up. Otherwise - * it will begin its command loop. - * - * Returns: - * - * - * Side Effects: - * - * - * Notes: - * - * - * Deficiencies/ToDo: - * - * - */ - -/* - * make_argv(cp): token-count - * Break up the command line in 'cp' into global argv[] and argc (return - * value). - */ - -int -rtems_monitor_make_argv( - char *cp, - int *argc_p, - char **argv) -{ - int argc = 0; - - while ((cp = strtok(cp, " \t\n\r"))) - { - argv[argc++] = cp; - cp = (char *) NULL; - } - argv[argc] = (char *) NULL; /* end of argv */ - - return *argc_p = argc; -} - -void -rtems_monitor_init(rtems_boolean monitor_suspend) -{ - rtems_status_code status; - - status = rtems_task_create(rtems_build_name('R', 'M', 'O', 'N'), - 1, 0/*stack*/, RTEMS_NO_PREEMPT | RTEMS_INTERRUPT_LEVEL(0), RTEMS_DEFAULT_ATTRIBUTES, &rtems_monitor_task_id); - if (status != RTEMS_SUCCESSFUL) - { - printf("could not create monitor task\n"); - goto done; - } - - rtems_monitor_symbols_loadup(); - - status = rtems_task_start(rtems_monitor_task_id, rtems_monitor_task, monitor_suspend); - if (status != RTEMS_SUCCESSFUL) - { - printf("could not start monitor!\n"); - goto done; - } - -done: -} - -rtems_status_code -rtems_monitor_suspend(rtems_interval timeout) -{ - rtems_event_set event_set; - rtems_status_code status; - - status = rtems_event_receive(MONITOR_WAKEUP_EVENT, RTEMS_DEFAULT_OPTIONS, timeout, &event_set); - return status; -} - -void -rtems_monitor_wakeup(void) -{ - rtems_status_code status; - - status = rtems_event_send(rtems_monitor_task_id, MONITOR_WAKEUP_EVENT); -} - - -/* - * Read and break up a monitor command - * - * We have to loop on the gets call, since it will return NULL under UNIX - * RTEMS when we get a signal (eg: SIGALRM). - */ - -int -rtems_monitor_read_command(char *command, - int *argc, - char **argv) -{ - printf("%s", MONITOR_PROMPT); fflush(stdout); - while (gets(command) == (char *) 0) - ; - return rtems_monitor_make_argv(command, argc, argv); -} - -void -rtems_monitor_task(rtems_task_argument monitor_suspend) -{ - rtems_tcb *debugee = 0; - char command[513]; - rtems_context *rp; - rtems_context_fp *fp; - char *cp; - int argc; - char *argv[64]; - - if ((rtems_boolean) monitor_suspend) - (void) rtems_monitor_suspend(RTEMS_NO_TIMEOUT); - - for (;;) - { - extern rtems_tcb * _Thread_Executing; - debugee = _Thread_Executing; - rp = &debugee->Registers; - fp = (rtems_context_fp *) debugee->fp_context; /* possibly 0 */ - - if (0 == rtems_monitor_read_command(command, &argc, argv)) - continue; - - if (STREQ(argv[0], "quit")) - rtems_monitor_suspend(RTEMS_NO_TIMEOUT); - else if (STREQ(argv[0], "pause")) - rtems_monitor_suspend(1); - -#ifdef CPU_INVOKE_DEBUGGER - else if (STREQ(argv[0], "debug")) - { - CPU_INVOKE_DEBUGGER; - } -#endif - else if (STREQ(argv[0], "symbol")) - { - char *symbol; - char *value; - - if (argc != 3) - { - printf("usage: symbol symname symvalue\n"); - continue; - } - - symbol = argv[1]; - value = argv[2]; - if (symbol && value) - { - rtems_symbol_t *sp; - sp = rtems_symbol_create(rtems_monitor_symbols, - symbol, - (rtems_unsigned32) strtoul(value, 0, 16)); - if (sp) - printf("symbol defined is at %p\n", sp); - else - printf("could not define symbol\n"); - } - else - printf("parsing error\n"); - } - else - { - printf("Unrecognized command: '%s'\n", argv[0]); - } - } -} - -/* - * Function: rtems_monitor_symbols_loadup - * - * Description: - * Create and load the monitor's symbol table. - * We are reading the output format of 'gnm' which looks like this: - * - * 400a7068 ? _Rate_monotonic_Information - * 400a708c ? _Thread_Dispatch_disable_level - * 400a7090 ? _Configuration_Table - * - * - * We ignore the type field. - * - * Parameters: - * - * - * Returns: - * - * - * Side Effects: - * Creates and fills in 'rtems_monitor_symbols' table - * - * Notes: - * - * - * Deficiencies/ToDo: - * Someday this should know BFD - * Maybe we could get objcopy to just copy the symbol areas - * and copy that down. - * - */ - -void -rtems_monitor_symbols_loadup(void) -{ - FILE *fp; - char buffer[128]; - - rtems_monitor_symbols = rtems_symbol_table_create(10); - if (rtems_monitor_symbols == 0) - return; - - fp = fdopen(8, "r"); - if (fp == 0) - return; - - while (fgets(buffer, sizeof(buffer) - 1, fp)) - { - char *symbol; - char *value; - char *ignored_type; - - value = strtok(buffer, " \t\n"); - ignored_type = strtok(0, " \t\n"); - symbol = strtok(0, " \t\n"); - - if (symbol && ignored_type && value) - { - rtems_symbol_t *sp; - sp = rtems_symbol_create(rtems_monitor_symbols, - symbol, - (rtems_unsigned32) strtoul(value, 0, 16)); - if (sp == 0) - { - printf("could not define symbol\n"); - goto done; - } - } - else - { - printf("parsing error\n"); - goto done; - } - } - -done: -} diff --git a/c/src/lib/libmisc/monitor/mon-symbols.c b/c/src/lib/libmisc/monitor/mon-symbols.c deleted file mode 100644 index 58d35befa1..0000000000 --- a/c/src/lib/libmisc/monitor/mon-symbols.c +++ /dev/null @@ -1,327 +0,0 @@ -/* - * @(#)symbols.c 1.3 - 95/04/24 - * - */ - -/* #define qsort _quicksort */ - -/* - * File: symbols.c - * - * Description: - * Symbol table manager for the RTEMS monitor. - * These routines may be used by other system resources also. - * - * - * TODO: - */ - -#include -#include -#include -#include - -#include "symbols.h" - -extern rtems_symbol_table_t *rtems_monitor_symbols; - -#ifdef RTEMS_DEBUG -#define CHK_ADR_PTR(p) \ -do { \ - if (((p) < rtems_monitor_symbols->addresses) || \ - ((p) >= (rtems_monitor_symbols->addresses + rtems_monitor_symbols->next))) \ - { \ - printf("bad address pointer %p\n", (p)); \ - rtems_fatal_error_occurred(RTEMS_INVALID_ADDRESS); \ - } \ -} while (0) - -#define CHK_NAME_PTR(p) \ -do { \ - if (((p) < rtems_monitor_symbols->symbols) || \ - ((p) >= (rtems_monitor_symbols->symbols + rtems_monitor_symbols->next))) \ - { \ - printf("bad symbol pointer %p\n", (p)); \ - rtems_fatal_error_occurred(RTEMS_INVALID_ADDRESS); \ - } \ -} while (0) -#else -#define CHK_ADR_PTR(p) -#define CHK_NAME_PTR(p) -#endif - -rtems_symbol_table_t * -rtems_symbol_table_create() -{ - rtems_symbol_table_t *table; - - table = (rtems_symbol_table_t *) malloc(sizeof(rtems_symbol_table_t)); - memset((void *) table, 0, sizeof(*table)); - - table->growth_factor = 30; /* 30 percent */ - - return table; -} - -void -rtems_symbol_table_destroy(rtems_symbol_table_t *table) -{ - rtems_symbol_string_block_t *p, *pnext; - - if (table) - { - if (table->addresses) - (void) free(table->addresses); - table->addresses = 0; - - if (table->symbols) - (void) free(table->symbols); - table->symbols = 0; - - p = table->string_buffer_head; - while (p) - { - pnext = p->next; - free(p); - p = pnext; - } - table->string_buffer_head = 0; - table->string_buffer_current = 0; - - free(table); - } -} - -rtems_symbol_t * -rtems_symbol_create( - rtems_symbol_table_t *table, - char *name, - rtems_unsigned32 value - ) -{ - int symbol_length; - size_t newsize; - rtems_symbol_t *sp; - - symbol_length = strlen(name) + 1; /* include '\000' in length */ - - /* need to grow the table? */ - if (table->next >= table->size) - { - if (table->size == 0) - newsize = 100; - else - newsize = table->size + (table->size / (100 / table->growth_factor)); - - table->addresses = (rtems_symbol_t *) realloc((void *) table->addresses, newsize * sizeof(rtems_symbol_t)); - if (table->addresses == 0) /* blew it; lost orig */ - goto failed; - - table->symbols = (rtems_symbol_t *) realloc((void *) table->symbols, newsize * sizeof(rtems_symbol_t)); - if (table->symbols == 0) /* blew it; lost orig */ - goto failed; - - table->size = newsize; - } - - sp = &table->addresses[table->next]; - sp->value = value; - - /* Have to add it to string pool */ - /* need to grow pool? */ - - if ((table->string_buffer_head == 0) || - (table->strings_next + symbol_length) >= SYMBOL_STRING_BLOCK_SIZE) - { - rtems_symbol_string_block_t *p; - - p = (rtems_symbol_string_block_t *) malloc(sizeof(rtems_symbol_string_block_t)); - if (p == 0) - goto failed; - p->next = 0; - if (table->string_buffer_head == 0) - table->string_buffer_head = p; - else - table->string_buffer_current->next = p; - table->string_buffer_current = p; - - table->strings_next = 0; - } - - sp->name = table->string_buffer_current->buffer + table->strings_next; - (void) strcpy(sp->name, name); - - table->strings_next += symbol_length; - - table->symbols[table->next] = *sp; - - table->sorted = 0; - table->next++; - - return sp; - -/* XXX Not sure what to do here. We've possibly destroyed the initial - symbol table due to realloc failure */ -failed: - return 0; -} - -/* - * Qsort entry point for compare by address - */ - -int -rtems_symbol_compare(const void *e1, - const void *e2) -{ - rtems_symbol_t *s1, *s2; - s1 = (rtems_symbol_t *) e1; - s2 = (rtems_symbol_t *) e2; - - CHK_ADR_PTR(s1); - CHK_ADR_PTR(s2); - - if (s1->value < s2->value) - return -1; - if (s1->value > s2->value) - return 1; - return 0; -} - -/* - * Qsort entry point for compare by string name (case independent) - */ - -int -rtems_symbol_string_compare(const void *e1, - const void *e2) -{ - rtems_symbol_t *s1, *s2; - s1 = (rtems_symbol_t *) e1; - s2 = (rtems_symbol_t *) e2; - - CHK_NAME_PTR(s1); - CHK_NAME_PTR(s2); - - return strcasecmp(s1->name, s2->name); -} - - -/* - * Sort the symbol table using qsort - */ - -void -rtems_symbol_sort(rtems_symbol_table_t *table) -{ -#ifdef simhppa - printf("Sorting symbols ... "); /* so slow we need a msg */ - fflush(stdout); -#endif - - qsort((void *) table->addresses, (size_t) table->next, - sizeof(rtems_symbol_t), rtems_symbol_compare); - - qsort((void *) table->symbols, (size_t) table->next, - sizeof(rtems_symbol_t), rtems_symbol_string_compare); - -#ifdef simhppa - /* so slow we need a msg */ - printf("done\n"); -#endif - - table->sorted = 1; -} - -/* - * Search the symbol table by address - * This code based on CYGNUS newlib bsearch, but changed - * to allow for finding closest symbol <= key - */ - -rtems_symbol_t * -rtems_symbol_value_lookup( - rtems_symbol_table_t *table, - rtems_unsigned32 value - ) -{ - rtems_symbol_t *sp; - rtems_symbol_t *base; - rtems_symbol_t *best = 0; - rtems_unsigned32 distance; - rtems_unsigned32 best_distance = ~0; - rtems_unsigned32 elements; - - if ((table == 0) || (table->size == 0)) - return 0; - - if (table->sorted == 0) - rtems_symbol_sort(table); - - base = table->addresses; - elements = table->next; - - while (elements) - { - sp = base + (elements / 2); - if (value < sp->value) - elements /= 2; - else if (value > sp->value) - { - distance = value - sp->value; - if (distance < best_distance) - { - best_distance = distance; - best = sp; - } - base = sp + 1; - elements = (elements / 2) - (elements % 2 ? 0 : 1); - } - else - return sp; - } - - if (value == base->value) - return base; - - return best; -} - -/* - * Search the symbol table by string name (case independent) - */ - -rtems_symbol_t * -rtems_symbol_name_lookup( - rtems_symbol_table_t *table, - char *name - ) -{ - rtems_symbol_t *sp = 0; - rtems_symbol_t key; - - if ((table == 0) || (name == 0)) - goto done; - - if (table->sorted == 0) - { - rtems_symbol_sort(table); - } - - /* - * dummy up one for bsearch() - */ - - key.name = name; - key.value = 0; - - sp = (rtems_symbol_t *) bsearch((const void *) &key, - (const void *) table->symbols, - (size_t) table->next, - sizeof(rtems_symbol_t), - rtems_symbol_string_compare); - -done: - return sp; -} - diff --git a/c/src/lib/libmisc/monitor/monitor.h b/c/src/lib/libmisc/monitor/monitor.h deleted file mode 100644 index 195aa73695..0000000000 --- a/c/src/lib/libmisc/monitor/monitor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * @(#)monitor.h 1.2 - 95/04/24 - * - */ - -/* - * File: monitor.h - * - * Description: - * The RTEMS monitor task include file. - * - * - * - * TODO: - * - */ - -#ifndef __MONITOR_H -#define __MONITOR_H - -#ifdef __cplusplus -extern "C" { -#endif - -void rtems_monitor_init(rtems_boolean monitor_suspend); -void rtems_monitor_wakeup(void); -void rtems_monitor_task(rtems_task_argument monitor_suspend); -void rtems_monitor_symbols_loadup(void); - -extern rtems_unsigned32 rtems_monitor_task_id; - -extern rtems_symbol_table_t *rtems_monitor_symbols; - -#ifdef __cplusplus -} -#endif - -#endif /* ! __MONITOR_H */ diff --git a/c/src/lib/libmisc/monitor/symbols.h b/c/src/lib/libmisc/monitor/symbols.h deleted file mode 100644 index 680ac6d2cf..0000000000 --- a/c/src/lib/libmisc/monitor/symbols.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * File: symbols.h - * - * Description: - * Entry points for symbol table routines. - * - * - * - * TODO: - * - */ - -#ifndef _INCLUDE_SYMBOLS_H -#define _INCLUDE_SYMBOLS_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - rtems_unsigned32 value; - char *name; -} rtems_symbol_t; - -#define SYMBOL_STRING_BLOCK_SIZE 4080 -typedef struct rtems_symbol_string_block_s { - struct rtems_symbol_string_block_s *next; - char buffer[SYMBOL_STRING_BLOCK_SIZE]; -} rtems_symbol_string_block_t; - -typedef struct { - - rtems_unsigned32 sorted; /* are symbols sorted right now? */ - - rtems_unsigned32 growth_factor; /* % to grow by when needed */ - - rtems_unsigned32 next; /* next symbol slot to use when adding */ - rtems_unsigned32 size; /* max # of symbols */ - - /* - * Symbol list -- sorted by address (when we do a lookup) - */ - - rtems_symbol_t *addresses; /* symbol array by address */ - - /* - * String list -- sorted by name (when we do a lookup) - * This is a duplicate of the info in table->addresses, but it's - * pretty small, so I don't worry about it. - */ - - rtems_symbol_t *symbols; /* symbol array */ - - /* - * String pool, unsorted, a list of blocks of string data - */ - - rtems_symbol_string_block_t *string_buffer_head; - rtems_symbol_string_block_t *string_buffer_current; - rtems_unsigned32 strings_next; /* next byte to use in this block */ - -} rtems_symbol_table_t; - -void rtems_symbol_table_destroy(rtems_symbol_table_t *table); -rtems_symbol_table_t *rtems_symbol_table_create(); -rtems_symbol_t *rtems_symbol_create(rtems_symbol_table_t *, - char *, rtems_unsigned32); -rtems_symbol_t *rtems_symbol_value_lookup(rtems_symbol_table_t *, - rtems_unsigned32); -rtems_symbol_t *rtems_symbol_name_lookup(rtems_symbol_table_t *, - char *); - -#define rtems_symbol_name(sp) ((sp)->name) -#define rtems_symbol_value(sp) ((sp)->value) - -#ifdef __cplusplus -} -#endif - -#endif /* ! _INCLUDE_SYMBOLS_H */ diff --git a/c/src/lib/libmisc/stackchk/README b/c/src/lib/libmisc/stackchk/README deleted file mode 100644 index 20e76f07bc..0000000000 --- a/c/src/lib/libmisc/stackchk/README +++ /dev/null @@ -1,41 +0,0 @@ -# -# $Id$ -# - -This directory contains a stack bounds checker. It provides two -primary features: - - + check for stack overflow at each context switch - + provides an educated guess at each task's stack usage - -The stack overflow check at context switch works by looking for -a 16 byte pattern at the logical end of the stack to be corrupted. -The "guesser" assumes that the entire stack was prefilled with a known -pattern and assumes that the pattern is still in place if the memory -has not been used as a stack. - -Both of these can be fooled by pushing large holes onto the stack -and not writing to them... or (much more unlikely) writing the -magic patterns into memory. - -This code has not been extensively tested. It is provided as a tool -for RTEMS users to catch the most common mistake in multitasking -systems ... too little stack space. Suggestions and comments are appreciated. - -NOTES: - -1. Stack usage information is questionable on CPUs which push - large holes on stack. - -2. The stack checker has a tendency to generate a fault when - trying to print the helpful diagnostic message. If it comes - out, congratulations. If not, then the variable Stack_check_Blown_task - contains a pointer to the TCB of the offending task. This - is usually enough to go on. - -FUTURE: - -1. Determine how/if gcc will generate stack probe calls and support that. - -2. Get accurate stack usage numbers on i960.. it pushes very large - holes on the stack. diff --git a/c/src/lib/libmisc/stackchk/check.c b/c/src/lib/libmisc/stackchk/check.c deleted file mode 100644 index 8b923f5c02..0000000000 --- a/c/src/lib/libmisc/stackchk/check.c +++ /dev/null @@ -1,439 +0,0 @@ -/* - * Stack Overflow Check User Extension Set - * - * NOTE: This extension set automatically determines at - * initialization time whether the stack for this - * CPU grows up or down and installs the correct - * extension routines for that direction. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - * - */ - -#include -#include -#include -#include -#include -#include -#ifdef XXX_RTEMS_H_FIXED -#include -#else -#include -extern rtems_configuration_table BSP_Configuration; -#endif - -#include -#include -#include -#include - -#include "stackchk.h" -#include "internal.h" - -/* - * This variable contains the name of the task which "blew" the stack. - * It is NULL if the system is all right. - */ - -Thread_Control *Stack_check_Blown_task; - -/* - * The extension table for the stack checker. - */ - -rtems_extensions_table Stack_check_Extension_table = { - Stack_check_Create_extension, /* rtems_task_create */ - 0, /* rtems_task_start */ - 0, /* rtems_task_restart */ - 0, /* rtems_task_delete */ - Stack_check_Switch_extension, /* task_switch */ - Stack_check_Begin_extension, /* task_begin */ - 0, /* task_exitted */ - Stack_check_Fatal_extension, /* fatal */ -}; - -/* - * The "magic pattern" used to mark the end of the stack. - */ - -Stack_check_Control Stack_check_Pattern; - -/* - * Where the pattern goes in the stack area is dependent upon - * whether the stack grow to the high or low area of the memory. - * - */ - -#if ( CPU_STACK_GROWS_UP == TRUE ) - -#define Stack_check_Get_pattern_area( _the_stack ) \ - ((Stack_check_Control *) \ - ((_the_stack)->area + (_the_stack)->size - sizeof( Stack_check_Control ) )) - -#define Stack_check_Calculate_used( _low, _size, _high_water ) \ - ((_high_water) - (_low)) - -#define Stack_check_usable_stack_start(_the_stack) \ - ((_the_stack)->area) - -#else - -#define Stack_check_Get_pattern_area( _the_stack ) \ - ((Stack_check_Control *) ((_the_stack)->area + HEAP_OVERHEAD)) - -#define Stack_check_Calculate_used( _low, _size, _high_water) \ - ( ((_low) + (_size)) - (_high_water) ) - -#define Stack_check_usable_stack_start(_the_stack) \ - ((_the_stack)->area + sizeof(Stack_check_Control)) - -#endif - -#define Stack_check_usable_stack_size(_the_stack) \ - ((_the_stack)->size - sizeof(Stack_check_Control)) - - -/* - * Do we have an interrupt stack? - * XXX it would sure be nice if the interrupt stack were also - * stored in a "stack" structure! - */ - - -Stack_Control stack_check_interrupt_stack; - -/* - * Fill an entire stack area with BYTE_PATTERN. - * This will be used by a Fatal extension to check for - * amount of actual stack used - */ - -void -stack_check_dope_stack(Stack_Control *stack) -{ - memset(stack->area, BYTE_PATTERN, stack->size); -} - - -/*PAGE - * - * Stack_check_Initialize - */ - -unsigned32 stack_check_initialized = 0; - -void Stack_check_Initialize( void ) -{ - rtems_status_code status; - Objects_Id id_ignored; - unsigned32 *p; - - if (stack_check_initialized) - return; - - /* - * Dope the pattern and fill areas - */ - - for ( p = Stack_check_Pattern.pattern; - p < &Stack_check_Pattern.pattern[PATTERN_SIZE_WORDS]; - p += 4 - ) - { - p[0] = 0xFEEDF00D; /* FEED FOOD to BAD DOG */ - p[1] = 0x0BAD0D06; - p[2] = 0xDEADF00D; /* DEAD FOOD GOOD DOG */ - p[3] = 0x600D0D06; - }; - - status = rtems_extension_create( - rtems_build_name( 'S', 'T', 'C', 'K' ), - &Stack_check_Extension_table, - &id_ignored - ); - assert ( status == RTEMS_SUCCESSFUL ); - - Stack_check_Blown_task = 0; - - /* - * If installed by a task, that task will not get setup properly - * since it missed out on the create hook. This will cause a - * failure on first switch out of that task. - * So pretend here that we actually ran create and begin extensions. - */ - - if (_Thread_Executing) - { - Stack_check_Create_extension(_Thread_Executing, _Thread_Executing); - } - - /* - * If appropriate, setup the interrupt stack for high water testing - * also. - */ - if (_CPU_Interrupt_stack_low && _CPU_Interrupt_stack_high) - { - stack_check_interrupt_stack.area = _CPU_Interrupt_stack_low; - stack_check_interrupt_stack.size = _CPU_Interrupt_stack_high - - _CPU_Interrupt_stack_low; - - stack_check_dope_stack(&stack_check_interrupt_stack); - } - - stack_check_initialized = 1; -} - -/*PAGE - * - * Stack_check_Create_extension - */ - -void Stack_check_Create_extension( - Thread_Control *running, - Thread_Control *the_thread -) -{ - if (the_thread && (the_thread != _Thread_Executing)) - stack_check_dope_stack(&the_thread->Start.Initial_stack); -} - -/*PAGE - * - * Stack_check_Begin_extension - */ - -void Stack_check_Begin_extension( - Thread_Control *the_thread -) -{ - Stack_check_Control *the_pattern; - - if ( the_thread->Object.id == 0 ) /* skip system tasks */ - return; - - the_pattern = Stack_check_Get_pattern_area(&the_thread->Start.Initial_stack); - - *the_pattern = Stack_check_Pattern; -} - -/*PAGE - * - * Stack_check_report_blown_task - * Report a blown stack. Needs to be a separate routine - * so that interrupt handlers can use this too. - * - * Caller must have set the Stack_check_Blown_task. - * - * NOTE: The system is in a questionable state... we may not get - * the following message out. - */ - -void Stack_check_report_blown_task(void) -{ - Stack_Control *stack; - Thread_Control *running; - - running = Stack_check_Blown_task; - stack = &running->Start.Initial_stack; - - fprintf( - stderr, - "BLOWN STACK!!! Offending task(%p): id=0x%08x; name=0x%08x", - running, - running->Object.id, - running->name); - fflush(stderr); - - if (BSP_Configuration.User_multiprocessing_table) - fprintf( - stderr, - "; node=%d\n", - BSP_Configuration.User_multiprocessing_table->node - ); - else - fprintf(stderr, "\n"); - fflush(stderr); - - fprintf( - stderr, - " stack covers range 0x%08x - 0x%08x (%d bytes)\n", - (unsigned32) stack->area, - (unsigned32) stack->area + stack->size - 1, - (unsigned32) stack->size); - fflush(stderr); - - fprintf( - stderr, - " Damaged pattern begins at 0x%08x and is %d bytes long\n", - (unsigned32) Stack_check_Get_pattern_area(stack), PATTERN_SIZE_BYTES); - fflush(stderr); - - rtems_fatal_error_occurred( (unsigned32) "STACK BLOWN" ); -} - -/*PAGE - * - * Stack_check_Switch_extension - */ - -void Stack_check_Switch_extension( - Thread_Control *running, - Thread_Control *heir -) -{ - if ( running->Object.id == 0 ) /* skip system tasks */ - return; - - if (0 != memcmp( (void *) Stack_check_Get_pattern_area( &running->Start.Initial_stack)->pattern, - (void *) Stack_check_Pattern.pattern, - PATTERN_SIZE_BYTES)) - { - Stack_check_Blown_task = running; - Stack_check_report_blown_task(); - } -} - -void *Stack_check_find_high_water_mark( - const void *s, - size_t n -) -{ - const unsigned32 *base, *ebase; - unsigned32 length; - - base = s; - length = n/4; - -#if ( CPU_STACK_GROWS_UP == TRUE ) - /* - * start at higher memory and find first word that does not - * match pattern - */ - - base += length - 1; - for (ebase = s; base > ebase; base--) - if (*base != U32_PATTERN) - return (void *) base; -#else - /* - * start at lower memory and find first word that does not - * match pattern - */ - - for (ebase = base + length; base < ebase; base++) - if (*base != U32_PATTERN) - return (void *) base; -#endif - - return (void *)0; -} - -/*PAGE - * - * Stack_check_Dump_threads_usage - * Try to print out how much stack was actually used by the task. - * - */ - -void Stack_check_Dump_threads_usage( - Thread_Control *the_thread -) -{ - unsigned32 size, used; - void *low; - void *high_water_mark; - Stack_Control *stack; - - if ( !the_thread ) - return; - - /* - * XXX HACK to get to interrupt stack - */ - - if (the_thread == (Thread_Control *) -1) - { - if (stack_check_interrupt_stack.area) - { - stack = &stack_check_interrupt_stack; - the_thread = 0; - } - else - return; - } - else - stack = &the_thread->Start.Initial_stack; - - low = Stack_check_usable_stack_start(stack); - size = Stack_check_usable_stack_size(stack); - - high_water_mark = Stack_check_find_high_water_mark(low, size); - - if ( high_water_mark ) - used = Stack_check_Calculate_used( low, size, high_water_mark ); - else - used = 0; - - printf( "0x%08x 0x%08x 0x%08x 0x%08x %8d %8d\n", - the_thread ? the_thread->Object.id : ~0, - the_thread ? the_thread->name : - rtems_build_name('I', 'N', 'T', 'R'), - (unsigned32) stack->area, - (unsigned32) stack->area + (unsigned32) stack->size - 1, - size, - used - ); -} - -/*PAGE - * - * Stack_check_Fatal_extension - */ - -void Stack_check_Fatal_extension( unsigned32 status ) -{ - if (status == 0) - Stack_check_Dump_usage(); -} - - -/*PAGE - * - * Stack_check_Dump_usage - */ - -void Stack_check_Dump_usage( void ) -{ - unsigned32 i; - Thread_Control *the_thread; - unsigned32 hit_running = 0; - - if (stack_check_initialized == 0) - return; - - printf( - " ID NAME LOW HIGH AVAILABLE USED\n" - ); - for ( i=1 ; i<_Thread_Information.maximum ; i++ ) { - the_thread = (Thread_Control *)_Thread_Information.local_table[ i ]; - Stack_check_Dump_threads_usage( the_thread ); - if ( the_thread == _Thread_Executing ) - hit_running = 1; - } - - if ( !hit_running ) - Stack_check_Dump_threads_usage( _Thread_Executing ); - - /* dump interrupt stack info if any */ - Stack_check_Dump_threads_usage((Thread_Control *) -1); -} - diff --git a/c/src/lib/libmisc/stackchk/internal.h b/c/src/lib/libmisc/stackchk/internal.h deleted file mode 100644 index 19c9f5e267..0000000000 --- a/c/src/lib/libmisc/stackchk/internal.h +++ /dev/null @@ -1,94 +0,0 @@ -/* internal.h - * - * This include file contains internal information - * for the RTEMS stack checker. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INTERNAL_STACK_CHECK_h -#define __INTERNAL_STACK_CHECK_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This structure is used to fill in and compare the "end of stack" - * marker pattern. - * pattern area must be a multiple of 4 words. - */ - -#ifdef CPU_STACK_CHECK_SIZE -#define PATTERN_SIZE_WORDS (((CPU_STACK_CHECK_SIZE / 4) + 3) & ~0x3) -#else -#define PATTERN_SIZE_WORDS 4 -#endif - -#define PATTERN_SIZE_BYTES (PATTERN_SIZE_WORDS * 4) - -typedef struct { - unsigned32 pattern[ PATTERN_SIZE_WORDS ]; -} Stack_check_Control; - -/* - * The pattern used to fill the entire stack. - */ - -#define BYTE_PATTERN 0xA5 -#define U32_PATTERN 0xA5A5A5A5 - -/* - * Stack_check_Create_extension - */ - -void Stack_check_Create_extension( - Thread_Control *running, - Thread_Control *the_thread -); - -/* - * Stack_check_Begin_extension - */ - -void Stack_check_Begin_extension( - Thread_Control *the_thread -); - -/* - * Stack_check_Switch_extension - */ - -void Stack_check_Switch_extension( - Thread_Control *running, - Thread_Control *heir -); - -/* - * Stack_check_Fatal_extension - */ - -void Stack_check_Fatal_extension( - unsigned32 -); - -/* - * Stack_check_Dump_usage - */ - -void Stack_check_Dump_usage( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libmisc/stackchk/stackchk.h b/c/src/lib/libmisc/stackchk/stackchk.h deleted file mode 100644 index f3281c63fe..0000000000 --- a/c/src/lib/libmisc/stackchk/stackchk.h +++ /dev/null @@ -1,41 +0,0 @@ -/* stackchk.h - * - * This include file contains information necessary to utilize - * and install the stack checker mechanism. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STACK_CHECK_h -#define __STACK_CHECK_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Stack_check_Initialize - */ - -void Stack_check_Initialize( void ); - -/* - * Stack_check_Dump_usage - */ - -void Stack_check_Dump_usage( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/start/README b/c/src/lib/start/README deleted file mode 100644 index bec0349374..0000000000 --- a/c/src/lib/start/README +++ /dev/null @@ -1,10 +0,0 @@ -$Id$ - -For each processor there may be some start up code -(like crt.o) in the appropriate entry subdirectory. This -entry code transfers control to target board specific -code). - -For some processors this code exists in some external (to RTEMS) -library such as libgloss or the host system (for example the hppa1_1 -and UNIX cpu's) diff --git a/c/src/lib/start/i960/start.s b/c/src/lib/start/i960/start.s deleted file mode 100644 index 8db45011b1..0000000000 --- a/c/src/lib/start/i960/start.s +++ /dev/null @@ -1,105 +0,0 @@ -/* entry.s - * - * This file contains the entry point for the application. - * The name of this entry point is compiler dependent. - * It jumps to the BSP which is responsible for performing - * all initialization. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "asm.h" - - BEGIN_CODE - PUBLIC(start) # GNU960 default entry point - -start: - mov 3, r12 - modpc r12, r12, r12 # enable tracing/trace faults - mov g5, g5 # NOP - mov 0, g14 # initialize constant for C - - /* - * zero out uninitialized data area - */ -zerobss: - lda _end, r4 /* find end of .bss */ - lda _bss_start, r5 /* find beginning of .bss */ - ldconst 0, r6 - -loop: st r6, (r5) /* to zero out uninitialized */ - addo 4, r5, r5 /* data area */ - cmpobl r5, r4, loop /* loop until _end reached */ - -/* set up stack pointer: - * The heap will begin at '_end'; its length is 'heap_size' - * bytes. The stack will begin at the first 64-byte-aligned - * block after the heap. - * - * A default value of 'heap_size' is set by linking with libnindy.a - * The default can be overridden by redefining this symbol at link - * time (with a line of the form 'heap_size=XXXX;' in the lnk960 - * linker specification file; or one of the form - * "-defsym heap_size=XXXX" on the gld960 invocation line). - */ - - ldconst _end, sp /* set sp = address of end of heap */ - lda heap_size(sp),sp - lda 64(sp), sp /* Now round up to 64-byte boundary */ - ldconst 0xffffffc0, r12 - and r12, sp, sp - st sp, _stack_start /* Save for brk() routine */ - - call init_frames - ret /* return to monitor */ - -init_frames: - mov 0, g14 /* initialize constant for C */ - ldconst 0x3b001000, g0 - ldconst 0x00009107, g1 - modac g1, g0, g0 /* set AC controls */ - - /* - * remember the frame, so that we can set it up if necessary - */ - - st fp, _start_frame - - /* - * Call application mainline. - * Someday, real values of argc and argv will be set up. - * For now, they are set to 0. - */ - ldconst 0,g0 - ldconst 0,g1 - call _bsp_start - ret - -END_CODE - - BEGIN_DATA - - PUBLIC(_start_frame) -SYM (_start_frame): - .word 0 # addr of first user frame: for gdb960 - -SYM (_stack_start): - PUBLIC(_stack_start) - .word 0 # addr of first user frame: for gdb960 - -END_DATA - -BEGIN_BSS - PUBLIC(heap_size) - .set heap_size,0x2000 -END_BSS - -END diff --git a/c/src/lib/start/m68k/start.s b/c/src/lib/start/m68k/start.s deleted file mode 100644 index 0bbb0a851f..0000000000 --- a/c/src/lib/start/m68k/start.s +++ /dev/null @@ -1,160 +0,0 @@ -/* entry.s - * - * This file contains the entry point for the application. - * The name of this entry point is compiler dependent. - * It jumps to the BSP which is responsible for performing - * all initialization. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "asm.h" - -BEGIN_CODE - | Default entry points for: - PUBLIC (start) | GNU - PUBLIC (M68Kvec) | Vector Table - -SYM (start): -SYM (M68Kvec): | standard location for vectors - nop | for linkers with problem - | location zero - jmp SYM (start_around) - - /* - * We can use the following space as our vector table - * if the CPU has a VBR or we can save vector table in it - * if the CPU does not. - */ - - .space 4088 | to avoid initial intr stack - | from 135BUG on MVME13? - | and start code at 0x4000 -SYM (vectors): - .space 1016 | reserve space for rest of vectors - -#if ( M68K_HAS_SEPARATE_STACKS == 1 ) -SYM (lowintstack): - .space 4092 | reserve for interrupt stack -SYM (hiintstack): - .space 4 | end of interrupt stack -#endif - - PUBLIC (start_around) -SYM (start_around): - move.w sr, SYM (initial_sr) -#if ( M68K_HAS_SEPARATE_STACKS == 1 ) - movec isp,a0 - move.l a0, SYM (initial_isp) - movec usp,a0 - move.l a0, SYM (initial_usp) - movec msp,a0 - move.l a0, SYM (initial_msp) -#else - move.l a7, SYM (initial_msp) -#endif - oriw #0x0700,sr | INTERRUPTS OFF!!! - - - - | - | zero out uninitialized data area - | -zerobss: - moveal # SYM (end),a0 | find end of .bss - moveal # SYM (bss_start),a1 | find beginning of .bss - movel #0,d0 - -loop: movel #0,a1@+ | to zero out uninitialized - cmpal a0,a1 - jlt loop | loop until _end reached - - movel # SYM (end),d0 | d0 = end of bss/start of heap - addl # SYM (heap_size),d0 | d0 = end of heap - movel d0, SYM (stack_start) | Save for brk() routine - addl # SYM (stack_size),d0 | make room for stack - andl #0xffffffc0,d0 | align it on 16 byte boundary - movw #0x3700,sr | SUPV MODE,INTERRUPTS OFF!!! - movel d0,a7 | set master stack pointer - movel d0,a6 | set base pointer - - /* - * RTEMS should maintiain a separate interrupt stack on CPUs - * without one in hardware. This is currently not supported - * on versions of the m68k without a HW intr stack. - */ - -#if ( M68K_HAS_SEPARATE_STACKS == 1 ) - lea SYM (hiintstack),a0 | a0 = high end of intr stack - movec a0,isp | set interrupt stack -#endif - - jsr SYM (bsp_start) -#if ( M68K_HAS_SEPARATE_STACKS == 1 ) - move.l SYM (initial_isp),a0 - movec a0,isp - move.l SYM (initial_usp),a0 - movec a0,usp - move.l SYM (initial_msp),a0 - movec a0,msp -#else - movea.l SYM (initial_msp),a7 -#endif - move.w SYM (initial_sr),sr - rts - -END_CODE - -BEGIN_DATA - - PUBLIC (start_frame) -SYM (start_frame): - .space 4,0 - - PUBLIC (stack_start) -SYM (stack_start): - .space 4,0 -END_DATA - -BEGIN_BSS - - PUBLIC (environ) - .align 2 -SYM (environ): - .long 0 - - PUBLIC (initial_isp) -SYM (initial_isp): - .space 4 - - PUBLIC (initial_msp) -SYM (initial_msp): - .space 4 - - PUBLIC (initial_usp) -SYM (initial_usp): - .space 4 - - PUBLIC (initial_sr) -SYM (initial_sr): - .space 2 - - PUBLIC (heap_size) - .set SYM (heap_size),0x2000 - - PUBLIC (stack_size) - .set SYM (stack_size),0x1000 - - -END_DATA -END - - diff --git a/c/src/libchip/shmdr/README b/c/src/libchip/shmdr/README deleted file mode 100644 index 5ed9e861b0..0000000000 --- a/c/src/libchip/shmdr/README +++ /dev/null @@ -1,9 +0,0 @@ -# -# $Id$ -# - -The mpci.h file provided in here is too simple for an MPCI with -multiple ways to get to a node. - -This version of the shm driver needs to be reorganized to follow -the better model of the Ada version. diff --git a/c/src/libchip/shmdr/addlq.c b/c/src/libchip/shmdr/addlq.c deleted file mode 100644 index 2c2529c834..0000000000 --- a/c/src/libchip/shmdr/addlq.c +++ /dev/null @@ -1,43 +0,0 @@ -/* void Shm_Locked_queue_Add( lq_cb, ecb ) - * - * This routine adds an envelope control block to a shared memory queue. - * - * Input parameters: - * lq_cb - pointer to a locked queue control block - * ecb - pointer to an envelope control block - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -void Shm_Locked_queue_Add( - Shm_Locked_queue_Control *lq_cb, - Shm_Envelope_control *ecb -) -{ - rtems_unsigned32 index; - - ecb->next = Shm_Locked_queue_End_of_list; - ecb->queue = lq_cb->owner; - index = ecb->index; - - Shm_Lock( lq_cb ); - if ( Shm_Convert(lq_cb->front) != Shm_Locked_queue_End_of_list ) - Shm_Envelopes[ Shm_Convert(lq_cb->rear) ].next = index; - else - lq_cb->front = index; - lq_cb->rear = index; - Shm_Unlock( lq_cb ); -} diff --git a/c/src/libchip/shmdr/cnvpkt.c b/c/src/libchip/shmdr/cnvpkt.c deleted file mode 100644 index 2c3a144167..0000000000 --- a/c/src/libchip/shmdr/cnvpkt.c +++ /dev/null @@ -1,42 +0,0 @@ -/* void Shm_Convert_packet( &packet ) - * - * This routine is the shared memory locked queue MPCI driver routine - * used to convert the RTEMS's information in a packet from non-native - * format to processor native format. - * - * Input parameters: - * packet - pointer to a packet - * - * Output parameters: - * *packet - packet in native format - * - * NOTE: Message buffers are not manipulated. - * Endian conversion is currently the only conversion. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -void Shm_Convert_packet( - rtems_packet_prefix *packet -) -{ - rtems_unsigned32 *pkt, i; - - pkt = (rtems_unsigned32 *) packet; - for ( i=RTEMS_MINIMUN_HETERO_CONVERSION ; i ; i--, pkt++ ) - *pkt = CPU_swap_u32( *pkt ); - - for ( i=packet->to_convert ; i ; i--, pkt++ ) - *pkt = CPU_swap_u32( *pkt ); -} diff --git a/c/src/libchip/shmdr/dump.c b/c/src/libchip/shmdr/dump.c deleted file mode 100644 index e028ab4204..0000000000 --- a/c/src/libchip/shmdr/dump.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * This routine is invoked following a reset to report the statistics - * gathered during the previous execution. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -#include "shm.h" - -void -Shm_Print_statistics(void) -{ - rtems_unsigned32 ticks; - rtems_unsigned32 ticks_per_second; - rtems_unsigned32 seconds; - int packets_per_second; - - (void) rtems_clock_get( RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &ticks ); - (void) rtems_clock_get( RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticks_per_second ); - - seconds = ticks / ticks_per_second; - - packets_per_second = Shm_Receive_message_count / seconds; - if ( (Shm_Receive_message_count % seconds) >= (seconds / 2) ) - packets_per_second++; - - printf( "\n\nSHMDR STATISTICS (NODE %d)\n", Shm_Local_node ); - printf( "TICKS SINCE BOOT = %d\n", ticks ); - printf( "TICKS PER SECOND = %d\n", ticks_per_second ); - printf( "ISRs=%d\n", Shm_Interrupt_count ); - printf( "RECV=%d\n", Shm_Receive_message_count ); - printf( "NULL=%d\n", Shm_Null_message_count ); - printf( "PKTS/SEC=%d\n", packets_per_second ); -} diff --git a/c/src/libchip/shmdr/fatal.c b/c/src/libchip/shmdr/fatal.c deleted file mode 100644 index fc1e9f8624..0000000000 --- a/c/src/libchip/shmdr/fatal.c +++ /dev/null @@ -1,37 +0,0 @@ -/* void MPCI_Fatal( error ) - * - * This routine is the shared memory driver fatal error handler. - * - * Input parameters: - * error - fatal error code - * - * Output parameters: NEVER RETURNS - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -void MPCI_Fatal( - rtems_unsigned32 error -) -{ - /* Eventually need to attempt to broadcast a K_FATAL message - * without checking for all possible errors (do not want to - * recurse). - * - * Also need to avoid using Shm_Node_statuses if the driver has not been - * initialized. - */ - - Shm_Local_node_status->error = Shm_Convert(error); -} diff --git a/c/src/libchip/shmdr/getlq.c b/c/src/libchip/shmdr/getlq.c deleted file mode 100644 index 180c33ef00..0000000000 --- a/c/src/libchip/shmdr/getlq.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Shm_Envelope_control *Shm_Locked_queue_Get( lq_cb ) - * - * This routine returns an envelope control block from a shared - * memory queue. - * - * Input parameters: - * lq_cb - pointer to a locked queue control block - * - * Output parameters: - * returns - pointer to an envelope control block - * - NULL if no envelopes on specified queue - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -Shm_Envelope_control *Shm_Locked_queue_Get( - Shm_Locked_queue_Control *lq_cb -) -{ - Shm_Envelope_control *tmp_ecb; - rtems_unsigned32 tmpfront; - - tmp_ecb = NULL; - Shm_Lock( lq_cb ); - tmpfront = Shm_Convert(lq_cb->front); - if ( tmpfront != Shm_Locked_queue_End_of_list ) { - tmp_ecb = &Shm_Envelopes[ tmpfront ]; - lq_cb->front = tmp_ecb->next; - if ( tmp_ecb->next == Shm_Locked_queue_End_of_list ) - lq_cb->rear = Shm_Locked_queue_End_of_list; - tmp_ecb->next = Shm_Locked_queue_Not_on_list; - } - Shm_Unlock( lq_cb ); - return( tmp_ecb ); -} diff --git a/c/src/libchip/shmdr/getpkt.c b/c/src/libchip/shmdr/getpkt.c deleted file mode 100644 index c80b3ed282..0000000000 --- a/c/src/libchip/shmdr/getpkt.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Shm_Get_packet - * - * This routine is the shared memory locked queue MPCI driver - * routine used to obtain an empty message packet. - * - * Input parameters: - * packet - address of pointer to packet - * - * Output parameters: - * *(cpb->get_packet) - address of allocated packet - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -rtems_mpci_entry Shm_Get_packet( - rtems_packet_prefix **packet -) -{ - Shm_Envelope_control *ecb; - - ecb = Shm_Allocate_envelope(); - if ( !ecb ) - rtems_fatal_error_occurred ( SHM_NO_FREE_PKTS ); - *packet = Shm_Envelope_control_to_packet_prefix_pointer( ecb ); -} diff --git a/c/src/libchip/shmdr/init.c b/c/src/libchip/shmdr/init.c deleted file mode 100644 index b9de91d449..0000000000 --- a/c/src/libchip/shmdr/init.c +++ /dev/null @@ -1,248 +0,0 @@ -/* Shm_Initialization - * - * This routine is the shared memory communications initerface - * driver initialization routine. - * - * Input parameters: - * configuration - address of configuration table - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#define _SHM_INIT - -#include -#include "shm.h" - -/* - * Need a user extension control to install MPCI_Fatal as - * a fatal error handler extension - */ - -rtems_extensions_table MPCI_Shm_extensions; - -rtems_mpci_entry Shm_Initialization( - rtems_configuration_table *configuration, - rtems_cpu_table *cpu_configuration, - rtems_multiprocessing_table *mp_configuration - -) -{ - rtems_unsigned32 i, *u32_ptr, *endshm, all_initialized; - rtems_unsigned32 interrupt_cause, interrupt_value; - void *interrupt_address; - Shm_Node_status_control *nscb; - rtems_unsigned32 extension_id; /* for installation of MPCI_Fatal */ - rtems_unsigned32 remaining_memory; - - Shm_RTEMS_Configuration = configuration; - Shm_RTEMS_MP_Configuration = mp_configuration; - - Shm_Local_node = Shm_RTEMS_MP_Configuration->node; - Shm_Maximum_nodes = Shm_RTEMS_MP_Configuration->maximum_nodes; - - Shm_Get_configuration( Shm_Local_node ,&Shm_Configuration ); - - Shm_Receive_message_count = 0; - Shm_Null_message_count = 0; - Shm_Interrupt_count = 0; - - /* - * Set the Node Status indicators - */ - -#define PEND Shm_Convert(rtems_build_name( 'P', 'E', 'N', 'D' )) -#define COMP Shm_Convert(rtems_build_name( 'C', 'O', 'M', 'P' )) -#define ACTV Shm_Convert(rtems_build_name( 'A', 'C', 'T', 'V' )) - - Shm_Pending_initialization = PEND; - Shm_Initialization_complete = COMP; - Shm_Active_node = ACTV; - - /* - * Initialize the constants used by the Locked Queue code. - */ - - Shm_Locked_queue_End_of_list = Shm_Convert( 0xffffffff ); - Shm_Locked_queue_Not_on_list = Shm_Convert( 0xfffffffe ); - - /* - * Set the base addresses for the: - * + Node Status Table - * + Free Pool and Receive Queues - * + Envelopes - */ - - Shm_Node_statuses = (Shm_Node_status_control *) START_NS_CBS; - Shm_Locked_queues = (Shm_Locked_queue_Control *) START_LQ_CBS; - Shm_Envelopes = (Shm_Envelope_control *) START_ENVELOPES; - - /* - * Calculate the maximum number of envelopes which can be - * placed the remaining shared memory. - */ - - remaining_memory = - ((void *)Shm_Configuration->base + Shm_Configuration->length) - - ((void *)Shm_Envelopes); - - Shm_Maximum_envelopes = remaining_memory / sizeof( Shm_Envelope_control ); - Shm_Maximum_envelopes -= 1; - - /* - * Set the pointer to the receive queue for the local node. - * When we receive a node, we will get it from here before - * processing it. - */ - - Shm_Local_receive_queue = &Shm_Locked_queues[ Shm_Local_node ]; - Shm_Local_node_status = &Shm_Node_statuses[ Shm_Local_node ]; - - /* - * Convert local interrupt cause information into the - * neutral format so other nodes will be able to - * understand it. - */ - - interrupt_address = - (void *) Shm_Convert( (rtems_unsigned32)Shm_Configuration->Intr.address ); - interrupt_value = Shm_Convert( Shm_Configuration->Intr.value ); - interrupt_cause = Shm_Convert( Shm_Configuration->Intr.length ); - - if ( Shm_Configuration->poll_intr == POLLED_MODE ) Shm_setclockvec(); - else Shm_setvec(); - - if ( Shm_Is_master_node() ) { - - /* - * Zero out the shared memory area. - */ - - for ( u32_ptr = (rtems_unsigned32 *)Shm_Configuration->base, - endshm = (rtems_unsigned32 *)END_SHARED_MEM ; - u32_ptr < endshm ; ) - *u32_ptr++ = 0; - - /* - * Initialize all of the locked queues (the free envelope - * pool and a receive queue per node) and set all of the - * node's status so they will be waiting to initialization - * to complete. - */ - - Shm_Locked_queue_Initialize( FREE_ENV_CB, FREE_ENV_POOL ); - - for ( i=SHM_FIRST_NODE ; i<=Shm_Maximum_nodes ; i++ ) { - Shm_Initialize_receive_queue( i ); - - Shm_Node_statuses[ i ].status = Shm_Pending_initialization; - Shm_Node_statuses[ i ].error = 0; - } - - /* - * Initialize all of the envelopes and place them in the - * free pool. - */ - - for ( i=0 ; iint_address = (rtems_unsigned32) interrupt_address; - Shm_Local_node_status->int_value = interrupt_value; - Shm_Local_node_status->int_length = interrupt_cause; - - Shm_Local_node_status->status = Shm_Initialization_complete; - - /* - * Loop until all nodes have completed initialization. - */ - - all_initialized = 0; - - for ( ; ; ) { - - if ( all_initialized == 1 ) break; - - all_initialized = 1; - - for ( i = SHM_FIRST_NODE ; i <= Shm_Maximum_nodes ; i++ ) - if ( Shm_Node_statuses[ i ].status != Shm_Initialization_complete ) - all_initialized = 0; - } - - /* - * Tell the other nodes we think that the system is up. - */ - - for ( i = SHM_FIRST_NODE ; i <= Shm_Maximum_nodes ; i++ ) - Shm_Node_statuses[ i ].status = Shm_Active_node; - - } else { /* is not MASTER node */ - - /* - * Initialize the node status for the non-master nodes. - * Because the master node zeroes out memory, it is - * necessary for them to keep putting their values in - * the node status area until the master says they - * should become active. - */ - - Shm_Local_node_status->status = Shm_Pending_initialization; - - do { - - if ( Shm_Local_node_status->status == Shm_Pending_initialization ) { - - /* - * Initialize this node's interrupt information in the - * shared area so other nodes can interrupt us. - */ - - Shm_Local_node_status->int_address = - (rtems_unsigned32) interrupt_address; - Shm_Local_node_status->int_value = interrupt_value; - Shm_Local_node_status->int_length = interrupt_cause; - - Shm_Local_node_status->status = Shm_Initialization_complete; - } - } while ( Shm_Local_node_status->status != Shm_Active_node ) ; - } - - /* - * Initialize the Interrupt Information Table - */ - - for ( i = SHM_FIRST_NODE ; i <= Shm_Maximum_nodes ; i++ ) { - nscb = &Shm_Node_statuses[ i ]; - - Shm_Interrupt_table[i].address = Shm_Convert_address( - (void *)Shm_Convert(((vol_u32) nscb->int_address)) - ); - Shm_Interrupt_table[i].value = Shm_Convert( nscb->int_value ); - Shm_Interrupt_table[i].length = Shm_Convert( nscb->int_length ); - } - - MPCI_Shm_extensions.fatal = MPCI_Fatal; - (void) rtems_extension_create( - rtems_build_name( 'M', 'P', 'E', 'X' ), - &MPCI_Shm_extensions, - &extension_id - ); -} diff --git a/c/src/libchip/shmdr/initlq.c b/c/src/libchip/shmdr/initlq.c deleted file mode 100644 index 3f44cf577d..0000000000 --- a/c/src/libchip/shmdr/initlq.c +++ /dev/null @@ -1,35 +0,0 @@ -/* void Shm_Locked_queue_Initialize( lq_cb, owner ) - * - * This routine initializes a shared memory locked queue. - * - * Input parameters: - * lq_cb - pointer to the control block of the queue - * to be initialized - * owner - unique idenitifier of who owns this queue. - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -void Shm_Locked_queue_Initialize( - Shm_Locked_queue_Control *lq_cb, - rtems_unsigned32 owner -) -{ - Shm_Initialize_lock( lq_cb ); - lq_cb->front = Shm_Locked_queue_End_of_list; - lq_cb->rear = Shm_Locked_queue_End_of_list; - lq_cb->owner = Shm_Convert(owner); -} diff --git a/c/src/libchip/shmdr/intr.c b/c/src/libchip/shmdr/intr.c deleted file mode 100644 index 8982103227..0000000000 --- a/c/src/libchip/shmdr/intr.c +++ /dev/null @@ -1,58 +0,0 @@ -/* void Shm_Cause_interrupt( node ) - * - * This routine is the shared memory driver routine which - * generates interrupts to other CPUs. - * - * It uses the information placed in the node status control - * block by each node. For example, when used with the Motorola - * MVME136 board, the MPCSR is used. - * - * Input parameters: - * node - destination of this packet (0 = broadcast) - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -void Shm_Cause_interrupt( - rtems_unsigned32 node -) -{ - Shm_Interrupt_information *intr; - rtems_unsigned8 *u8; - rtems_unsigned16 *u16; - rtems_unsigned32 *u32; - rtems_unsigned32 value; - - intr = &Shm_Interrupt_table[node]; - value = intr->value; - - switch ( intr->length ) { - case NO_INTERRUPT: - break; - case BYTE: - u8 = (rtems_unsigned8 *)intr->address; - *u8 = (rtems_unsigned8) value; - break; - case WORD: - u16 = (rtems_unsigned16 *)intr->address; - *u16 = (rtems_unsigned16) value; - break; - case LONG: - u32 = (rtems_unsigned32 *)intr->address; - *u32 = (rtems_unsigned32) value; - break; - } -} diff --git a/c/src/libchip/shmdr/mpci.h b/c/src/libchip/shmdr/mpci.h deleted file mode 100644 index 819349f96f..0000000000 --- a/c/src/libchip/shmdr/mpci.h +++ /dev/null @@ -1,59 +0,0 @@ -/* mpci.h - * - * This include file contains all the renaming necessary to - * have an application use the Shared Memory Driver as its - * sole mechanism for MPCI. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MPCI_h -#define __MPCI_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include "shm.h" - -#define MPCI_Initialization( _configuration ) \ - Shm_Initialization( _configuration ) - -#define MPCI_Get_packet( _the_packet ) \ - Shm_Get_packet( _the_packet ) - -#define MPCI_Return_packet( _the_packet ) \ - Shm_Return_packet( _the_packet ) - -#define MPCI_Receive_packet( _the_packet ) \ - Shm_Receive_packet( _the_packet ) - -#define MPCI_Send_packet( _destination, _the_packet ) \ - Shm_Send_packet( _destination, _the_packet ) - -/* Unnecessary... mapped in shm.h -#define MPCI_Fatal( _the_error ) \ - Shm_Fatal( _the_error ) -*/ - -#define MPCI_Enable_statistics() - -#define MPCI_Print_statistics() \ - Shm_Print_statistics() - -/* no need to rename the MPCI_Table either */ - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/libchip/shmdr/mpisr.c b/c/src/libchip/shmdr/mpisr.c deleted file mode 100644 index 93ced3d351..0000000000 --- a/c/src/libchip/shmdr/mpisr.c +++ /dev/null @@ -1,23 +0,0 @@ -/* _Shm_isr() - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -rtems_isr Shm_isr( - rtems_vector_number vector -) -{ - Shm_Interrupt_count += 1; - rtems_multiprocessing_announce(); -} diff --git a/c/src/libchip/shmdr/poll.c b/c/src/libchip/shmdr/poll.c deleted file mode 100644 index 43f6711ff9..0000000000 --- a/c/src/libchip/shmdr/poll.c +++ /dev/null @@ -1,40 +0,0 @@ -/* void Shm_Poll() - * - * This routine polls to see if a packet has arrived. If one - * has it informs the executive. It is typically called from - * the clock tick interrupt service routine. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" -#include "clockdrv.h" - -void Shm_Poll() -{ - rtems_unsigned32 tmpfront; - - Clock_isr( 0 ); /* invoke standard clock ISR */ - - /* enable_tracing(); */ - /* ticks += 1; */ - Shm_Lock( Shm_Local_receive_queue ); - tmpfront = Shm_Local_receive_queue->front; - Shm_Unlock( Shm_Local_receive_queue ); - if ( Shm_Convert(tmpfront) == Shm_Locked_queue_End_of_list ) return; - rtems_multiprocessing_announce(); - Shm_Interrupt_count++; -} diff --git a/c/src/libchip/shmdr/receive.c b/c/src/libchip/shmdr/receive.c deleted file mode 100644 index e094a2df6b..0000000000 --- a/c/src/libchip/shmdr/receive.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Shm_Receive_packet - * - * This routine is the shared memory locked queue MPCI driver routine - * used to obtain a packet containing a message from this node's - * receive queue. - * - * Input parameters: - * packet - address of a pointer to a packet - * - * Output parameters: - * *(rpb->packet) - pointer to packet - * NULL if no packet currently available - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -rtems_mpci_entry Shm_Receive_packet( - rtems_packet_prefix **packet -) -{ - Shm_Envelope_control *ecb; - - ecb = Shm_Locked_queue_Get( Shm_Local_receive_queue ); - if ( ecb ) { - *(packet) = Shm_Envelope_control_to_packet_prefix_pointer( ecb ); - if ( ecb->Preamble.endian != Shm_Configuration->format ) - Shm_Convert_packet( *packet ); - Shm_Receive_message_count++; - } else { - *(packet) = NULL; - Shm_Null_message_count++; - } -} diff --git a/c/src/libchip/shmdr/retpkt.c b/c/src/libchip/shmdr/retpkt.c deleted file mode 100644 index 973b84ab0d..0000000000 --- a/c/src/libchip/shmdr/retpkt.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Shm_Return_packet - * - * This routine is the shared memory locked queue MPCI driver - * routine used to return a message packet to a free envelope - * pool accessible by this node. - * - * Input parameters: - * packet - address of pointer to packet - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -rtems_mpci_entry Shm_Return_packet( - rtems_packet_prefix *packet -) -{ - Shm_Free_envelope( Shm_Packet_prefix_to_envelope_control_pointer(packet) ); -} - diff --git a/c/src/libchip/shmdr/send.c b/c/src/libchip/shmdr/send.c deleted file mode 100644 index 58a5bb93b9..0000000000 --- a/c/src/libchip/shmdr/send.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Shm_Send_packet - * - * This routine is the shared memory driver locked queue write - * MPCI driver routine. This routine sends the specified packet - * to the destination specified by "node". A "node" value of - * zero designates that this packet is to be broadcasted. - * - * Input parameters: - * node - destination of this packet (0 = broadcast) - * packet - address of packet - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" - -struct pkt_cpy { - rtems_unsigned32 packet[MAX_PACKET_SIZE/4]; -}; - -rtems_mpci_entry Shm_Send_packet( - rtems_unsigned32 node, - rtems_packet_prefix *packet -) -{ - Shm_Envelope_control *ecb, *tmp_ecb; - rtems_unsigned32 nnum; - - ecb = Shm_Packet_prefix_to_envelope_control_pointer( packet ); - if ( node ) { - Shm_Build_preamble( ecb, node ); - Shm_Build_postamble( ecb ); - Shm_Append_to_receive_queue( node, ecb ); - (*Shm_Configuration->cause_intr)( node ); - } - else { - for( nnum = SHM_FIRST_NODE ; nnum <= Shm_Maximum_nodes ; nnum++ ) - if ( Shm_Local_node != nnum ) { - tmp_ecb = Shm_Allocate_envelope(); - if ( !tmp_ecb ) - rtems_fatal_error_occurred( SHM_NO_FREE_PKTS ); - Shm_Build_preamble( tmp_ecb, nnum ); - *((struct pkt_cpy *)tmp_ecb->packet) = *((struct pkt_cpy *)packet); - Shm_Build_postamble( tmp_ecb ); - Shm_Append_to_receive_queue( nnum, tmp_ecb ); - (*Shm_Configuration->cause_intr)( nnum ); - } - Shm_Free_envelope( ecb ); - } -} diff --git a/c/src/libchip/shmdr/setckvec.c b/c/src/libchip/shmdr/setckvec.c deleted file mode 100644 index 0b5e306dab..0000000000 --- a/c/src/libchip/shmdr/setckvec.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Shm_setclockvec - * - * This routines installs the shared memory clock interrupt handler - * used when the driver is used in polling mode. - * - * INPUT PARAMETERS: NONE - * - * OUTPUT PARAMETERS: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "shm.h" -#include "clockdrv.h" - -rtems_isr Shm_setclockvec() -{ - ReInstall_clock( Shm_Poll ); -} diff --git a/c/src/libchip/shmdr/shm_driver.h b/c/src/libchip/shmdr/shm_driver.h deleted file mode 100644 index bee930138c..0000000000 --- a/c/src/libchip/shmdr/shm_driver.h +++ /dev/null @@ -1,542 +0,0 @@ -/* shm.h - * - * This include file contains all the constants, structures, - * and global variables for this RTEMS based shared memory - * communications interface driver. - * - * Processor board dependencies are in other files. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SHM_h -#define __SHM_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* The information contained in the Node Status, Locked Queue, and - * Envelope Control Blocks must be maintained in a NEUTRAL format. - * Currently the neutral format may be selected as big or little - * endian by simply defining either NEUTRAL_BIG or NEUTRAL_LITTLE. - * - * It is CRITICAL to note that the neutral format can ONLY be - * changed by modifying this file and recompiling the ENTIRE - * SHM driver including ALL target specific support files. - * - * The following table details the memory contents for the endian - * field of the Node Status Control Block in the various - * data format configurations (data is in hexadecimal): - * - * NEUTRAL NATIVE BYTE 0 BYTE 1 BYTE 2 BYTE 3 - * ======= ====== ====== ====== ====== ====== - * BIG BIG 00 00 00 01 - * BIG LITTLE 10 00 00 00 - * LITTLE BIG 01 00 00 00 - * LITTLE LITTLE 00 00 00 10 - * - * - * NOTE: XXX - * PORTABILITY OF LOCKING INSTRUCTIONS - * =================================== - * The locking mechanism described below is not - * general enough. Where the hardware supports - * it we should use "atomic swap" instructions - * so the values in the lock can be tailored to - * support a CPU with only weak atomic memory - * instructions. There are combinations of - * CPUs with inflexible atomic memory instructions - * which appear to be incompatible. For example, - * the SPARClite instruction uses a byte which is - * 0xFF when locked. The PA-RISC uses 1 to indicate - * locked and 0 when unlocked. These CPUs appear to - * have incompatible lock instructions. But - * they could be used in a heterogenous system - * with does not mix SPARCs and PA-RISCs. For - * example, the i386 and SPARC or i386 and SPARC - * could work together. The bottom line is that - * not every CPU will work together using this - * locking scheme. There are supposed to be - * algorithms to do this without hardware assist - * and one of these should be incorporated into - * the shared memory driver. - * - * The most flexible scheme using the instructions - * of the various CPUs for efficiency would be to use - * "atomic swaps" wherever possible. Make the lock - * and unlock configurable much like BIG vs LITTLE - * endian use of shared memory is now. The values - * of the lock could then reflect the "worst" - * CPU in a system. This still results in mixes - * of CPUs which are incompatible. - * - * The current locking mechanism is based upon the MC68020 - * "tas" instruction which is atomic. All ports to other CPUs - * comply with the restrictive placement of lock bit by this - * instruction. The lock bit is the most significant bit in a - * big-endian rtems_unsigned32. On other processors, the lock is - * typically implemented via an atomic swap or atomic modify - * bits type instruction. - */ - -#define NEUTRAL_BIG - -#ifdef NEUTRAL_BIG -#define SHM_BIG 0x00000001 -#define SHM_LITTLE 0x10000000 -#endif - -#ifdef NEUTRAL_LITTLE -#define SHM_BIG 0x01000000 -#define SHM_LITTLE 0x00000010 -#endif - -/* - * The following are the values used to fill in the lock field. Some CPUs - * are able to write only a single value into field. By making the - * lock and unlock values configurable, CPUs which support "atomic swap" - * instructions can generally be made to work in any heterogeneous - * configuration. However, it is possible for two CPUs to be incompatible - * in regards to the lock field values. This occurs when two CPUs - * which write only a single value to the field are used in a system - * but the two CPUs write different incompatible values. - * - * NOTE: The following is a first attempt at defining values which - * have a chance at working together. The m68k should use - * chk2 instead of tas to be less restrictive. Target endian - * problems (like the Force CPU386 which has (broken) big endian - * view of the VMEbus address space) are not addressed yet. - */ - -#if defined(i960) -#define SHM_LOCK_VALUE 0x00000080 -#define SHM_UNLOCK_VALUE 0 -#elif defined(m68k) -#define SHM_LOCK_VALUE 0x80000000 -#define SHM_UNLOCK_VALUE 0 -#define SHM_LOCK_VALUE 0x80000000 -#define SHM_UNLOCK_VALUE 0 -#elif defined(i386) -#define SHM_LOCK_VALUE 0x80000000 -#define SHM_UNLOCK_VALUE 0 -#elif defined(hppa1_1) -#define SHM_LOCK_VALUE 0 -#define SHM_UNLOCK_VALUE 1 -#elif defined(unix) -#define SHM_LOCK_VALUE 0 -#define SHM_UNLOCK_VALUE 1 -#elif defined(no_cpu) /* for this values are irrelevant */ -#define SHM_LOCK_VALUE 1 -#define SHM_UNLOCK_VALUE 0 -#endif - -#define Shm_Convert( value ) \ - ((Shm_Configuration->convert) ? \ - (*Shm_Configuration->convert)(value) : (value)) - -/* constants */ - -#define SHM_MASTER 1 /* master initialization node */ -#define SHM_FIRST_NODE 1 - -/* size constants */ - -#define KILOBYTE (1024) -#define MEGABYTE (1024*1024) - -/* inter-node interrupt values */ - -#define NO_INTERRUPT 0 /* used for polled nodes */ -#define BYTE 1 -#define WORD 2 -#define LONG 4 - -/* operational mode constants -- used in SHM Configuration Table */ -#define POLLED_MODE 0 -#define INTR_MODE 1 - -/* error codes */ - -#define NO_ERROR 0 -#define SHM_NO_FREE_PKTS 0xf0000 - -/* null pointers of different types */ - -#define NULL_ENV_CB ((Shm_Envelope_control *) 0) -#define NULL_SHM_INFO ((struct shm_info *) 0) -#define NULL_CONVERT 0 -#if 0 -#define NULL_CONVERT (((rtems_unsigned32 *)())0) /* we want this */ -#endif - -/* The following is adjusted so envelopes are 0x80 bytes long. */ -/* It should be >= MIN_PKT_SIZE in rtems.h */ - -#define MAX_PACKET_SIZE (80) - -/* constants pertinent to Locked Queue routines */ - -#define LQ_UNLOCKED SHM_UNLOCK_VALUE -#define LQ_LOCKED SHM_LOCK_VALUE - -/* constants related to the Free Envelope Pool */ - -#define FREE_ENV_POOL 0 -#define FREE_ENV_CB (&Shm_Locked_queues[ FREE_ENV_POOL ]) - -/* The following are important when dealing with - * the shared memory communications interface area. - * - * NOTE: The starting address and length of the shared memory - * is defined in a system dependent file. - */ - -#if 0 -#define START_NS_CBS ( (rtems_unsigned8 *) START_SHARED_MEM ) -#define START_LQ_CBS ( ((rtems_unsigned8 *) START_NS_CBS) + \ - ( (sizeof (Shm_Node_status_control)) * (Shm_Maximum_nodes + 1) ) ) -#define START_ENVELOPES ( ((rtems_unsigned8 *) START_LQ_CBS) + \ - ( (sizeof (Shm_Locked_queue_Control)) * (Shm_Maximum_nodes + 1) ) ) -#define END_SHMCI_AREA ( (rtems_unsigned8 *) START_ENVELOPES + \ - ( (sizeof (Shm_Envelope_control)) * Shm_Maximum_envelopes ) ) -#define END_SHARED_MEM ((rtems_unsigned32)START_SHARED_MEM+SHARED_MEM_LEN) -#endif - -#define START_NS_CBS ((void *)Shm_Configuration->base) -#define START_LQ_CBS ((START_NS_CBS) + \ - ( (sizeof (Shm_Node_status_control)) * (Shm_Maximum_nodes + 1) ) ) -#define START_ENVELOPES ( ((void *) START_LQ_CBS) + \ - ( (sizeof (Shm_Locked_queue_Control)) * (Shm_Maximum_nodes + 1) ) ) -#define END_SHMCI_AREA ( (void *) START_ENVELOPES + \ - ( (sizeof (Shm_Envelope_control)) * Shm_Maximum_envelopes ) ) -#define END_SHARED_MEM (START_NS_CBS+Shm_Configuration->length) - -/* macros */ - -#define Shm_Is_master_node() \ - ( SHM_MASTER == Shm_Local_node ) - -#define Shm_Free_envelope( ecb ) \ - Shm_Locked_queue_Add( FREE_ENV_CB, (ecb) ) -#define Shm_Allocate_envelope() \ - Shm_Locked_queue_Get(FREE_ENV_CB) - -#define Shm_Initialize_receive_queue(node) \ - Shm_Locked_queue_Initialize( &Shm_Locked_queues[node], node ) - -#define Shm_Append_to_receive_queue(node, ecb) \ - Shm_Locked_queue_Add( &Shm_Locked_queues[node], (ecb) ) - -#define Shm_Envelope_control_to_packet_prefix_pointer(ecb) \ - ((void *)(ecb)->packet) - -#define Shm_Packet_prefix_to_envelope_control_pointer( pkt ) \ - ((Shm_Envelope_control *)((rtems_unsigned8 *)(pkt) - \ - (sizeof(Shm_Envelope_preamble) + 4*sizeof(vol_u32)))) - -#define Shm_Build_preamble(ecb, node) \ - (ecb)->Preamble.endian = Shm_Configuration->format - -#define Shm_Build_postamble( ecb ) - -/* structures */ - -typedef volatile rtems_unsigned8 vol_u8; -typedef volatile rtems_unsigned32 vol_u32; - -/* shm control information */ - -struct shm_info { - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; - vol_u32 not_currently_used_3; -}; - -typedef struct { - /*byte start_of_text;*/ - vol_u32 endian; - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; -} Shm_Envelope_preamble; - -typedef struct { - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; - vol_u32 not_currently_used_3; - /*byte end_of_text;*/ -} Shm_Envelope_postable; - -/* WARNING! If you change this structure, don't forget to change - * Shm_Envelope_control_to_packet_prefix_pointer() and - * Shm_Packet_prefix_to_envelope_control_pointer() above. - */ - -/* This comment block describes the contents of each field - * of the Envelope Control Block: - * - * next - The index of the next envelope on this queue. - * queue - The index of the queue this envelope is on. - * index - The index of this envelope. - * Preamble - Generic packet preamble. One day this structure - * could be enhanced to contain routing information. - * packet - RTEMS MPCI packet. Untouched by SHM Driver - * other than copying and format conversion as - * documented in the RTEMS User's Guide. - * Postamble - Generic packet postamble. One day this structure - * could be enhanced to contain checksum information. - */ - -typedef struct { - vol_u32 next; /* next envelope on queue */ - vol_u32 queue; /* queue on which this resides */ - vol_u32 index; /* index into array of envelopes*/ - vol_u32 pad0; /* insure the next one is aligned */ - Shm_Envelope_preamble Preamble; /* header information */ - vol_u8 packet[MAX_PACKET_SIZE]; /* RTEMS INFO */ - Shm_Envelope_postable Postamble;/* trailer information */ -} Shm_Envelope_control; - -/* This comment block describes the contents of each field - * of the Locked Queue Control Block: - * - * lock - Lock used to insure mutually exclusive access. - * front - Index of first envelope on queue. This field - * is used to remove head of queue (receive). - * rear - Index of last envelope on queue. This field - * is used to add evelope to queue (send). - * owner - The node number of the recipient (owning) node. - * RTEMS does not use the node number zero (0). - * The zero node is used by the SHM Driver for the - * Free Envelope Queue shared by all nodes. - */ - -typedef struct { - vol_u32 lock; /* lock field for this queue */ - vol_u32 front; /* first envelope on queue */ - vol_u32 rear; /* last envelope on queue */ - vol_u32 owner; /* receiving (i.e. owning) node */ -} Shm_Locked_queue_Control; - -/* This comment block describes the contents of each field - * of the Node Status Control Block: - * - * status - Node status. Current values are Pending Initialization, - * Initialization Complete, and Active Node. Other values - * could be added to enhance fault tolerance. - * error - Zero if the node has not failed. Otherwise, - * this field contains a status indicating the - * failure reason. - * int_address, int_value, and int_length - * - These field are the Interrupt Information table - * for this node in neutral format. This is how - * each node knows how to generate interrupts. - */ - -typedef struct { - vol_u32 status; /* node status information */ - vol_u32 error; /* fatal error code */ - vol_u32 int_address; /* write here for interrupt */ - vol_u32 int_value; /* this value causes interrupt */ - vol_u32 int_length; /* for this length (0,1,2,4) */ - vol_u32 not_currently_used_0; - vol_u32 not_currently_used_1; - vol_u32 not_currently_used_2; -} Shm_Node_status_control; - -/* This comment block describes the contents of each field - * of the Interrupt Information Table. This table describes - * how another node can generate an interrupt to this node. - * This information is target board dependent. If the - * SHM Driver is in POLLED_MODE, then all fields should - * be initialized to NO_INTERRUPT. - * - * address - The address to which another node should - * write to cause an interrupt. - * value - The value which must be written - * length - The size of the value to write. Valid - * values are BYTE, WORD, and LONG. - * - * NOTE: The Node Status Control Block contains this - * information in neutral format and not in a - * structure to avoid potential alignment problems. - */ - -typedef struct { - vol_u32 *address; /* write here for interrupt */ - vol_u32 value; /* this value causes interrupt */ - vol_u32 length; /* for this length (0,1,2,4) */ -} Shm_Interrupt_information; - -/* SHM Configuration Table - * - * This comment block describes the contents of each field - * of the SHM Configuration Table. - * - * base - The base address of the shared memory. This - * address may be specific to this node. - * length - The length of the shared memory in bytes. - * format - The natural format for rtems_unsigned32's in the - * shared memory. Valid values are currently - * only SHM_LITTLE and SHM_BIG. - * convert - The address of the routine which converts - * between neutral and local format. - * poll_intr - The operational mode of the driver. Some - * target boards may not provide hardware for - * an interprocessor interrupt. If POLLED_MODE - * is selected, the SHM driver will install a - * wrapper around the Clock_isr() to poll for - * incoming packets. Throughput is dependent - * on the time between clock interrupts. - * Valid values are POLLED_MODE and INTR_MODE. - * cause_intr - This is the address of the routine used to - * write to a particular address and cause an - * interrupt on another node. This routine - * may need to be target dependent if something - * other than a normal write from C does not work. - * Intr - This structure describes the operation required - * to cause an interrupt to this node. The actual - * contents of this structure are described above. - */ - -struct shm_config_info { - vol_u32 *base; /* base address of SHM */ - vol_u32 length; /* length (in bytes) of SHM */ - vol_u32 format; /* SHM is big or little endian */ - vol_u32 (*convert)();/* neutral conversion routine */ - vol_u32 poll_intr;/* POLLED or INTR driven mode */ - void (*cause_intr)( rtems_unsigned32 ); - Shm_Interrupt_information Intr; /* cause intr information */ -}; - -typedef struct shm_config_info shm_config_table; - -/* global variables */ - -#ifdef _SHM_INIT -#define SHM_EXTERN -#else -#define SHM_EXTERN extern -#endif - -SHM_EXTERN shm_config_table *Shm_Configuration; -SHM_EXTERN Shm_Interrupt_information Shm_Interrupt_table[16]; -SHM_EXTERN Shm_Node_status_control *Shm_Node_statuses; -SHM_EXTERN Shm_Locked_queue_Control *Shm_Locked_queues; -SHM_EXTERN Shm_Envelope_control *Shm_Envelopes; -SHM_EXTERN rtems_configuration_table *Shm_RTEMS_Configuration; -SHM_EXTERN rtems_multiprocessing_table *Shm_RTEMS_MP_Configuration; -SHM_EXTERN rtems_unsigned32 Shm_Receive_message_count; -SHM_EXTERN rtems_unsigned32 Shm_Null_message_count; -SHM_EXTERN rtems_unsigned32 Shm_Interrupt_count; -SHM_EXTERN rtems_unsigned32 Shm_Local_node; -SHM_EXTERN Shm_Locked_queue_Control *Shm_Local_receive_queue; -SHM_EXTERN Shm_Node_status_control *Shm_Local_node_status; -SHM_EXTERN rtems_unsigned32 Shm_isrstat; - /* reported by shmdr */ - -SHM_EXTERN rtems_unsigned32 Shm_Pending_initialization; -SHM_EXTERN rtems_unsigned32 Shm_Initialization_complete; -SHM_EXTERN rtems_unsigned32 Shm_Active_node; - -SHM_EXTERN rtems_unsigned32 Shm_Maximum_nodes; -SHM_EXTERN rtems_unsigned32 Shm_Maximum_envelopes; - -SHM_EXTERN rtems_unsigned32 Shm_Locked_queue_End_of_list; -SHM_EXTERN rtems_unsigned32 Shm_Locked_queue_Not_on_list; - -/* functions */ - -/* locked queue routines */ -void Shm_Locked_queue_Add( - Shm_Locked_queue_Control *, Shm_Envelope_control * ); -Shm_Envelope_control *Shm_Locked_queue_Get( Shm_Locked_queue_Control * ); -void Shm_Locked_queue_Initialize( - Shm_Locked_queue_Control *, rtems_unsigned32 ); - /* Shm_Initialize_lock is CPU dependent */ - /* Shm_Lock is CPU dependent */ - /* Shm_Unlock is CPU dependent */ - -/* portable routines */ -void Init_env_pool(); -void Shm_Print_statistics( void ); -void MPCI_Fatal( rtems_unsigned32 ); -rtems_task Shm_Cause_interrupt( rtems_unsigned32 ); -void Shm_Poll(); -void Shm_setclockvec(); -void Shm_Convert_packet( rtems_packet_prefix * ); - -/* CPU specific routines are inlined in shmcpu.h */ - -/* target specific routines */ -void *Shm_Convert_address( void * ); -void Shm_Get_configuration( rtems_unsigned32, shm_config_table ** ); -void Shm_isr(); -void Shm_setvec( void ); - -void Shm_Initialize_lock( Shm_Locked_queue_Control * ); -void Shm_Lock( Shm_Locked_queue_Control * ); -void Shm_Unlock( Shm_Locked_queue_Control * ); - -/* MPCI entry points */ -rtems_mpci_entry Shm_Get_packet( - rtems_packet_prefix ** -); - -rtems_mpci_entry Shm_Initialization( - rtems_configuration_table *configuration, - rtems_cpu_table *cpu_configuration, - rtems_multiprocessing_table *mp_configuration -); - -rtems_mpci_entry Shm_Receive_packet( - rtems_packet_prefix ** -); - -rtems_mpci_entry Shm_Return_packet( - rtems_packet_prefix * -); - -rtems_mpci_entry Shm_Send_packet( - rtems_unsigned32, - rtems_packet_prefix * -); - -#ifdef _SHM_INIT - -/* multiprocessor communications interface (MPCI) table */ - -rtems_mpci_table MPCI_table = { - 100000, /* default timeout value in ticks */ - Shm_Initialization, /* initialization procedure */ - Shm_Get_packet, /* get packet procedure */ - Shm_Return_packet, /* return packet procedure */ - Shm_Send_packet, /* packet send procedure */ - Shm_Receive_packet /* packet receive procedure */ -}; - -#else - -extern rtems_mpci_table MPCI_table; - -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/libmisc/README b/c/src/libmisc/README deleted file mode 100644 index 6825898121..0000000000 --- a/c/src/libmisc/README +++ /dev/null @@ -1,16 +0,0 @@ -# -# $Id$ -# - -This directory contains for the "miscellaneous" library. Currently -the only item in this library is a user extension set which checks -for a task "blowing" it's stack. - -The following ideas have been mentioned for items which could go -in this library, but this list is not all inclusive: - - + Workspace Consistency Checker - + Task Execution Time Monitor - -The intent of this library is to provide a home for useful utility routines -which are dependent upon RTEMS. diff --git a/c/src/libmisc/monitor/README b/c/src/libmisc/monitor/README deleted file mode 100644 index cae39d593c..0000000000 --- a/c/src/libmisc/monitor/README +++ /dev/null @@ -1,7 +0,0 @@ -# -# $Id$ -# - -This is a snapshot of a work in process. It is the beginnings of a -debug monitor task and trap handler which is tasking aware. - diff --git a/c/src/libmisc/monitor/mon-monitor.c b/c/src/libmisc/monitor/mon-monitor.c deleted file mode 100644 index aa466143f9..0000000000 --- a/c/src/libmisc/monitor/mon-monitor.c +++ /dev/null @@ -1,307 +0,0 @@ -/* - * @(#)monitor.c 1.6 - 95/04/24 - * - */ - -/* - * mon-task.c - * - * Description: - * RTEMS monitor task - * - * - * - * TODO: - * add pause command (monitor sleeps for 'n' ticks, then wakes up) - * - */ - -#include -/* #include */ - -#include "symbols.h" -#include "monitor.h" - -#include -#include -#include -#include - -#define STREQ(a,b) (strcmp(a,b) == 0) - -/* set by trap handler */ -extern rtems_tcb *debugger_interrupted_task; -extern rtems_context *debugger_interrupted_task_context; -extern rtems_unsigned32 debugger_trap; - -/* our task id needs to be public so any debugger can resume us */ -rtems_unsigned32 rtems_monitor_task_id; - - -rtems_symbol_table_t *rtems_monitor_symbols; - - -#ifndef MONITOR_PROMPT -#define MONITOR_PROMPT "rtems> " -#endif - -#define MONITOR_WAKEUP_EVENT RTEMS_EVENT_0 - -/* - * Function: rtems_monitor_init - * - * Description: - * Create the RTEMS monitor task - * - * Parameters: - * 'monitor_suspend' arg is passed as initial arg to monitor task - * If TRUE, monitor will suspend itself as it starts up. Otherwise - * it will begin its command loop. - * - * Returns: - * - * - * Side Effects: - * - * - * Notes: - * - * - * Deficiencies/ToDo: - * - * - */ - -/* - * make_argv(cp): token-count - * Break up the command line in 'cp' into global argv[] and argc (return - * value). - */ - -int -rtems_monitor_make_argv( - char *cp, - int *argc_p, - char **argv) -{ - int argc = 0; - - while ((cp = strtok(cp, " \t\n\r"))) - { - argv[argc++] = cp; - cp = (char *) NULL; - } - argv[argc] = (char *) NULL; /* end of argv */ - - return *argc_p = argc; -} - -void -rtems_monitor_init(rtems_boolean monitor_suspend) -{ - rtems_status_code status; - - status = rtems_task_create(rtems_build_name('R', 'M', 'O', 'N'), - 1, 0/*stack*/, RTEMS_NO_PREEMPT | RTEMS_INTERRUPT_LEVEL(0), RTEMS_DEFAULT_ATTRIBUTES, &rtems_monitor_task_id); - if (status != RTEMS_SUCCESSFUL) - { - printf("could not create monitor task\n"); - goto done; - } - - rtems_monitor_symbols_loadup(); - - status = rtems_task_start(rtems_monitor_task_id, rtems_monitor_task, monitor_suspend); - if (status != RTEMS_SUCCESSFUL) - { - printf("could not start monitor!\n"); - goto done; - } - -done: -} - -rtems_status_code -rtems_monitor_suspend(rtems_interval timeout) -{ - rtems_event_set event_set; - rtems_status_code status; - - status = rtems_event_receive(MONITOR_WAKEUP_EVENT, RTEMS_DEFAULT_OPTIONS, timeout, &event_set); - return status; -} - -void -rtems_monitor_wakeup(void) -{ - rtems_status_code status; - - status = rtems_event_send(rtems_monitor_task_id, MONITOR_WAKEUP_EVENT); -} - - -/* - * Read and break up a monitor command - * - * We have to loop on the gets call, since it will return NULL under UNIX - * RTEMS when we get a signal (eg: SIGALRM). - */ - -int -rtems_monitor_read_command(char *command, - int *argc, - char **argv) -{ - printf("%s", MONITOR_PROMPT); fflush(stdout); - while (gets(command) == (char *) 0) - ; - return rtems_monitor_make_argv(command, argc, argv); -} - -void -rtems_monitor_task(rtems_task_argument monitor_suspend) -{ - rtems_tcb *debugee = 0; - char command[513]; - rtems_context *rp; - rtems_context_fp *fp; - char *cp; - int argc; - char *argv[64]; - - if ((rtems_boolean) monitor_suspend) - (void) rtems_monitor_suspend(RTEMS_NO_TIMEOUT); - - for (;;) - { - extern rtems_tcb * _Thread_Executing; - debugee = _Thread_Executing; - rp = &debugee->Registers; - fp = (rtems_context_fp *) debugee->fp_context; /* possibly 0 */ - - if (0 == rtems_monitor_read_command(command, &argc, argv)) - continue; - - if (STREQ(argv[0], "quit")) - rtems_monitor_suspend(RTEMS_NO_TIMEOUT); - else if (STREQ(argv[0], "pause")) - rtems_monitor_suspend(1); - -#ifdef CPU_INVOKE_DEBUGGER - else if (STREQ(argv[0], "debug")) - { - CPU_INVOKE_DEBUGGER; - } -#endif - else if (STREQ(argv[0], "symbol")) - { - char *symbol; - char *value; - - if (argc != 3) - { - printf("usage: symbol symname symvalue\n"); - continue; - } - - symbol = argv[1]; - value = argv[2]; - if (symbol && value) - { - rtems_symbol_t *sp; - sp = rtems_symbol_create(rtems_monitor_symbols, - symbol, - (rtems_unsigned32) strtoul(value, 0, 16)); - if (sp) - printf("symbol defined is at %p\n", sp); - else - printf("could not define symbol\n"); - } - else - printf("parsing error\n"); - } - else - { - printf("Unrecognized command: '%s'\n", argv[0]); - } - } -} - -/* - * Function: rtems_monitor_symbols_loadup - * - * Description: - * Create and load the monitor's symbol table. - * We are reading the output format of 'gnm' which looks like this: - * - * 400a7068 ? _Rate_monotonic_Information - * 400a708c ? _Thread_Dispatch_disable_level - * 400a7090 ? _Configuration_Table - * - * - * We ignore the type field. - * - * Parameters: - * - * - * Returns: - * - * - * Side Effects: - * Creates and fills in 'rtems_monitor_symbols' table - * - * Notes: - * - * - * Deficiencies/ToDo: - * Someday this should know BFD - * Maybe we could get objcopy to just copy the symbol areas - * and copy that down. - * - */ - -void -rtems_monitor_symbols_loadup(void) -{ - FILE *fp; - char buffer[128]; - - rtems_monitor_symbols = rtems_symbol_table_create(10); - if (rtems_monitor_symbols == 0) - return; - - fp = fdopen(8, "r"); - if (fp == 0) - return; - - while (fgets(buffer, sizeof(buffer) - 1, fp)) - { - char *symbol; - char *value; - char *ignored_type; - - value = strtok(buffer, " \t\n"); - ignored_type = strtok(0, " \t\n"); - symbol = strtok(0, " \t\n"); - - if (symbol && ignored_type && value) - { - rtems_symbol_t *sp; - sp = rtems_symbol_create(rtems_monitor_symbols, - symbol, - (rtems_unsigned32) strtoul(value, 0, 16)); - if (sp == 0) - { - printf("could not define symbol\n"); - goto done; - } - } - else - { - printf("parsing error\n"); - goto done; - } - } - -done: -} diff --git a/c/src/libmisc/monitor/mon-symbols.c b/c/src/libmisc/monitor/mon-symbols.c deleted file mode 100644 index 58d35befa1..0000000000 --- a/c/src/libmisc/monitor/mon-symbols.c +++ /dev/null @@ -1,327 +0,0 @@ -/* - * @(#)symbols.c 1.3 - 95/04/24 - * - */ - -/* #define qsort _quicksort */ - -/* - * File: symbols.c - * - * Description: - * Symbol table manager for the RTEMS monitor. - * These routines may be used by other system resources also. - * - * - * TODO: - */ - -#include -#include -#include -#include - -#include "symbols.h" - -extern rtems_symbol_table_t *rtems_monitor_symbols; - -#ifdef RTEMS_DEBUG -#define CHK_ADR_PTR(p) \ -do { \ - if (((p) < rtems_monitor_symbols->addresses) || \ - ((p) >= (rtems_monitor_symbols->addresses + rtems_monitor_symbols->next))) \ - { \ - printf("bad address pointer %p\n", (p)); \ - rtems_fatal_error_occurred(RTEMS_INVALID_ADDRESS); \ - } \ -} while (0) - -#define CHK_NAME_PTR(p) \ -do { \ - if (((p) < rtems_monitor_symbols->symbols) || \ - ((p) >= (rtems_monitor_symbols->symbols + rtems_monitor_symbols->next))) \ - { \ - printf("bad symbol pointer %p\n", (p)); \ - rtems_fatal_error_occurred(RTEMS_INVALID_ADDRESS); \ - } \ -} while (0) -#else -#define CHK_ADR_PTR(p) -#define CHK_NAME_PTR(p) -#endif - -rtems_symbol_table_t * -rtems_symbol_table_create() -{ - rtems_symbol_table_t *table; - - table = (rtems_symbol_table_t *) malloc(sizeof(rtems_symbol_table_t)); - memset((void *) table, 0, sizeof(*table)); - - table->growth_factor = 30; /* 30 percent */ - - return table; -} - -void -rtems_symbol_table_destroy(rtems_symbol_table_t *table) -{ - rtems_symbol_string_block_t *p, *pnext; - - if (table) - { - if (table->addresses) - (void) free(table->addresses); - table->addresses = 0; - - if (table->symbols) - (void) free(table->symbols); - table->symbols = 0; - - p = table->string_buffer_head; - while (p) - { - pnext = p->next; - free(p); - p = pnext; - } - table->string_buffer_head = 0; - table->string_buffer_current = 0; - - free(table); - } -} - -rtems_symbol_t * -rtems_symbol_create( - rtems_symbol_table_t *table, - char *name, - rtems_unsigned32 value - ) -{ - int symbol_length; - size_t newsize; - rtems_symbol_t *sp; - - symbol_length = strlen(name) + 1; /* include '\000' in length */ - - /* need to grow the table? */ - if (table->next >= table->size) - { - if (table->size == 0) - newsize = 100; - else - newsize = table->size + (table->size / (100 / table->growth_factor)); - - table->addresses = (rtems_symbol_t *) realloc((void *) table->addresses, newsize * sizeof(rtems_symbol_t)); - if (table->addresses == 0) /* blew it; lost orig */ - goto failed; - - table->symbols = (rtems_symbol_t *) realloc((void *) table->symbols, newsize * sizeof(rtems_symbol_t)); - if (table->symbols == 0) /* blew it; lost orig */ - goto failed; - - table->size = newsize; - } - - sp = &table->addresses[table->next]; - sp->value = value; - - /* Have to add it to string pool */ - /* need to grow pool? */ - - if ((table->string_buffer_head == 0) || - (table->strings_next + symbol_length) >= SYMBOL_STRING_BLOCK_SIZE) - { - rtems_symbol_string_block_t *p; - - p = (rtems_symbol_string_block_t *) malloc(sizeof(rtems_symbol_string_block_t)); - if (p == 0) - goto failed; - p->next = 0; - if (table->string_buffer_head == 0) - table->string_buffer_head = p; - else - table->string_buffer_current->next = p; - table->string_buffer_current = p; - - table->strings_next = 0; - } - - sp->name = table->string_buffer_current->buffer + table->strings_next; - (void) strcpy(sp->name, name); - - table->strings_next += symbol_length; - - table->symbols[table->next] = *sp; - - table->sorted = 0; - table->next++; - - return sp; - -/* XXX Not sure what to do here. We've possibly destroyed the initial - symbol table due to realloc failure */ -failed: - return 0; -} - -/* - * Qsort entry point for compare by address - */ - -int -rtems_symbol_compare(const void *e1, - const void *e2) -{ - rtems_symbol_t *s1, *s2; - s1 = (rtems_symbol_t *) e1; - s2 = (rtems_symbol_t *) e2; - - CHK_ADR_PTR(s1); - CHK_ADR_PTR(s2); - - if (s1->value < s2->value) - return -1; - if (s1->value > s2->value) - return 1; - return 0; -} - -/* - * Qsort entry point for compare by string name (case independent) - */ - -int -rtems_symbol_string_compare(const void *e1, - const void *e2) -{ - rtems_symbol_t *s1, *s2; - s1 = (rtems_symbol_t *) e1; - s2 = (rtems_symbol_t *) e2; - - CHK_NAME_PTR(s1); - CHK_NAME_PTR(s2); - - return strcasecmp(s1->name, s2->name); -} - - -/* - * Sort the symbol table using qsort - */ - -void -rtems_symbol_sort(rtems_symbol_table_t *table) -{ -#ifdef simhppa - printf("Sorting symbols ... "); /* so slow we need a msg */ - fflush(stdout); -#endif - - qsort((void *) table->addresses, (size_t) table->next, - sizeof(rtems_symbol_t), rtems_symbol_compare); - - qsort((void *) table->symbols, (size_t) table->next, - sizeof(rtems_symbol_t), rtems_symbol_string_compare); - -#ifdef simhppa - /* so slow we need a msg */ - printf("done\n"); -#endif - - table->sorted = 1; -} - -/* - * Search the symbol table by address - * This code based on CYGNUS newlib bsearch, but changed - * to allow for finding closest symbol <= key - */ - -rtems_symbol_t * -rtems_symbol_value_lookup( - rtems_symbol_table_t *table, - rtems_unsigned32 value - ) -{ - rtems_symbol_t *sp; - rtems_symbol_t *base; - rtems_symbol_t *best = 0; - rtems_unsigned32 distance; - rtems_unsigned32 best_distance = ~0; - rtems_unsigned32 elements; - - if ((table == 0) || (table->size == 0)) - return 0; - - if (table->sorted == 0) - rtems_symbol_sort(table); - - base = table->addresses; - elements = table->next; - - while (elements) - { - sp = base + (elements / 2); - if (value < sp->value) - elements /= 2; - else if (value > sp->value) - { - distance = value - sp->value; - if (distance < best_distance) - { - best_distance = distance; - best = sp; - } - base = sp + 1; - elements = (elements / 2) - (elements % 2 ? 0 : 1); - } - else - return sp; - } - - if (value == base->value) - return base; - - return best; -} - -/* - * Search the symbol table by string name (case independent) - */ - -rtems_symbol_t * -rtems_symbol_name_lookup( - rtems_symbol_table_t *table, - char *name - ) -{ - rtems_symbol_t *sp = 0; - rtems_symbol_t key; - - if ((table == 0) || (name == 0)) - goto done; - - if (table->sorted == 0) - { - rtems_symbol_sort(table); - } - - /* - * dummy up one for bsearch() - */ - - key.name = name; - key.value = 0; - - sp = (rtems_symbol_t *) bsearch((const void *) &key, - (const void *) table->symbols, - (size_t) table->next, - sizeof(rtems_symbol_t), - rtems_symbol_string_compare); - -done: - return sp; -} - diff --git a/c/src/libmisc/monitor/monitor.h b/c/src/libmisc/monitor/monitor.h deleted file mode 100644 index 195aa73695..0000000000 --- a/c/src/libmisc/monitor/monitor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * @(#)monitor.h 1.2 - 95/04/24 - * - */ - -/* - * File: monitor.h - * - * Description: - * The RTEMS monitor task include file. - * - * - * - * TODO: - * - */ - -#ifndef __MONITOR_H -#define __MONITOR_H - -#ifdef __cplusplus -extern "C" { -#endif - -void rtems_monitor_init(rtems_boolean monitor_suspend); -void rtems_monitor_wakeup(void); -void rtems_monitor_task(rtems_task_argument monitor_suspend); -void rtems_monitor_symbols_loadup(void); - -extern rtems_unsigned32 rtems_monitor_task_id; - -extern rtems_symbol_table_t *rtems_monitor_symbols; - -#ifdef __cplusplus -} -#endif - -#endif /* ! __MONITOR_H */ diff --git a/c/src/libmisc/monitor/symbols.h b/c/src/libmisc/monitor/symbols.h deleted file mode 100644 index 680ac6d2cf..0000000000 --- a/c/src/libmisc/monitor/symbols.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * File: symbols.h - * - * Description: - * Entry points for symbol table routines. - * - * - * - * TODO: - * - */ - -#ifndef _INCLUDE_SYMBOLS_H -#define _INCLUDE_SYMBOLS_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - rtems_unsigned32 value; - char *name; -} rtems_symbol_t; - -#define SYMBOL_STRING_BLOCK_SIZE 4080 -typedef struct rtems_symbol_string_block_s { - struct rtems_symbol_string_block_s *next; - char buffer[SYMBOL_STRING_BLOCK_SIZE]; -} rtems_symbol_string_block_t; - -typedef struct { - - rtems_unsigned32 sorted; /* are symbols sorted right now? */ - - rtems_unsigned32 growth_factor; /* % to grow by when needed */ - - rtems_unsigned32 next; /* next symbol slot to use when adding */ - rtems_unsigned32 size; /* max # of symbols */ - - /* - * Symbol list -- sorted by address (when we do a lookup) - */ - - rtems_symbol_t *addresses; /* symbol array by address */ - - /* - * String list -- sorted by name (when we do a lookup) - * This is a duplicate of the info in table->addresses, but it's - * pretty small, so I don't worry about it. - */ - - rtems_symbol_t *symbols; /* symbol array */ - - /* - * String pool, unsorted, a list of blocks of string data - */ - - rtems_symbol_string_block_t *string_buffer_head; - rtems_symbol_string_block_t *string_buffer_current; - rtems_unsigned32 strings_next; /* next byte to use in this block */ - -} rtems_symbol_table_t; - -void rtems_symbol_table_destroy(rtems_symbol_table_t *table); -rtems_symbol_table_t *rtems_symbol_table_create(); -rtems_symbol_t *rtems_symbol_create(rtems_symbol_table_t *, - char *, rtems_unsigned32); -rtems_symbol_t *rtems_symbol_value_lookup(rtems_symbol_table_t *, - rtems_unsigned32); -rtems_symbol_t *rtems_symbol_name_lookup(rtems_symbol_table_t *, - char *); - -#define rtems_symbol_name(sp) ((sp)->name) -#define rtems_symbol_value(sp) ((sp)->value) - -#ifdef __cplusplus -} -#endif - -#endif /* ! _INCLUDE_SYMBOLS_H */ diff --git a/c/src/libmisc/stackchk/README b/c/src/libmisc/stackchk/README deleted file mode 100644 index 20e76f07bc..0000000000 --- a/c/src/libmisc/stackchk/README +++ /dev/null @@ -1,41 +0,0 @@ -# -# $Id$ -# - -This directory contains a stack bounds checker. It provides two -primary features: - - + check for stack overflow at each context switch - + provides an educated guess at each task's stack usage - -The stack overflow check at context switch works by looking for -a 16 byte pattern at the logical end of the stack to be corrupted. -The "guesser" assumes that the entire stack was prefilled with a known -pattern and assumes that the pattern is still in place if the memory -has not been used as a stack. - -Both of these can be fooled by pushing large holes onto the stack -and not writing to them... or (much more unlikely) writing the -magic patterns into memory. - -This code has not been extensively tested. It is provided as a tool -for RTEMS users to catch the most common mistake in multitasking -systems ... too little stack space. Suggestions and comments are appreciated. - -NOTES: - -1. Stack usage information is questionable on CPUs which push - large holes on stack. - -2. The stack checker has a tendency to generate a fault when - trying to print the helpful diagnostic message. If it comes - out, congratulations. If not, then the variable Stack_check_Blown_task - contains a pointer to the TCB of the offending task. This - is usually enough to go on. - -FUTURE: - -1. Determine how/if gcc will generate stack probe calls and support that. - -2. Get accurate stack usage numbers on i960.. it pushes very large - holes on the stack. diff --git a/c/src/libmisc/stackchk/check.c b/c/src/libmisc/stackchk/check.c deleted file mode 100644 index 8b923f5c02..0000000000 --- a/c/src/libmisc/stackchk/check.c +++ /dev/null @@ -1,439 +0,0 @@ -/* - * Stack Overflow Check User Extension Set - * - * NOTE: This extension set automatically determines at - * initialization time whether the stack for this - * CPU grows up or down and installs the correct - * extension routines for that direction. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - * - */ - -#include -#include -#include -#include -#include -#include -#ifdef XXX_RTEMS_H_FIXED -#include -#else -#include -extern rtems_configuration_table BSP_Configuration; -#endif - -#include -#include -#include -#include - -#include "stackchk.h" -#include "internal.h" - -/* - * This variable contains the name of the task which "blew" the stack. - * It is NULL if the system is all right. - */ - -Thread_Control *Stack_check_Blown_task; - -/* - * The extension table for the stack checker. - */ - -rtems_extensions_table Stack_check_Extension_table = { - Stack_check_Create_extension, /* rtems_task_create */ - 0, /* rtems_task_start */ - 0, /* rtems_task_restart */ - 0, /* rtems_task_delete */ - Stack_check_Switch_extension, /* task_switch */ - Stack_check_Begin_extension, /* task_begin */ - 0, /* task_exitted */ - Stack_check_Fatal_extension, /* fatal */ -}; - -/* - * The "magic pattern" used to mark the end of the stack. - */ - -Stack_check_Control Stack_check_Pattern; - -/* - * Where the pattern goes in the stack area is dependent upon - * whether the stack grow to the high or low area of the memory. - * - */ - -#if ( CPU_STACK_GROWS_UP == TRUE ) - -#define Stack_check_Get_pattern_area( _the_stack ) \ - ((Stack_check_Control *) \ - ((_the_stack)->area + (_the_stack)->size - sizeof( Stack_check_Control ) )) - -#define Stack_check_Calculate_used( _low, _size, _high_water ) \ - ((_high_water) - (_low)) - -#define Stack_check_usable_stack_start(_the_stack) \ - ((_the_stack)->area) - -#else - -#define Stack_check_Get_pattern_area( _the_stack ) \ - ((Stack_check_Control *) ((_the_stack)->area + HEAP_OVERHEAD)) - -#define Stack_check_Calculate_used( _low, _size, _high_water) \ - ( ((_low) + (_size)) - (_high_water) ) - -#define Stack_check_usable_stack_start(_the_stack) \ - ((_the_stack)->area + sizeof(Stack_check_Control)) - -#endif - -#define Stack_check_usable_stack_size(_the_stack) \ - ((_the_stack)->size - sizeof(Stack_check_Control)) - - -/* - * Do we have an interrupt stack? - * XXX it would sure be nice if the interrupt stack were also - * stored in a "stack" structure! - */ - - -Stack_Control stack_check_interrupt_stack; - -/* - * Fill an entire stack area with BYTE_PATTERN. - * This will be used by a Fatal extension to check for - * amount of actual stack used - */ - -void -stack_check_dope_stack(Stack_Control *stack) -{ - memset(stack->area, BYTE_PATTERN, stack->size); -} - - -/*PAGE - * - * Stack_check_Initialize - */ - -unsigned32 stack_check_initialized = 0; - -void Stack_check_Initialize( void ) -{ - rtems_status_code status; - Objects_Id id_ignored; - unsigned32 *p; - - if (stack_check_initialized) - return; - - /* - * Dope the pattern and fill areas - */ - - for ( p = Stack_check_Pattern.pattern; - p < &Stack_check_Pattern.pattern[PATTERN_SIZE_WORDS]; - p += 4 - ) - { - p[0] = 0xFEEDF00D; /* FEED FOOD to BAD DOG */ - p[1] = 0x0BAD0D06; - p[2] = 0xDEADF00D; /* DEAD FOOD GOOD DOG */ - p[3] = 0x600D0D06; - }; - - status = rtems_extension_create( - rtems_build_name( 'S', 'T', 'C', 'K' ), - &Stack_check_Extension_table, - &id_ignored - ); - assert ( status == RTEMS_SUCCESSFUL ); - - Stack_check_Blown_task = 0; - - /* - * If installed by a task, that task will not get setup properly - * since it missed out on the create hook. This will cause a - * failure on first switch out of that task. - * So pretend here that we actually ran create and begin extensions. - */ - - if (_Thread_Executing) - { - Stack_check_Create_extension(_Thread_Executing, _Thread_Executing); - } - - /* - * If appropriate, setup the interrupt stack for high water testing - * also. - */ - if (_CPU_Interrupt_stack_low && _CPU_Interrupt_stack_high) - { - stack_check_interrupt_stack.area = _CPU_Interrupt_stack_low; - stack_check_interrupt_stack.size = _CPU_Interrupt_stack_high - - _CPU_Interrupt_stack_low; - - stack_check_dope_stack(&stack_check_interrupt_stack); - } - - stack_check_initialized = 1; -} - -/*PAGE - * - * Stack_check_Create_extension - */ - -void Stack_check_Create_extension( - Thread_Control *running, - Thread_Control *the_thread -) -{ - if (the_thread && (the_thread != _Thread_Executing)) - stack_check_dope_stack(&the_thread->Start.Initial_stack); -} - -/*PAGE - * - * Stack_check_Begin_extension - */ - -void Stack_check_Begin_extension( - Thread_Control *the_thread -) -{ - Stack_check_Control *the_pattern; - - if ( the_thread->Object.id == 0 ) /* skip system tasks */ - return; - - the_pattern = Stack_check_Get_pattern_area(&the_thread->Start.Initial_stack); - - *the_pattern = Stack_check_Pattern; -} - -/*PAGE - * - * Stack_check_report_blown_task - * Report a blown stack. Needs to be a separate routine - * so that interrupt handlers can use this too. - * - * Caller must have set the Stack_check_Blown_task. - * - * NOTE: The system is in a questionable state... we may not get - * the following message out. - */ - -void Stack_check_report_blown_task(void) -{ - Stack_Control *stack; - Thread_Control *running; - - running = Stack_check_Blown_task; - stack = &running->Start.Initial_stack; - - fprintf( - stderr, - "BLOWN STACK!!! Offending task(%p): id=0x%08x; name=0x%08x", - running, - running->Object.id, - running->name); - fflush(stderr); - - if (BSP_Configuration.User_multiprocessing_table) - fprintf( - stderr, - "; node=%d\n", - BSP_Configuration.User_multiprocessing_table->node - ); - else - fprintf(stderr, "\n"); - fflush(stderr); - - fprintf( - stderr, - " stack covers range 0x%08x - 0x%08x (%d bytes)\n", - (unsigned32) stack->area, - (unsigned32) stack->area + stack->size - 1, - (unsigned32) stack->size); - fflush(stderr); - - fprintf( - stderr, - " Damaged pattern begins at 0x%08x and is %d bytes long\n", - (unsigned32) Stack_check_Get_pattern_area(stack), PATTERN_SIZE_BYTES); - fflush(stderr); - - rtems_fatal_error_occurred( (unsigned32) "STACK BLOWN" ); -} - -/*PAGE - * - * Stack_check_Switch_extension - */ - -void Stack_check_Switch_extension( - Thread_Control *running, - Thread_Control *heir -) -{ - if ( running->Object.id == 0 ) /* skip system tasks */ - return; - - if (0 != memcmp( (void *) Stack_check_Get_pattern_area( &running->Start.Initial_stack)->pattern, - (void *) Stack_check_Pattern.pattern, - PATTERN_SIZE_BYTES)) - { - Stack_check_Blown_task = running; - Stack_check_report_blown_task(); - } -} - -void *Stack_check_find_high_water_mark( - const void *s, - size_t n -) -{ - const unsigned32 *base, *ebase; - unsigned32 length; - - base = s; - length = n/4; - -#if ( CPU_STACK_GROWS_UP == TRUE ) - /* - * start at higher memory and find first word that does not - * match pattern - */ - - base += length - 1; - for (ebase = s; base > ebase; base--) - if (*base != U32_PATTERN) - return (void *) base; -#else - /* - * start at lower memory and find first word that does not - * match pattern - */ - - for (ebase = base + length; base < ebase; base++) - if (*base != U32_PATTERN) - return (void *) base; -#endif - - return (void *)0; -} - -/*PAGE - * - * Stack_check_Dump_threads_usage - * Try to print out how much stack was actually used by the task. - * - */ - -void Stack_check_Dump_threads_usage( - Thread_Control *the_thread -) -{ - unsigned32 size, used; - void *low; - void *high_water_mark; - Stack_Control *stack; - - if ( !the_thread ) - return; - - /* - * XXX HACK to get to interrupt stack - */ - - if (the_thread == (Thread_Control *) -1) - { - if (stack_check_interrupt_stack.area) - { - stack = &stack_check_interrupt_stack; - the_thread = 0; - } - else - return; - } - else - stack = &the_thread->Start.Initial_stack; - - low = Stack_check_usable_stack_start(stack); - size = Stack_check_usable_stack_size(stack); - - high_water_mark = Stack_check_find_high_water_mark(low, size); - - if ( high_water_mark ) - used = Stack_check_Calculate_used( low, size, high_water_mark ); - else - used = 0; - - printf( "0x%08x 0x%08x 0x%08x 0x%08x %8d %8d\n", - the_thread ? the_thread->Object.id : ~0, - the_thread ? the_thread->name : - rtems_build_name('I', 'N', 'T', 'R'), - (unsigned32) stack->area, - (unsigned32) stack->area + (unsigned32) stack->size - 1, - size, - used - ); -} - -/*PAGE - * - * Stack_check_Fatal_extension - */ - -void Stack_check_Fatal_extension( unsigned32 status ) -{ - if (status == 0) - Stack_check_Dump_usage(); -} - - -/*PAGE - * - * Stack_check_Dump_usage - */ - -void Stack_check_Dump_usage( void ) -{ - unsigned32 i; - Thread_Control *the_thread; - unsigned32 hit_running = 0; - - if (stack_check_initialized == 0) - return; - - printf( - " ID NAME LOW HIGH AVAILABLE USED\n" - ); - for ( i=1 ; i<_Thread_Information.maximum ; i++ ) { - the_thread = (Thread_Control *)_Thread_Information.local_table[ i ]; - Stack_check_Dump_threads_usage( the_thread ); - if ( the_thread == _Thread_Executing ) - hit_running = 1; - } - - if ( !hit_running ) - Stack_check_Dump_threads_usage( _Thread_Executing ); - - /* dump interrupt stack info if any */ - Stack_check_Dump_threads_usage((Thread_Control *) -1); -} - diff --git a/c/src/libmisc/stackchk/internal.h b/c/src/libmisc/stackchk/internal.h deleted file mode 100644 index 19c9f5e267..0000000000 --- a/c/src/libmisc/stackchk/internal.h +++ /dev/null @@ -1,94 +0,0 @@ -/* internal.h - * - * This include file contains internal information - * for the RTEMS stack checker. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INTERNAL_STACK_CHECK_h -#define __INTERNAL_STACK_CHECK_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This structure is used to fill in and compare the "end of stack" - * marker pattern. - * pattern area must be a multiple of 4 words. - */ - -#ifdef CPU_STACK_CHECK_SIZE -#define PATTERN_SIZE_WORDS (((CPU_STACK_CHECK_SIZE / 4) + 3) & ~0x3) -#else -#define PATTERN_SIZE_WORDS 4 -#endif - -#define PATTERN_SIZE_BYTES (PATTERN_SIZE_WORDS * 4) - -typedef struct { - unsigned32 pattern[ PATTERN_SIZE_WORDS ]; -} Stack_check_Control; - -/* - * The pattern used to fill the entire stack. - */ - -#define BYTE_PATTERN 0xA5 -#define U32_PATTERN 0xA5A5A5A5 - -/* - * Stack_check_Create_extension - */ - -void Stack_check_Create_extension( - Thread_Control *running, - Thread_Control *the_thread -); - -/* - * Stack_check_Begin_extension - */ - -void Stack_check_Begin_extension( - Thread_Control *the_thread -); - -/* - * Stack_check_Switch_extension - */ - -void Stack_check_Switch_extension( - Thread_Control *running, - Thread_Control *heir -); - -/* - * Stack_check_Fatal_extension - */ - -void Stack_check_Fatal_extension( - unsigned32 -); - -/* - * Stack_check_Dump_usage - */ - -void Stack_check_Dump_usage( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/libmisc/stackchk/stackchk.h b/c/src/libmisc/stackchk/stackchk.h deleted file mode 100644 index f3281c63fe..0000000000 --- a/c/src/libmisc/stackchk/stackchk.h +++ /dev/null @@ -1,41 +0,0 @@ -/* stackchk.h - * - * This include file contains information necessary to utilize - * and install the stack checker mechanism. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STACK_CHECK_h -#define __STACK_CHECK_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Stack_check_Initialize - */ - -void Stack_check_Initialize( void ); - -/* - * Stack_check_Dump_usage - */ - -void Stack_check_Dump_usage( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/optman/rtems/no-dpmem.c b/c/src/optman/rtems/no-dpmem.c deleted file mode 100644 index 4d4cc4cdbc..0000000000 --- a/c/src/optman/rtems/no-dpmem.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Dual Port Memory Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -void _Dual_ported_memory_Manager_initialization( - unsigned32 maximum_ports -) -{ -} - -rtems_status_code rtems_port_create( - Objects_Name name, - void *internal_start, - void *external_start, - unsigned32 length, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_port_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_port_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_port_internal_to_external( - Objects_Id id, - void *internal, - void **external -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_port_external_to_internal( - Objects_Id id, - void *external, - void **internal -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/optman/rtems/no-event.c b/c/src/optman/rtems/no-event.c deleted file mode 100644 index 1840ebdb55..0000000000 --- a/c/src/optman/rtems/no-event.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Event Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -rtems_status_code rtems_event_send( - Objects_Id id, - rtems_event_set event_in -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_event_receive( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks, - rtems_event_set *event_out -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -void _Event_Seize( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks -) -{ -} - -void _Event_Surrender( - Thread_Control *the_thread -) -{ -} - -void _Event_Timeout( - Objects_Id id, - void *ignored -) -{ -} diff --git a/c/src/optman/rtems/no-mp.c b/c/src/optman/rtems/no-mp.c deleted file mode 100644 index 9446cabb29..0000000000 --- a/c/src/optman/rtems/no-mp.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Multiprocessing Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -void _Multiprocessing_Manager_initialization ( void ) -{ -} - -void rtems_multiprocessing_announce ( void ) -{ -} - -Thread _Multiprocessing_Receive_server ( - Thread_Argument ignored -) -{ -} - -void _MPCI_Handler_initialization ( void ) -{ -} - -void _MPCI_Initialization ( void ) -{ -} - -rtems_packet_prefix *_MPCI_Get_packet ( void ) -{ - return NULL; -} - -void _MPCI_Return_packet ( - rtems_packet_prefix *the_packet -) -{ -} - -void _MPCI_Send_process_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -) -{ -} - -rtems_status_code _MPCI_Send_request_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet, - States_Control extra_state -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -void _MPCI_Send_response_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -) -{ -} - -rtems_packet_prefix *_MPCI_Receive_packet ( void ) -{ - return NULL; -} - -Thread_Control *_MPCI_Process_response ( - rtems_packet_prefix *the_packet -) -{ - return NULL; -} diff --git a/c/src/optman/rtems/no-msg.c b/c/src/optman/rtems/no-msg.c deleted file mode 100644 index f2ab5492c0..0000000000 --- a/c/src/optman/rtems/no-msg.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Message Queue Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -void _Message_queue_Manager_initialization( - unsigned32 maximum_message_queues, - unsigned32 maximum_messages -) -{ -} - -rtems_status_code rtems_message_queue_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_send( - Objects_Id id, - void *buffer -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_urgent( - Objects_Id id, - void *buffer -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_broadcast( - Objects_Id id, - void *buffer, - unsigned32 *count -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_receive( - Objects_Id id, - void *buffer, - unsigned32 option_set, - rtems_interval timeout -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_message_queue_flush( - Objects_Id id, - unsigned32 *count -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -unsigned32 _Message_queue_Flush_support( - Message_queue_Control *the_message_queue -) -{ - return 0; -} - -boolean _Message_queue_Seize( - Message_queue_Control *the_message_queue, - rtems_option option_set, - Message_queue_Buffer *buffer -) -{ - _Thread_Executing->Wait.return_code = RTEMS_UNSATISFIED; - return TRUE; -} - -rtems_status_code _Message_queue_Submit( - Objects_Id id, - Message_queue_Buffer *buffer, - Message_queue_Submit_types submit_type -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/optman/rtems/no-part.c b/c/src/optman/rtems/no-part.c deleted file mode 100644 index d51b62cfb8..0000000000 --- a/c/src/optman/rtems/no-part.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Partition Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -void _Partition_Manager_initialization( - unsigned32 maximum_partitions -) -{ -} - -rtems_status_code rtems_partition_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 buffer_size, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_partition_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_partition_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_partition_get_buffer( - Objects_Id id, - void **buffer -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_partition_return_buffer( - Objects_Id id, - void *buffer -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/optman/rtems/no-region.c b/c/src/optman/rtems/no-region.c deleted file mode 100644 index 4ebdda6aa1..0000000000 --- a/c/src/optman/rtems/no-region.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Region Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -void _Region_Manager_initialization( - unsigned32 maximum_regions -) -{ -} - -rtems_status_code rtems_region_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 page_size, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_region_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_region_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_region_get_segment( - Objects_Id id, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout, - void **segment -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_region_get_segment_size( - Objects_Id id, - void *segment, - unsigned32 *size -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_region_return_segment( - Objects_Id id, - void *segment -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/optman/rtems/no-rtmon.c b/c/src/optman/rtems/no-rtmon.c deleted file mode 100644 index 1799cc7533..0000000000 --- a/c/src/optman/rtems/no-rtmon.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Rate Monotonic Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -void _Rate_monotonic_Manager_initialization( - unsigned32 maximum_periods -) -{ -} - -rtems_status_code rtems_rate_monotonic_create( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_rate_monotonic_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_rate_monotonic_cancel( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_rate_monotonic_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_rate_monotonic_period( - Objects_Id id, - rtems_interval length -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -void _Rate_monotonic_Timeout( - Objects_Id id, - void *ignored -) -{ -} - -boolean _Rate_monotonic_Set_state( -Rate_monotonic_Control *the_period -) -{ - return( FALSE ); -} diff --git a/c/src/optman/rtems/no-sem.c b/c/src/optman/rtems/no-sem.c deleted file mode 100644 index e7d27a6311..0000000000 --- a/c/src/optman/rtems/no-sem.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Semaphore Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -void _Semaphore_Manager_initialization( - unsigned32 maximum_semaphores -) -{ -} - -rtems_status_code rtems_semaphore_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_semaphore_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_semaphore_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_semaphore_obtain( - Objects_Id id, - unsigned32 option_set, - rtems_interval timeout -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_semaphore_release( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -boolean _Semaphore_Seize( - Semaphore_Control *the_semaphore, - rtems_option option_set -) -{ - _Thread_Executing->Wait.return_code = RTEMS_UNSATISFIED; - return( TRUE ); -} diff --git a/c/src/optman/rtems/no-signal.c b/c/src/optman/rtems/no-signal.c deleted file mode 100644 index 50f941887c..0000000000 --- a/c/src/optman/rtems/no-signal.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Signal Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -rtems_status_code rtems_signal_catch( - rtems_asr_entry handler, - rtems_mode mode_set -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_signal_send( - Objects_Id id, - rtems_signal_set signal_set -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/optman/rtems/no-timer.c b/c/src/optman/rtems/no-timer.c deleted file mode 100644 index 9fc29e9b6d..0000000000 --- a/c/src/optman/rtems/no-timer.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Timer Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -void _Timer_Manager_initialization( - unsigned32 maximum_timers -) -{ -} - -rtems_status_code rtems_timer_create( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_cancel( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_fire_after( - Objects_Id id, - rtems_interval ticks, - Timer_Service routine, - void *user_data -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_fire_when( - Objects_Id id, - rtems_time_of_day *wall_time, - Timer_Service routine, - void *user_data -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_timer_reset( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/optman/sapi/no-ext.c b/c/src/optman/sapi/no-ext.c deleted file mode 100644 index 4d707c3a49..0000000000 --- a/c/src/optman/sapi/no-ext.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Extension Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -void _Extension_Manager_initialization( - unsigned32 maximum_extensions -) -{ -} - -rtems_status_code rtems_extension_create( - Objects_Name name, - rtems_extensions_table *extension_table, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_extension_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_extension_delete( - Objects_Id id -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/optman/sapi/no-io.c b/c/src/optman/sapi/no-io.c deleted file mode 100644 index 177ec4b091..0000000000 --- a/c/src/optman/sapi/no-io.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Input/Output Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -void _IO_Initialize_all_drivers( void ) -{ -} - -rtems_status_code rtems_io_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_io_open( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_io_close( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_io_read( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_io_write( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code rtems_io_control( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} - -rtems_status_code _IO_Handler_routine( - IO_operations operation, - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return( RTEMS_NOT_CONFIGURED ); -} diff --git a/c/src/tests/README b/c/src/tests/README deleted file mode 100644 index 0b0e339b97..0000000000 --- a/c/src/tests/README +++ /dev/null @@ -1,39 +0,0 @@ -# -# $Id$ -# - -This is the directory under which the RTEMS -test programs provided with the release are located. The -following is a description of the contents of each file and -subdirectory directly in this directory: - -NOTE: Other than the 'samples' directory these tests are intended - only to exercise RTEMS features and are *not* good examples - of programming for RTEMS. - - samples - - This directory contains a set of simple sample applications - which can be used either to test a board support package - or as the starting point for a custom application. - - mptest - - This directory contains the RTEMS Multiprocessor Test Suite. - The tests in this directory provide near complete (98%+) test - coverage of the multiprocessor specific code in RTEMS. - - sptest - - This directory contains the RTEMS Single Processor Test Suite. - The tests in this directory provide near complete (98%+) test - coverage of the non-multiprocessor code in RTEMS. - - tmtest - - This directory contains the RTEMS Timing Test Suite. - The tests in this directory are used to measure the execution - time of RTEMS directive and some critical internal functions. - The results of these test are reported in the Fact Sheets - and Supplental Manuals. - diff --git a/c/src/tests/libtests/README b/c/src/tests/libtests/README deleted file mode 100644 index bc4b217832..0000000000 --- a/c/src/tests/libtests/README +++ /dev/null @@ -1,10 +0,0 @@ -# -# $Id$ -# - -This directory contains tests for some of the items in -the lib directories. The intent is to be able to -verify the basic functionality of a library. For example, -it is important to know that the stack checker successfully -detects tasks which both stay within and exceed their -stack limits. diff --git a/c/src/tests/libtests/stackchk/blow.c b/c/src/tests/libtests/stackchk/blow.c deleted file mode 100644 index 9ad93d849c..0000000000 --- a/c/src/tests/libtests/stackchk/blow.c +++ /dev/null @@ -1,47 +0,0 @@ -/* task1.c - * - * This set of three tasks do some simple task switching for about - * 15 seconds and then call a routine to "blow the stack". - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -void b() {} - -void blow_stack( void ) -{ - volatile unsigned32 *low, *high; - -b(); - /* - * Destroy the first and last 16 bytes of our stack... Hope it - * does not cause problems :) - */ - - low = _Thread_Executing->Start.Initial_stack.area + HEAP_OVERHEAD; - high = _Thread_Executing->Start.Initial_stack.area + - _Thread_Executing->Start.Initial_stack.size - 16; - - low[0] = 0x11111111; - low[1] = 0x22222222; - low[2] = 0x33333333; - low[3] = 0x44444444; - - high[0] = 0x55555555; - high[1] = 0x66666666; - high[2] = 0x77777777; - high[3] = 0x88888888; - -} diff --git a/c/src/tests/libtests/stackchk/init.c b/c/src/tests/libtests/stackchk/init.c deleted file mode 100644 index dc0d94931e..0000000000 --- a/c/src/tests/libtests/stackchk/init.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "app.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_time_of_day time; - rtems_status_code status; - - puts( "\n\n*** TEST STACK CHECKER ***" ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - TASK_STACK_SIZE, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - TASK_STACK_SIZE, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 1, - TASK_STACK_SIZE, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/libtests/stackchk/stackchk.scn b/c/src/tests/libtests/stackchk/stackchk.scn deleted file mode 100644 index 84a5c5e342..0000000000 --- a/c/src/tests/libtests/stackchk/stackchk.scn +++ /dev/null @@ -1,9 +0,0 @@ -*** TEST STACK CHECKER *** -TA1 - rtems_clock_get - 09:00:00 12/31/1988 -TA2 - rtems_clock_get - 09:00:00 12/31/1988 -TA3 - rtems_clock_get - 09:00:00 12/31/1988 -TA1 - rtems_clock_get - 09:00:05 12/31/1988 -TA1 - rtems_clock_get - 09:00:10 12/31/1988 -TA2 - rtems_clock_get - 09:00:10 12/31/1988 -TA1 - rtems_clock_get - 09:00:15 12/31/1988 ----> error indictation diff --git a/c/src/tests/libtests/stackchk/task1.c b/c/src/tests/libtests/stackchk/task1.c deleted file mode 100644 index d683619c7e..0000000000 --- a/c/src/tests/libtests/stackchk/task1.c +++ /dev/null @@ -1,44 +0,0 @@ -/* task1.c - * - * This set of three tasks do some simple task switching for about - * 15 seconds and then call a routine to "blow the stack". - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "app.h" - -rtems_task Task_1_through_3( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - while( FOREVER ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second >= 15 && tid == Task_id[ 1 ] ) { - blow_stack(); - } - - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - status = rtems_task_wake_after( task_number( tid ) * 5 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } -} diff --git a/c/src/tests/mptests/README b/c/src/tests/mptests/README deleted file mode 100644 index 68cb459b55..0000000000 --- a/c/src/tests/mptests/README +++ /dev/null @@ -1,10 +0,0 @@ -# -# $Id$ -# - -This directory contains the RTEMS Multiprocessor Test Suite. -The tests in this directory provide near complete (98%+) test -coverage of the multiprocessor specific code in RTEMS. - -These tests are designed to test RTEMS in a two node configuration. - diff --git a/c/src/tests/mptests/mp01/init.c b/c/src/tests/mptests/mp01/init.c deleted file mode 100644 index 2af49c8a6b..0000000000 --- a/c/src/tests/mptests/mp01/init.c +++ /dev/null @@ -1,99 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_time_of_day time; - char c; - - printf( - "\n\n*** TEST 1 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - if ( Multiprocessing_configuration.node != 1 ) c = 'S'; - else c = 'M'; - - Task_name[ 1 ] = rtems_build_name( c, 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( c, 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( c, 'A', '3', ' ' ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - puts( "Creating task 1 (Global)" ); - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of Task 1" ); - - puts( "Creating task 2 (Global)" ); - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of Task 2" ); - - puts( "Creating task 3 (Local)" ); - status = rtems_task_create( - Task_name[ 3 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of Task 3" ); - - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start of Task 1" ); - - status = rtems_task_start( Task_id[ 2 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start of Task 2" ); - - status = rtems_task_start( Task_id[ 3 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start of Task 3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/mptests/mp01/node1/mp01.doc b/c/src/tests/mptests/mp01/node1/mp01.doc deleted file mode 100644 index 83e06e2357..0000000000 --- a/c/src/tests/mptests/mp01/node1/mp01.doc +++ /dev/null @@ -1,53 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test50 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_set, tm_get, tm_wkafter, t_delete - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of a global task on the local processor. - - i. Verifies that a task can delete itself or a global task on - the local processor. - - j. Verifies Shared Memory Locked Queue driver for initialization, - getting a packet, broadcasting a packet, and returning a packet. - - k. Can be used to verify that global packet type P_SYSVERIFY, - P_OBJCREATE (task), and P_OBJDELETE (task) are sent and - correctly processed by a remote node. diff --git a/c/src/tests/mptests/mp01/node1/mp01.scn b/c/src/tests/mptests/mp01/node1/mp01.scn deleted file mode 100644 index d399f79b2a..0000000000 --- a/c/src/tests/mptests/mp01/node1/mp01.scn +++ /dev/null @@ -1,15 +0,0 @@ -*** TEST 1 -- NODE 1 *** -Creating task 1 (Global) -Creating task 2 (Global) -Creating task 3 (Local) -MA1 - rtems_clock_get - 09:00:00 12/31/1988 -MA2 - rtems_clock_get - 09:00:00 12/31/1988 -MA3 - rtems_clock_get - 09:00:00 12/31/1988 -MA1 - rtems_clock_get - 09:00:05 12/31/1988 -MA1 - deleting self -MA2 - rtems_clock_get - 09:00:10 12/31/1988 -MA2 - waiting to be deleted by MA3 -MA3 - rtems_clock_get - 09:00:15 12/31/1988 -MA3 - getting TID of MA2 -MA3 - deleting MA2 -*** END OF TEST 1 *** diff --git a/c/src/tests/mptests/mp01/node2/mp01.doc b/c/src/tests/mptests/mp01/node2/mp01.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp01/node2/mp01.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp01/node2/mp01.scn b/c/src/tests/mptests/mp01/node2/mp01.scn deleted file mode 100644 index c9831ff9db..0000000000 --- a/c/src/tests/mptests/mp01/node2/mp01.scn +++ /dev/null @@ -1,15 +0,0 @@ -*** TEST 1 -- NODE 2 *** -Creating task 1 (Global) -Creating task 2 (Global) -Creating task 3 (Local) -SA1 - rtems_clock_get - 09:00:00 12/31/1988 -SA2 - rtems_clock_get - 09:00:00 12/31/1988 -SA3 - rtems_clock_get - 09:00:00 12/31/1988 -SA1 - rtems_clock_get - 09:00:05 12/31/1988 -SA1 - deleting self -SA2 - rtems_clock_get - 09:00:10 12/31/1988 -SA2 - waiting to be deleted by SA3 -SA3 - rtems_clock_get - 09:00:15 12/31/1988 -SA3 - getting TID of SA2 -SA3 - deleting SA2 -*** END OF TEST 1 *** diff --git a/c/src/tests/mptests/mp01/system.h b/c/src/tests/mptests/mp01/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/mptests/mp01/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp01/task1.c b/c/src/tests/mptests/mp01/task1.c deleted file mode 100644 index a2c3ec3a1d..0000000000 --- a/c/src/tests/mptests/mp01/task1.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Test_task - * - * This task is used for three test tasks. It obtains its task id and - * based upon that id, performs certain actions. - * - * Task_1 delays 5 seconds and deletes itself. - * Task_2 delays 10 seconds and then loops until - * deleted by the third task. - * Task 3 delays 15 seconds, then deletes task 2 and itself. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id tid; - rtems_time_of_day time; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - status = rtems_task_wake_after( task_number( tid ) * 5 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - if ( task_number(tid) == 1 ) { /* TASK 1 */ - put_name( Task_name[ 1 ], FALSE ); - printf( " - deleting self\n" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); - } - else if ( task_number(tid) == 2 ) { /* TASK 2 */ - put_name( Task_name[ 2 ], FALSE ); - printf( " - waiting to be deleted by " ); - put_name( Task_name[ 3 ], TRUE ); - while ( FOREVER ); - } - else { /* TASK 3 */ - put_name( Task_name[ 3 ], FALSE ); - printf( " - getting TID of " ); - put_name( Task_name[ 2 ], TRUE ); - do { - status = rtems_task_ident( Task_name[ 2 ], RTEMS_SEARCH_ALL_NODES, &tid ); - } while ( status != RTEMS_SUCCESSFUL ); - directive_failed( status, "rtems_task_ident" ); - - put_name( Task_name[ 3 ], FALSE ); - printf( " - deleting " ); - put_name( Task_name[ 2 ], TRUE ); - status = rtems_task_delete( tid ); - directive_failed( status, "rtems_task_delete of Task 2" ); - - puts( "*** END OF TEST 1 ***" ); - exit(0); - } -} diff --git a/c/src/tests/mptests/mp02/init.c b/c/src/tests/mptests/mp02/init.c deleted file mode 100644 index 75d8565785..0000000000 --- a/c/src/tests/mptests/mp02/init.c +++ /dev/null @@ -1,63 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 2 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[Multiprocessing_configuration.node], - 1, - 2048, - RTEMS_NO_PREEMPT, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/mptests/mp02/node1/mp02.doc b/c/src/tests/mptests/mp02/node1/mp02.doc deleted file mode 100644 index e74807f7f1..0000000000 --- a/c/src/tests/mptests/mp02/node1/mp02.doc +++ /dev/null @@ -1,47 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test51 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_set, tm_get, tm_wkafter, t_delete, t_restart, t_getreg, t_setreg - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - c. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - d. Verifies executive initialization performed correctly. - - e. Verifies that a task can get the task identification number of itself. - - f. Verifies that a task can get the task identification number - of another task. - - g. Verifies that a task can delete itself or another task. - - h. Verifies that errors are returned in the following situations: - 1) when attempting to delete a remote task. - 2) when attempting to start a remote task. - 3) when attempting to restart a remote task. - - i. Verifies that a remote task's registers can be set and read. diff --git a/c/src/tests/mptests/mp02/node1/mp02.scn b/c/src/tests/mptests/mp02/node1/mp02.scn deleted file mode 100644 index 72fdefe69d..0000000000 --- a/c/src/tests/mptests/mp02/node1/mp02.scn +++ /dev/null @@ -1,14 +0,0 @@ -*** TEST 2 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 222 -Getting TID of remote task (all nodes) -Getting TID of remote task (1 node) -rtems_task_delete of remote task returned the correct error -rtems_task_start of remote task returned the correct error -rtems_task_restart of remote task returned the correct error -Setting notepad 1 of the remote task to 1 -Getting a notepad of the remote task -Remote notepad set and read correctly -*** END OF TEST 2 *** diff --git a/c/src/tests/mptests/mp02/node2/mp02.doc b/c/src/tests/mptests/mp02/node2/mp02.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp02/node2/mp02.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp02/node2/mp02.scn b/c/src/tests/mptests/mp02/node2/mp02.scn deleted file mode 100644 index 233a910999..0000000000 --- a/c/src/tests/mptests/mp02/node2/mp02.scn +++ /dev/null @@ -1,14 +0,0 @@ -*** TEST 2 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 111 -Getting TID of remote task (all nodes) -Getting TID of remote task (1 node) -rtems_task_delete of remote task returned the correct error -rtems_task_start of remote task returned the correct error -rtems_task_restart of remote task returned the correct error -Setting notepad 2 of the remote task to 2 -Getting a notepad of the remote task -Remote notepad set and read correctly -*** END OF TEST 2 *** diff --git a/c/src/tests/mptests/mp02/system.h b/c/src/tests/mptests/mp02/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/mptests/mp02/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp02/task1.c b/c/src/tests/mptests/mp02/task1.c deleted file mode 100644 index 44764486b0..0000000000 --- a/c/src/tests/mptests/mp02/task1.c +++ /dev/null @@ -1,118 +0,0 @@ -/* Test_task - * - * This task tests the rtems_task_set_note directive on a remote task and that - * errors are returned when attempting to delete, start, or restart - * a remote task. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_multiprocessing_table Multiprocessing_configuration; - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_status_code status; - rtems_unsigned32 remote_node; - rtems_id remote_tid; - rtems_id test_tid; - rtems_unsigned32 note; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - - remote_node = (Multiprocessing_configuration.node == 1) ? 2 : 1; - printf( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - puts( "Getting TID of remote task (all nodes)" ); - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( status != RTEMS_SUCCESSFUL ); - - directive_failed( status, "rtems_task_ident" ); - - puts( "Getting TID of remote task (1 node)" ); - status = rtems_task_ident( Task_name[ remote_node ], remote_node, &test_tid ); - directive_failed( status, "rtems_task_ident" ); - - if ( test_tid != remote_tid ) { - puts( "rtems_task_ident tid's do not match!!" ); - rtems_fatal_error_occurred( status ); - } - - status = rtems_task_delete( remote_tid ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_task_delete of remote task" - ); - puts( "rtems_task_delete of remote task returned the correct error" ); - - status = rtems_task_start( remote_tid, Test_task, 0 ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_task_start of remote task" - ); - puts( "rtems_task_start of remote task returned the correct error" ); - - status = rtems_task_restart( remote_tid, 0 ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_task_restart of remote task" - ); - puts( "rtems_task_restart of remote task returned the correct error" ); - - printf( - "Setting notepad %d of the remote task to %d\n", - rtems_get_node(tid), - rtems_get_node(tid) - ); - status = rtems_task_set_note( - remote_tid, - rtems_get_node(tid), - rtems_get_node(tid) - ); - directive_failed( status, "rtems_task_set_note" ); - - puts( "Getting a notepad of the remote task" ); - status = rtems_task_get_note( remote_tid, rtems_get_node(tid), ¬e ); - directive_failed( status, "rtems_task_get_note" ); - - if ( note == rtems_get_node(tid) ) - puts( "Remote notepad set and read correctly" ); - else - printf( - "FAILURE!! Remote notepad was not set and read correctly (%d, %d)\n", - note, - rtems_get_node( tid ) - ); - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "*** END OF TEST 2 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/mptests/mp03/delay.c b/c/src/tests/mptests/mp03/delay.c deleted file mode 100644 index 6a6bb5f25e..0000000000 --- a/c/src/tests/mptests/mp03/delay.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Delayed_send_event - * - * This routine is a timer service routine which sends an event to task 1. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Delayed_send_event( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_16 ); - directive_failed( status, "rtems_event_send" ); -} diff --git a/c/src/tests/mptests/mp03/init.c b/c/src/tests/mptests/mp03/init.c deleted file mode 100644 index a1f210dad1..0000000000 --- a/c/src/tests/mptests/mp03/init.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 3 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[ Multiprocessing_configuration.node ], - 1, - 2048, - RTEMS_NO_PREEMPT, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/mptests/mp03/node1/mp03.doc b/c/src/tests/mptests/mp03/node1/mp03.doc deleted file mode 100644 index 348afef85f..0000000000 --- a/c/src/tests/mptests/mp03/node1/mp03.doc +++ /dev/null @@ -1,45 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test52 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_wkafter, t_suspend, t_resume - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of another task (on another node). - - i. Verifies that a task can suspend and resume a remote task. diff --git a/c/src/tests/mptests/mp03/node1/mp03.scn b/c/src/tests/mptests/mp03/node1/mp03.scn deleted file mode 100644 index 129e5bccba..0000000000 --- a/c/src/tests/mptests/mp03/node1/mp03.scn +++ /dev/null @@ -1,24 +0,0 @@ -*** TEST 3 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting TID of remote task -Remote task's name is : 222 -111 - Suspending remote task -111 - Resuming remote task -111 - Suspending remote task -111 - Resuming remote task -111 - Suspending remote task -111 - Resuming remote task -111 - Have I been suspended????? -111 - Have I been suspended????? -111 - Have I been suspended????? -111 - Have I been suspended????? - - ........ - -111 - Have I been suspended????? -111 - Have I been suspended????? -111 - Have I been suspended????? -111 - Have I been suspended????? -*** END OF TEST 3 *** diff --git a/c/src/tests/mptests/mp03/node2/mp03.doc b/c/src/tests/mptests/mp03/node2/mp03.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp03/node2/mp03.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp03/node2/mp03.scn b/c/src/tests/mptests/mp03/node2/mp03.scn deleted file mode 100644 index d77c09e9f7..0000000000 --- a/c/src/tests/mptests/mp03/node2/mp03.scn +++ /dev/null @@ -1,24 +0,0 @@ -*** TEST 3 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting TID of remote task -Remote task's name is : 111 -222 - Have I been suspended????? -222 - Have I been suspended????? -222 - Have I been suspended????? -222 - Have I been suspended????? - - ........ - -222 - Have I been suspended????? -222 - Have I been suspended????? -222 - Have I been suspended????? -222 - Have I been suspended????? -222 - Suspending remote task -222 - Resuming remote task -222 - Suspending remote task -222 - Resuming remote task -222 - Suspending remote task -222 - Resuming remote task -*** END OF TEST 3 *** diff --git a/c/src/tests/mptests/mp03/system.h b/c/src/tests/mptests/mp03/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/mptests/mp03/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp03/task1.c b/c/src/tests/mptests/mp03/task1.c deleted file mode 100644 index c1f0f777fd..0000000000 --- a/c/src/tests/mptests/mp03/task1.c +++ /dev/null @@ -1,155 +0,0 @@ -/* Test_task - * - * This task suspends and resumes a remote task. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -/*PAGE - * - * Test_Task_Support - * - */ - -void Test_Task_Support( - rtems_unsigned32 node -) -{ - rtems_event_set events; - rtems_status_code status; - - if ( Multiprocessing_configuration.node == node ) { - - for ( ; ; ) { - - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &events - ); - - if ( status == RTEMS_SUCCESSFUL ) - break; - - fatal_directive_status(status, RTEMS_UNSATISFIED, "rtems_event_receive"); - - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - put_name( Task_name[ node ], FALSE ); - puts( " - Suspending remote task" ); - - status = rtems_task_suspend( remote_tid ); - directive_failed( status, "rtems_task_suspend" ); - - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - put_name( Task_name[ node ], FALSE ); - puts( " - Resuming remote task" ); - - status = rtems_task_resume( remote_tid ) ; - directive_failed( status, "rtems_task_resume" ); - - } - - } else { - - for ( ; ; ) { - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &events - ); - - if ( status == RTEMS_SUCCESSFUL ) - break; - - fatal_directive_status(status, RTEMS_UNSATISFIED, "rtems_event_receive"); - - put_name( Task_name[ remote_node ], FALSE ); - puts( " - have I been suspended???" ); - - status = rtems_task_wake_after( TICKS_PER_SECOND / 2 ); - directive_failed( status, "rtems_task_wake_after" ); - } - - } - -} - -/*PAGE - * - * Test_task - */ - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - puts( "Getting TID of remote task" ); - remote_node = (Multiprocessing_configuration.node == 1) ? 2 : 1; - printf( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( status != RTEMS_SUCCESSFUL ); - - directive_failed( status, "rtems_task_ident" ); - - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - Delayed_send_event, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - Test_Task_Support( 1 ); - - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - Delayed_send_event, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } - - Test_Task_Support( 2 ); - - puts( "*** END OF TEST 3 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/mptests/mp04/init.c b/c/src/tests/mptests/mp04/init.c deleted file mode 100644 index 106176c6ca..0000000000 --- a/c/src/tests/mptests/mp04/init.c +++ /dev/null @@ -1,63 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 4 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[ Multiprocessing_configuration.node ], - Multiprocessing_configuration.node, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/mptests/mp04/node1/mp04.doc b/c/src/tests/mptests/mp04/node1/mp04.doc deleted file mode 100644 index 39a76d48a0..0000000000 --- a/c/src/tests/mptests/mp04/node1/mp04.doc +++ /dev/null @@ -1,41 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test53 - -directives: - ex_init, ex_start, t_create, t_start, i_return, t_ident, tm_get, - tm_wkafter, tm_setpri - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies that the system can get the id of a remote task. - - c. Verifies that the system can change the priority of a remote - task. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can delete itself or another task. diff --git a/c/src/tests/mptests/mp04/node1/mp04.scn b/c/src/tests/mptests/mp04/node1/mp04.scn deleted file mode 100644 index e9518f3ac2..0000000000 --- a/c/src/tests/mptests/mp04/node1/mp04.scn +++ /dev/null @@ -1,8 +0,0 @@ -*** TEST 4 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting TID of remote task -Remote task's name is : 222 -Local task priority has been set -*** END OF TEST 4 *** diff --git a/c/src/tests/mptests/mp04/node2/mp04.doc b/c/src/tests/mptests/mp04/node2/mp04.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp04/node2/mp04.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp04/node2/mp04.scn b/c/src/tests/mptests/mp04/node2/mp04.scn deleted file mode 100644 index 8ccfcfef79..0000000000 --- a/c/src/tests/mptests/mp04/node2/mp04.scn +++ /dev/null @@ -1,8 +0,0 @@ -*** TEST 4 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting TID of remote task -Remote task's name is : 111 -Local task priority has been set -*** END OF TEST 4 *** diff --git a/c/src/tests/mptests/mp04/system.h b/c/src/tests/mptests/mp04/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/mptests/mp04/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp04/task1.c b/c/src/tests/mptests/mp04/task1.c deleted file mode 100644 index 7e7e0ca849..0000000000 --- a/c/src/tests/mptests/mp04/task1.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Test_task - * - * This task tests the rtems_task_set_priority directive on a remote task. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_multiprocessing_table Multiprocessing_configuration; - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_status_code status; - rtems_unsigned32 remote_node; - rtems_id remote_tid; - rtems_task_priority previous_priority; - rtems_task_priority previous_priority_1; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - puts( "Getting TID of remote task" ); - remote_node = (Multiprocessing_configuration.node == 1) ? 2 : 1; - puts_nocr( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( status != RTEMS_SUCCESSFUL ); - - directive_failed( status, "rtems_task_ident" ); - - status = rtems_task_set_priority( - remote_tid, - Multiprocessing_configuration.node, - &previous_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - - if ( previous_priority != remote_node ) { - printf( - "Remote priority (0x%x) does not match remote node (0x%x)!!!\n", - previous_priority, - remote_node - ); - exit( 0xf0000 ); - } - - do { - status = rtems_task_set_priority( - RTEMS_SELF, - RTEMS_CURRENT_PRIORITY, - &previous_priority_1 - ); - directive_failed( status, "rtems_task_set_priority" ); - } while ( previous_priority_1 != remote_node ); - - puts( "Local task priority has been set" ); - - puts( "*** END OF TEST 4 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/mptests/mp05/asr.c b/c/src/tests/mptests/mp05/asr.c deleted file mode 100644 index 9f98e42692..0000000000 --- a/c/src/tests/mptests/mp05/asr.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Process_asr - * - * This routine performs the processing for task 1's RTEMS_ASR. It is called - * by an assembly routine which saves the necessary registers. - * - * Input parameters: - * signal - signal set - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_asr Process_asr( - rtems_signal_set signal -) -{ - if ( signal != expected_signal ) { - printf( - "ERROR: I was expecting signal 0x%.8x got 0x%.8x\n", - expected_signal, - signal - ); - rtems_fatal_error_occurred( 0xf0000 ); - } - signal_caught = 1; -} diff --git a/c/src/tests/mptests/mp05/init.c b/c/src/tests/mptests/mp05/init.c deleted file mode 100644 index 5db791d8f2..0000000000 --- a/c/src/tests/mptests/mp05/init.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 5 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[Multiprocessing_configuration.node], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/mptests/mp05/node1/mp05.doc b/c/src/tests/mptests/mp05/node1/mp05.doc deleted file mode 100644 index 6b9ccd556d..0000000000 --- a/c/src/tests/mptests/mp05/node1/mp05.doc +++ /dev/null @@ -1,45 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test54 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_wkafter, as_catch, as_return - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of another task. - - i. Verifies that a signal can be sent to a remote task. diff --git a/c/src/tests/mptests/mp05/node1/mp05.scn b/c/src/tests/mptests/mp05/node1/mp05.scn deleted file mode 100644 index 472740ba18..0000000000 --- a/c/src/tests/mptests/mp05/node1/mp05.scn +++ /dev/null @@ -1,11 +0,0 @@ -*** TEST 5 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -rtems_signal_catch: initializing signal catcher -Remote task's name is : 222 -Getting TID of remote task -Sending signal to remote task -.................................................... -.................................................... -*** END OF TEST 5 *** diff --git a/c/src/tests/mptests/mp05/node2/mp05.doc b/c/src/tests/mptests/mp05/node2/mp05.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp05/node2/mp05.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp05/node2/mp05.scn b/c/src/tests/mptests/mp05/node2/mp05.scn deleted file mode 100644 index 0c4b412f65..0000000000 --- a/c/src/tests/mptests/mp05/node2/mp05.scn +++ /dev/null @@ -1,10 +0,0 @@ -*** TEST 5 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -rtems_signal_catch: initializing signal catcher -Remote task's name is : 111 -Getting TID of remote task -.................................................... -.................................................... -*** END OF TEST 5 *** diff --git a/c/src/tests/mptests/mp05/system.h b/c/src/tests/mptests/mp05/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/mptests/mp05/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp05/task1.c b/c/src/tests/mptests/mp05/task1.c deleted file mode 100644 index 6934663850..0000000000 --- a/c/src/tests/mptests/mp05/task1.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Test_task - * - * This task initializes the signal catcher, sends the first signal - * if running on the first node, and loops while waiting for signals. - * - * NOTE: The signal catcher is not reentrant and hence RTEMS_NO_ASR must - * be a part of its execution mode. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#define SIGNALS_PER_DOT 15 - -rtems_timer_service_routine Stop_Test_TSR( - rtems_id ignored_id, - void *ignored_address -) -{ - Stop_Test = TRUE; -} - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - - Stop_Test = FALSE; - - signal_caught = 0; - signal_count = 0; - - puts( "rtems_signal_catch: initializing signal catcher" ); - status = rtems_signal_catch( Process_asr, RTEMS_NO_ASR|RTEMS_NO_PREEMPT ); - directive_failed( status, "rtems_signal_catch" ); - - if (Multiprocessing_configuration.node == 1) { - remote_node = 2; - remote_signal = RTEMS_SIGNAL_18; - expected_signal = RTEMS_SIGNAL_17; - } - else { - remote_node = 1; - remote_signal = RTEMS_SIGNAL_17; - expected_signal = RTEMS_SIGNAL_18; - } - puts_nocr( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - puts( "Getting TID of remote task" ); - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( status != RTEMS_SUCCESSFUL ); - directive_failed( status, "rtems_task_ident" ); - - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 3 * TICKS_PER_SECOND, - Stop_Test_TSR, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Sending signal to remote task" ); - do { - status = rtems_signal_send( remote_tid, remote_signal ); - if ( status == RTEMS_NOT_DEFINED ) - continue; - } while ( status != RTEMS_SUCCESSFUL ); - directive_failed( status, "rtems_signal_send" ); - } - - while ( Stop_Test == FALSE ) { - if ( signal_caught ) { - signal_caught = 0; - if ( ++signal_count >= SIGNALS_PER_DOT ) { - signal_count = 0; - put_dot( '.' ); - } - status = rtems_signal_send( remote_tid, remote_signal ); - directive_failed( status, "rtems_signal_send" ); - } - } - puts( "\n*** END OF TEST 5 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/mptests/mp06/init.c b/c/src/tests/mptests/mp06/init.c deleted file mode 100644 index ab41308954..0000000000 --- a/c/src/tests/mptests/mp06/init.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 6 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[Multiprocessing_configuration.node], - 1, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/mptests/mp06/node1/mp06.doc b/c/src/tests/mptests/mp06/node1/mp06.doc deleted file mode 100644 index 879c15d705..0000000000 --- a/c/src/tests/mptests/mp06/node1/mp06.doc +++ /dev/null @@ -1,45 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test55 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - ev_send, ev_receive - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of another task. - - i. Verifies that events can be sent to a remote task. diff --git a/c/src/tests/mptests/mp06/node1/mp06.scn b/c/src/tests/mptests/mp06/node1/mp06.scn deleted file mode 100644 index 592777e5d7..0000000000 --- a/c/src/tests/mptests/mp06/node1/mp06.scn +++ /dev/null @@ -1,11 +0,0 @@ -*** TEST 6 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 222 -Getting TID of remote task -Sending events to remote task -.................................................... -.................................................... -*** END OF TEST 6 *** - diff --git a/c/src/tests/mptests/mp06/node2/mp06.doc b/c/src/tests/mptests/mp06/node2/mp06.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp06/node2/mp06.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp06/node2/mp06.scn b/c/src/tests/mptests/mp06/node2/mp06.scn deleted file mode 100644 index 9cb653c2f3..0000000000 --- a/c/src/tests/mptests/mp06/node2/mp06.scn +++ /dev/null @@ -1,12 +0,0 @@ -*** TEST 6 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 111 -Getting TID of remote task -Receiving events from remote task -.................................................... -.................................................... -rtems_event_receive - correctly returned RTEMS_TIMEOUT -*** END OF TEST 6 *** - diff --git a/c/src/tests/mptests/mp06/system.h b/c/src/tests/mptests/mp06/system.h deleted file mode 100644 index 60f2b1a0a2..0000000000 --- a/c/src/tests/mptests/mp06/system.h +++ /dev/null @@ -1,31 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp06/task1.c b/c/src/tests/mptests/mp06/task1.c deleted file mode 100644 index 5b63a9ff76..0000000000 --- a/c/src/tests/mptests/mp06/task1.c +++ /dev/null @@ -1,176 +0,0 @@ -/* Test_task - * - * This task tests global event operations. If running on node one, it - * continuously sends events. If running on node two, it continuously - * receives events. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#define DOT_COUNT 25 - -/*PAGE - * - * Stop_Test_TSR - */ - -rtems_timer_service_routine Stop_Test_TSR( - rtems_id ignored_id, - void *ignored_address -) -{ - Stop_Test = TRUE; -} - -/*PAGE - * - * Event_set_table - */ - -rtems_event_set Event_set_table[] = { - RTEMS_EVENT_0, - RTEMS_EVENT_1, - RTEMS_EVENT_2, - RTEMS_EVENT_3, - RTEMS_EVENT_4, - RTEMS_EVENT_5, - RTEMS_EVENT_6, - RTEMS_EVENT_7, - RTEMS_EVENT_8, - RTEMS_EVENT_9, - RTEMS_EVENT_10, - RTEMS_EVENT_11, - RTEMS_EVENT_12, - RTEMS_EVENT_13, - RTEMS_EVENT_14, - RTEMS_EVENT_15, - RTEMS_EVENT_16, - RTEMS_EVENT_17, - RTEMS_EVENT_18, - RTEMS_EVENT_19, - RTEMS_EVENT_20, - RTEMS_EVENT_21, - RTEMS_EVENT_22, - RTEMS_EVENT_23, - RTEMS_EVENT_24, - RTEMS_EVENT_25, - RTEMS_EVENT_26, - RTEMS_EVENT_27, - RTEMS_EVENT_28, - RTEMS_EVENT_29, - RTEMS_EVENT_30, - RTEMS_EVENT_31 -}; - -/*PAGE - * - * Test_task - */ - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 count; - rtems_unsigned32 remote_node; - rtems_id remote_tid; - rtems_event_set event_out; - rtems_event_set event_for_this_iteration; - - Stop_Test = FALSE; - - remote_node = (Multiprocessing_configuration.node == 1) ? 2 : 1; - puts_nocr( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - puts( "Getting TID of remote task" ); - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( status != RTEMS_SUCCESSFUL ); - directive_failed( status, "rtems_task_ident FAILED!!" ); - - if ( Multiprocessing_configuration.node == 1 ) - puts( "Sending events to remote task" ); - else - puts( "Receiving events from remote task" ); - - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - Stop_Test_TSR, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - count = 0; - - for ( ; ; ) { - if ( Stop_Test == TRUE ) - break; - - event_for_this_iteration = Event_set_table[ count % 32 ]; - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_event_send( remote_tid, event_for_this_iteration ); - directive_failed( status, "rtems_event_send" ); - - status = rtems_task_wake_after( 1 ); - directive_failed( status, "rtems_task_wake_after" ); - } else { - status = rtems_event_receive( - event_for_this_iteration, - RTEMS_DEFAULT_OPTIONS, - 1 * TICKS_PER_SECOND, - &event_out - ); - if ( rtems_are_statuses_equal( status, RTEMS_TIMEOUT ) ) { - if ( Multiprocessing_configuration.node == 2 ) - puts( "\nCorrect behavior if the other node exitted." ); - else - puts( "\nERROR... node 1 died" ); - break; - } else - directive_failed( status, "rtems_event_receive" ); - } - - if ( (count % DOT_COUNT) == 0 ) - put_dot('.'); - - count++; - } - - putchar( '\n' ); - - if ( Multiprocessing_configuration.node == 2 ) { - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - 1 * TICKS_PER_SECOND, - &event_out - ); - fatal_directive_status( status, RTEMS_TIMEOUT, "rtems_event_receive" ); - puts( "rtems_event_receive - correctly returned RTEMS_TIMEOUT" ); - } - puts( "*** END OF TEST 6 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/mptests/mp07/init.c b/c/src/tests/mptests/mp07/init.c deleted file mode 100644 index 665c3f0b72..0000000000 --- a/c/src/tests/mptests/mp07/init.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 7 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[Multiprocessing_configuration.node], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/mptests/mp07/node1/mp07.doc b/c/src/tests/mptests/mp07/node1/mp07.doc deleted file mode 100644 index ca09867ab6..0000000000 --- a/c/src/tests/mptests/mp07/node1/mp07.doc +++ /dev/null @@ -1,46 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test56 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - ev_send, ev_receive - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of another task. - - i. Verifies that two tasks on different processors can alternate - sending each other events. diff --git a/c/src/tests/mptests/mp07/node1/mp07.scn b/c/src/tests/mptests/mp07/node1/mp07.scn deleted file mode 100644 index d348f48612..0000000000 --- a/c/src/tests/mptests/mp07/node1/mp07.scn +++ /dev/null @@ -1,10 +0,0 @@ -*** TEST 7 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 222 -Getting TID of remote task -Sending first event to remote task -.................................................... -.................................................... -*** END OF TEST 7 *** diff --git a/c/src/tests/mptests/mp07/node2/mp07.doc b/c/src/tests/mptests/mp07/node2/mp07.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp07/node2/mp07.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp07/node2/mp07.scn b/c/src/tests/mptests/mp07/node2/mp07.scn deleted file mode 100644 index 9e361d713c..0000000000 --- a/c/src/tests/mptests/mp07/node2/mp07.scn +++ /dev/null @@ -1,9 +0,0 @@ -*** TEST 7 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 111 -Getting TID of remote task -.................................................... -.................................................... -*** END OF TEST 7 *** diff --git a/c/src/tests/mptests/mp07/system.h b/c/src/tests/mptests/mp07/system.h deleted file mode 100644 index 34ec37a967..0000000000 --- a/c/src/tests/mptests/mp07/system.h +++ /dev/null @@ -1,28 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp07/task1.c b/c/src/tests/mptests/mp07/task1.c deleted file mode 100644 index 70fc8c73c5..0000000000 --- a/c/src/tests/mptests/mp07/task1.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Test_task - * - * This task continuously sends an event to its counterpart on the - * other node, and then waits for it to send an event. The copy - * running on node one send the first event. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#define DOT_COUNT 100 - -rtems_timer_service_routine Stop_Test_TSR( - rtems_id ignored_id, - void *ignored_address -) -{ - Stop_Test = TRUE; -} - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 count; - rtems_unsigned32 remote_node; - rtems_id remote_tid; - rtems_event_set event_out; - - Stop_Test = FALSE; - - remote_node = (Multiprocessing_configuration.node == 1) ? 2 : 1; - puts_nocr( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - puts( "Getting TID of remote task" ); - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( !rtems_is_status_successful( status ) ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Sending first event to remote task" ); - status = rtems_event_send( remote_tid, RTEMS_EVENT_16 ); - directive_failed( status, "rtems_event_send" ); - } - - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - Stop_Test_TSR, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - while ( Stop_Test == FALSE ) { - for ( count=DOT_COUNT ; count ; count-- ) { - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - if ( status == RTEMS_TIMEOUT ) { - puts( "\nTA1 - RTEMS_TIMEOUT .. probably OK if the other node exits" ); - break; - } else - directive_failed( status, "rtems_event_receive" ); - - status = rtems_event_send( remote_tid, RTEMS_EVENT_16 ); - directive_failed( status, "rtems_event_send" ); - } - put_dot('.'); - } - puts( "\n*** END OF TEST 7 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/mptests/mp08/init.c b/c/src/tests/mptests/mp08/init.c deleted file mode 100644 index 2a669d2b9a..0000000000 --- a/c/src/tests/mptests/mp08/init.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 8 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'E', 'M', '\0' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Creating Sempahore (Global)" ); - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_GLOBAL, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - } - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[ Multiprocessing_configuration.node ], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/mptests/mp08/node1/mp08.doc b/c/src/tests/mptests/mp08/node1/mp08.doc deleted file mode 100644 index 3ec09a3335..0000000000 --- a/c/src/tests/mptests/mp08/node1/mp08.doc +++ /dev/null @@ -1,52 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test57 - -GLOBAL SEMAPHORE TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - sm_create, sm_ident, sm_p, sm_v, sm_delete - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the identification number of - a global sempahore. - - h. Verifies that two tasks on different processors can - alternate accessing a semaphore. - - i. Verifies operation of sm_delete on global semaphores - for both normal and error case. - - j. Verifies Rpc and Process_pkt for packet types Q_SMP, Q_SMV, - P_OBJCREATE (semaphore), P_OBJDELETE (semaphore), P_SMDEL_TQ. - diff --git a/c/src/tests/mptests/mp08/node1/mp08.scn b/c/src/tests/mptests/mp08/node1/mp08.scn deleted file mode 100644 index cde263420c..0000000000 --- a/c/src/tests/mptests/mp08/node1/mp08.scn +++ /dev/null @@ -1,11 +0,0 @@ -*** TEST 8 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting SMID of semaphore -pvpvpvpvpvp....... -(continued) pvp - -Deleting global semaphore -*** END OF TEST 8 *** - diff --git a/c/src/tests/mptests/mp08/node2/mp08.doc b/c/src/tests/mptests/mp08/node2/mp08.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp08/node2/mp08.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp08/node2/mp08.scn b/c/src/tests/mptests/mp08/node2/mp08.scn deleted file mode 100644 index 5a613f45e5..0000000000 --- a/c/src/tests/mptests/mp08/node2/mp08.scn +++ /dev/null @@ -1,12 +0,0 @@ -*** TEST 8 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting SMID of semaphore -rtems_semaphore_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT -pvpvpvpvpvp....... -(continued) pvp - -Global semaphore deleted -*** END OF TEST 8 *** - diff --git a/c/src/tests/mptests/mp08/system.h b/c/src/tests/mptests/mp08/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/mptests/mp08/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp08/task1.c b/c/src/tests/mptests/mp08/task1.c deleted file mode 100644 index dbd1526795..0000000000 --- a/c/src/tests/mptests/mp08/task1.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Test_task - * - * This task tests global semaphore operations. It verifies that - * global semaphore errors are correctly returned. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - rtems_status_code status; - - puts( "Getting SMID of semaphore" ); - - do { - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Semaphore_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - if ( Multiprocessing_configuration.node == 2 ) { - status = rtems_semaphore_delete( Semaphore_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_semaphore_delete did not return RTEMS_ILLEGAL_ON_REMOTE_OBJECT" - ); - puts( - "rtems_semaphore_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT" - ); - } - - count = 0; /* number of times node 1 releases semaphore */ - while ( FOREVER ) { - put_dot( 'p' ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - if ( status != RTEMS_SUCCESSFUL ) { - fatal_directive_status( - status, - RTEMS_OBJECT_WAS_DELETED, - "rtems_semaphore_obtain" - ); - puts( "\nGlobal semaphore deleted" ); - puts( "*** END OF TEST 8 ***" ); - exit( 0 ); - } - - if ( Multiprocessing_configuration.node == 1 && ++count == 1000 ) { - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "\nDeleting global semaphore" ); - status = rtems_semaphore_delete( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_delete" ); - - puts( "*** END OF TEST 8 ***" ); - exit( 0 ); - } - else { - put_dot( 'v' ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release FAILED!!" ); - } - } -} diff --git a/c/src/tests/mptests/mp09/init.c b/c/src/tests/mptests/mp09/init.c deleted file mode 100644 index bd19547cef..0000000000 --- a/c/src/tests/mptests/mp09/init.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 9 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'S', 'G', ' ' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Creating Message Queue (Global)" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_GLOBAL|RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create" ); - } - - puts( "Creating Test_task (local)" ); - status = rtems_task_create( - Task_name[Multiprocessing_configuration.node], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (local)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/mptests/mp09/node1/mp09.doc b/c/src/tests/mptests/mp09/node1/mp09.doc deleted file mode 100644 index 15e05aae58..0000000000 --- a/c/src/tests/mptests/mp09/node1/mp09.doc +++ /dev/null @@ -1,50 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test58 - -GLOBAL MESSAGE QUEUE TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - tm_wkafter, q_create, q_send, q_broadcast, q_urgent, q_receive, - q_delete - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can delete itself. - - i. Verifies Rpc and Process_pkt for message queue related packets. - - j. Verifies normal and error paths for global message queue handling. - -NOTE: The SLAVE must be started first for this test to successfully run. diff --git a/c/src/tests/mptests/mp09/node1/mp09.scn b/c/src/tests/mptests/mp09/node1/mp09.scn deleted file mode 100644 index 2b612e4746..0000000000 --- a/c/src/tests/mptests/mp09/node1/mp09.scn +++ /dev/null @@ -1,21 +0,0 @@ -*** TEST 9 -- NODE 1 *** -Creating Message Queue (Global) -Creating Test_task (local) -Starting Test_task (local) -Deleting initialization task -Getting QID of message queue -Receiving message ... -Received : 123456789012345 -Receiving message ... -Received : abcdefghijklmno -Receiving message ... -Received : ABCDEFGHIJKLMNO -rtems_message_queue_send: 123456789012345 -Delaying for a second -rtems_message_queue_urgent: abcdefghijklmno -Delaying for a second -rtems_message_queue_broadcast: ABCDEFGHIJKLMNO -Delaying for a second -Delaying for 5 seconds -Deleting Message queue -*** END OF TEST 9 *** diff --git a/c/src/tests/mptests/mp09/node2/mp09.doc b/c/src/tests/mptests/mp09/node2/mp09.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp09/node2/mp09.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp09/node2/mp09.scn b/c/src/tests/mptests/mp09/node2/mp09.scn deleted file mode 100644 index 96708f7fe0..0000000000 --- a/c/src/tests/mptests/mp09/node2/mp09.scn +++ /dev/null @@ -1,27 +0,0 @@ -*** TEST 9 -- NODE 2 *** -Creating Test_task (local) -Starting Test_task (local) -Deleting initialization task -Getting QID of message queue -rtems_message_queue_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT -rtems_message_queue_send: 123456789012345 -Delaying for a second -rtems_message_queue_urgent: abcdefghijklmno -Delaying for a second -rtems_message_queue_broadcast: ABCDEFGHIJKLMNO -Delaying for a second -Receiving message ... -Received : 123456789012345 -Receiving message ... -Received : abcdefghijklmno -Receiving message ... -Received : ABCDEFGHIJKLMNO -Flushing remote empty queue -00 messages were flushed on the remote queue -Send messages to be flushed from remote queue -Flushing remote queue -01 messages were flushed on the remote queue -Waiting for message queue to be deleted - -Global message queue deleted -*** END OF TEST 9 *** diff --git a/c/src/tests/mptests/mp09/recvmsg.c b/c/src/tests/mptests/mp09/recvmsg.c deleted file mode 100644 index c3c1a8ef8b..0000000000 --- a/c/src/tests/mptests/mp09/recvmsg.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Receive_messages - * - * This routine receives and prints three messages. - * an error condition. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Receive_messages() -{ - rtems_status_code status; - rtems_unsigned32 index; - char receive_buffer[16]; - - for ( index=1 ; index <=3 ; index++ ) { - puts( "Receiving message ..." ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])receive_buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "Received : "); - puts( receive_buffer ); - } - - puts( "Receiver delaying for a second" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); -} diff --git a/c/src/tests/mptests/mp09/sendmsg.c b/c/src/tests/mptests/mp09/sendmsg.c deleted file mode 100644 index d800eb47cf..0000000000 --- a/c/src/tests/mptests/mp09/sendmsg.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Send_messages - * - * This routine sends a series of three messages. - * an error condition. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Send_messages() -{ - rtems_status_code status; - rtems_unsigned32 broadcast_count; - - puts_nocr( "rtems_message_queue_send: " ); - puts( buffer1 ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer1 ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "Delaying for a second" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts_nocr( "rtems_message_queue_urgent: " ); - puts( buffer2 ); - status = rtems_message_queue_urgent( Queue_id[ 1 ], (long (*)[4])buffer2 ); - directive_failed( status, "rtems_message_queue_urgent" ); - - puts( "Delaying for a second" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts_nocr( "rtems_message_queue_broadcast: " ); - puts( buffer3 ); - status = rtems_message_queue_broadcast( - Queue_id[ 1 ], - (long (*)[4])buffer3, - &broadcast_count - ); - directive_failed( status, "rtems_message_queue_broadcast" ); - - puts( "Delaying for a second" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); -} diff --git a/c/src/tests/mptests/mp09/system.h b/c/src/tests/mptests/mp09/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/mptests/mp09/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp09/task1.c b/c/src/tests/mptests/mp09/task1.c deleted file mode 100644 index ece05592dd..0000000000 --- a/c/src/tests/mptests/mp09/task1.c +++ /dev/null @@ -1,107 +0,0 @@ -/* Test_task - * - * This task tests global message queue operations. It also generates - * an error condition. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -char buffer1[16] = "123456789012345"; -char buffer2[16] = "abcdefghijklmno"; -char buffer3[16] = "ABCDEFGHIJKLMNO"; -char buffer4[16] = "PQRSTUVWXYZ(){}"; - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 count; - char receive_buffer[16]; - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Getting QID of message queue" ); - - do { - status = rtems_message_queue_ident( - Queue_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Queue_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - if ( Multiprocessing_configuration.node == 2 ) { - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_message_queue_delete" - ); - puts( - "rtems_message_queue_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT" - ); - - Send_messages(); - Receive_messages(); - - puts( "Flushing remote empty queue" ); - status = rtems_message_queue_flush( Queue_id[ 1 ], &count ); - directive_failed( status, "rtems_message_queue_flush" ); - printf( "%02d messages were flushed on the remote queue\n", count ); - - puts( "Send messages to be flushed from remote queue" ); - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer1 ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "Flushing remote queue" ); - status = rtems_message_queue_flush( Queue_id[ 1 ], &count ); - directive_failed( status, "rtems_message_queue_flush" ); - printf( "%02d messages were flushed on the remote queue\n", count ); - - puts( "Waiting for message queue to be deleted" ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])receive_buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_OBJECT_WAS_DELETED, - "rtems_message_queue_receive" - ); - puts( "\nGlobal message queue deleted" ); - } - else { /* node == 1 */ - Receive_messages(); - Send_messages(); - - puts( "Delaying for 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Deleting Message queue" ); - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete" ); - } - - puts( "*** END OF TEST 9 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/mptests/mp10/init.c b/c/src/tests/mptests/mp10/init.c deleted file mode 100644 index 7acf5ca411..0000000000 --- a/c/src/tests/mptests/mp10/init.c +++ /dev/null @@ -1,144 +0,0 @@ -/* Init - * - * This routine is the initialization routine for this test program. - * Other than creating all objects needed by this test, if this routine - * is running on node one, it acquires a global semaphore to - * force all other tasks to pend. If running on node two, this task - * sleeps for a while, and then deletes two local tasks which are - * waiting on a remote message queue or a semaphore. - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 10 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'S', 'A', '3', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'S', 'G', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'E', 'M', ' ' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Creating Message Queue (Global)" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_GLOBAL|RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create" ); - - puts( "Creating Semaphore (Global)" ); - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 0, - RTEMS_GLOBAL | RTEMS_PRIORITY, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - - status = rtems_task_wake_after( 10 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - } else { - - puts( "Creating Test_task 1 (local)" ); - status = rtems_task_create( - Task_name[ 1 ], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task 1 (local)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task1, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Test_task 2 (local)" ); - status = rtems_task_create( - Task_name[ 2 ], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task 2 (local)" ); - status = rtems_task_start( Task_id[ 2 ], Test_task2, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Test_task 3 (local)" ); - status = rtems_task_create( - Task_name[ 3 ], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task 3 (local)" ); - status = rtems_task_start( Task_id[ 3 ], Test_task2, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Sleeping for 1 seconds ..." ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Deleting Test_task2" ); - status = rtems_task_delete( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_delete of Task 2" ); - - puts( "Deleting Test_task1" ); - status = rtems_task_delete( Task_id[ 1 ] ); - directive_failed( status, "rtems_task_delete of Task 1" ); - - puts( "Restarting Test_task3" ); - status = rtems_task_restart( Task_id[ 3 ], 1 ); - directive_failed( status, "rtems_task_restart of Task 3" ); - - } - puts( "*** END OF TEST 10 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/mptests/mp10/node1/mp10.doc b/c/src/tests/mptests/mp10/node1/mp10.doc deleted file mode 100644 index d75b176f8d..0000000000 --- a/c/src/tests/mptests/mp10/node1/mp10.doc +++ /dev/null @@ -1,46 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test59 - -GLOBAL SEMAPHORE TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_set, tm_get, tm_wkafter - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of another task. - - i. Verifies that a task can delete itself or another task. diff --git a/c/src/tests/mptests/mp10/node1/mp10.scn b/c/src/tests/mptests/mp10/node1/mp10.scn deleted file mode 100644 index deeafc0a9a..0000000000 --- a/c/src/tests/mptests/mp10/node1/mp10.scn +++ /dev/null @@ -1,4 +0,0 @@ -*** TEST 10 -- NODE 1 *** -Creating Message Queue (Global) -Creating Semaphore (Global) -*** END OF TEST 10 *** diff --git a/c/src/tests/mptests/mp10/node2/mp10.doc b/c/src/tests/mptests/mp10/node2/mp10.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp10/node2/mp10.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp10/node2/mp10.scn b/c/src/tests/mptests/mp10/node2/mp10.scn deleted file mode 100644 index 25c07e6202..0000000000 --- a/c/src/tests/mptests/mp10/node2/mp10.scn +++ /dev/null @@ -1,19 +0,0 @@ -*** TEST 10 -- NODE 2 *** -Creating Test_task 1 (local) -Starting Test_task 1 (local) -Creating Test_task 2 (local) -Starting Test_task 2 (local) -Creating Test_task 3 (local) -Starting Test_task 3 (local) -Sleeping for 1 seconds ... -Getting QID of message queue -Attempting to receive message ... -Getting SMID of semaphore -Attempting to acquire semaphore ... -Getting SMID of semaphore -Attempting to acquire semaphore ... -Deleting Test_task2 -Deleting Test_task1 -Restarting Test_task3 -*** END OF TEST 10 *** - diff --git a/c/src/tests/mptests/mp10/system.h b/c/src/tests/mptests/mp10/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/mptests/mp10/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp10/task1.c b/c/src/tests/mptests/mp10/task1.c deleted file mode 100644 index ff6f4bd69a..0000000000 --- a/c/src/tests/mptests/mp10/task1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Test_task1 - * - * This task attempts to receive a message from a global message queue. - * It should never actually receive the message. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task1( - rtems_task_argument argument -) -{ - char receive_buffer[16]; - rtems_status_code status; - - puts( "Getting QID of message queue" ); - - do { - status = rtems_message_queue_ident( - Queue_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Queue_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - puts( "Attempting to receive message ..." ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])receive_buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - -} diff --git a/c/src/tests/mptests/mp10/task2.c b/c/src/tests/mptests/mp10/task2.c deleted file mode 100644 index 560f3946cf..0000000000 --- a/c/src/tests/mptests/mp10/task2.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Test_task2 - * - * This task attempts to receive control of a global semaphore. - * It should never receive control of the semaphore. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "Getting SMID of semaphore" ); - - do { - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Semaphore_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - puts( "Attempting to acquire semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); -} diff --git a/c/src/tests/mptests/mp10/task3.c b/c/src/tests/mptests/mp10/task3.c deleted file mode 100644 index 905183268e..0000000000 --- a/c/src/tests/mptests/mp10/task3.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Test_task3 - * - * This task attempts to receive control of a global semaphore. - * It should never receive control of the semaphore. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task3( restart ) -rtems_task_argument restart; -{ - rtems_status_code status; - - if ( restart == 1 ) { - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete" ); - } - - puts( "Getting SMID of semaphore" ); - - do { - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Semaphore_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - puts( "Attempting to acquire semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); -} diff --git a/c/src/tests/mptests/mp11/init.c b/c/src/tests/mptests/mp11/init.c deleted file mode 100644 index 7adc391319..0000000000 --- a/c/src/tests/mptests/mp11/init.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Init - * - * This routine is the initialization and test routine for - * this test program. It attempts to create more global - * objects than are configured (zero should be configured). - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned8 my_partition[0x30000]; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id junk_id; - rtems_status_code status; - - printf( - "\n\n*** TEST 11 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'S', 'G', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'E', 'M', ' ' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Attempting to create Test_task (Global)" ); - status = rtems_task_create( - Task_name[ 1 ], - 1, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_GLOBAL, - &junk_id - ); - fatal_directive_status( status, RTEMS_TOO_MANY, "rtems_task_create" ); - puts( "rtems_task_create correctly returned RTEMS_TOO_MANY" ); - - puts( "Attempting to create Message Queue (Global)" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_GLOBAL|RTEMS_LIMIT, - &junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_message_queue_create" - ); - puts( "rtems_message_queue_create correctly returned RTEMS_TOO_MANY" ); - - puts( "Attempting to create Semaphore (Global)" ); - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_GLOBAL, - &junk_id - ); - fatal_directive_status( status, RTEMS_TOO_MANY, "rtems_semaphore_create" ); - puts( "rtems_semaphore_create correctly returned RTEMS_TOO_MANY" ); - - puts( "Attempting to create Partition (Global)" ); - status = rtems_partition_create( - 1, - (rtems_unsigned8 *) my_partition, - 128, - 64, - RTEMS_GLOBAL, - &junk_id - ); - fatal_directive_status( status, RTEMS_TOO_MANY, "rtems_partition_create" ); - puts( "rtems_partition_create correctly returned RTEMS_TOO_MANY" ); - } - puts( "*** END OF TEST 11 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/mptests/mp11/node1/mp11.doc b/c/src/tests/mptests/mp11/node1/mp11.doc deleted file mode 100644 index 05113ec6b6..0000000000 --- a/c/src/tests/mptests/mp11/node1/mp11.doc +++ /dev/null @@ -1,42 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test60 - -TOO MANY GLOBAL OBJECTS ERROR TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - t_create, q_create, sm_create, pt_create - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that all object create directives correctly return - E_TOOMANYGOBJECTS. diff --git a/c/src/tests/mptests/mp11/node1/mp11.scn b/c/src/tests/mptests/mp11/node1/mp11.scn deleted file mode 100644 index fb26583852..0000000000 --- a/c/src/tests/mptests/mp11/node1/mp11.scn +++ /dev/null @@ -1,10 +0,0 @@ -*** TEST 11 -- NODE 1 *** -Attempting to create Test_task (Global) -rtems_task_create correctly returned RTEMS_TOO_MANY -Attempting to create Message Queue (Global) -rtems_message_queue_create correctly returned RTEMS_TOO_MANY -Attempting to create Semaphore (Global) -rtems_semaphore_create correctly returned RTEMS_TOO_MANY -Attempting to create Partition (Global) -rtems_partition_create correctly returned RTEMS_TOO_MANY -*** END OF TEST 11 *** diff --git a/c/src/tests/mptests/mp11/node2/mp11.doc b/c/src/tests/mptests/mp11/node2/mp11.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp11/node2/mp11.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp11/node2/mp11.scn b/c/src/tests/mptests/mp11/node2/mp11.scn deleted file mode 100644 index 49bd8a3219..0000000000 --- a/c/src/tests/mptests/mp11/node2/mp11.scn +++ /dev/null @@ -1,2 +0,0 @@ -*** TEST 11 -- NODE 2 *** -*** END OF TEST 11 *** diff --git a/c/src/tests/mptests/mp11/system.h b/c/src/tests/mptests/mp11/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/mptests/mp11/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp12/init.c b/c/src/tests/mptests/mp12/init.c deleted file mode 100644 index 8ef9552174..0000000000 --- a/c/src/tests/mptests/mp12/init.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Init - * - * This routine is the initialization routine and test code for - * global partitions. It creates a global partition, obtains and - * releases a buffer, and deletes the partition. The partition - * is created on node one, and an attempt is made to delete it - * by node two. - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned8 Partition_area[ 1024 ]; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - void *bufaddr; - - printf( - "\n\n*** TEST 12 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Partition_name[ 1 ] = rtems_build_name( 'P', 'A', 'R', ' ' ); - - puts( "Got to initialization task" ); - - if ( Multiprocessing_configuration.node == 2 ) { - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Getting ID of remote Partition (Global)" ); - - do { - status = rtems_partition_ident( - Partition_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Partition_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - puts( "Attempting to delete remote Partition (Global)" ); - status = rtems_partition_delete( Partition_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_partition_delete" - ); - puts( - "rtems_partition_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT" - ); - - puts( "Obtaining a buffer from the global partition" ); - status = rtems_partition_get_buffer( Partition_id[ 1 ], &bufaddr ); - directive_failed( status, "rtems_partition_get_buffer" ); - printf( "Address returned was : 0x%p\n", bufaddr ); - - puts( "Releasing a buffer to the global partition" ); - status = rtems_partition_return_buffer( Partition_id[ 1 ], bufaddr ); - directive_failed( status, "rtems_partition_return_buffer" ); - - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } - else { - puts( "Creating Partition (Global)" ); - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_area, - 128, - 64, - RTEMS_GLOBAL, - &Partition_id[ 1 ] - ); - directive_failed( status, "rtems_partition_create" ); - - puts( "Sleeping for two seconds" ); - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Deleting Partition (Global)" ); - status = rtems_partition_delete( Partition_id[ 1 ] ); - directive_failed( status, "rtems_partition_delete" ); - } - puts( "*** END OF TEST 12 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/mptests/mp12/node1/mp12.doc b/c/src/tests/mptests/mp12/node1/mp12.doc deleted file mode 100644 index 2bb7bc4518..0000000000 --- a/c/src/tests/mptests/mp12/node1/mp12.doc +++ /dev/null @@ -1,52 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test61 - -GLOBAL PARTITION TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, tm_wkafter, - pt_create, pt_delete, pt_getbuf, pt_retbuf - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies the Shared Memory Locked Queue Driver. - - h. Verifies _Rpc() and _Process_pkt() for the following packet types: - P_OBJCREATE (partitions), - P_OBJDELETE (partitions), - P_PTGETBUF, and - P_PTRETBUF. - - i. Verifies normal and error paths (other than E_TOOMANYGOBJECTS) - for global partitions. - - j. Verifies that a task can delete itself. diff --git a/c/src/tests/mptests/mp12/node1/mp12.scn b/c/src/tests/mptests/mp12/node1/mp12.scn deleted file mode 100644 index 605a2c11db..0000000000 --- a/c/src/tests/mptests/mp12/node1/mp12.scn +++ /dev/null @@ -1,6 +0,0 @@ -*** TEST 12 -- NODE 1 *** -Got to initialization task -Creating Partition (Global) -Sleeping for two seconds -Deleting Partition (Global) -*** END OF TEST 12 *** diff --git a/c/src/tests/mptests/mp12/node2/mp12.doc b/c/src/tests/mptests/mp12/node2/mp12.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp12/node2/mp12.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp12/node2/mp12.scn b/c/src/tests/mptests/mp12/node2/mp12.scn deleted file mode 100644 index ad65e9cb32..0000000000 --- a/c/src/tests/mptests/mp12/node2/mp12.scn +++ /dev/null @@ -1,10 +0,0 @@ -*** TEST 12 -- NODE 2 *** -Got to initialization task -Getting ID of remote Partition (Global) -Attempting to delete remote Partition (Global) -rtems_partition_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT -Obtaining a buffer from the global partition ->>>>>>> address returned will differ -Address returned was : 0x200f0000 -Releasing a buffer to the global partition -*** END OF TEST 12 *** diff --git a/c/src/tests/mptests/mp12/system.h b/c/src/tests/mptests/mp12/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/mptests/mp12/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp13/init.c b/c/src/tests/mptests/mp13/init.c deleted file mode 100644 index 0ec132e9ed..0000000000 --- a/c/src/tests/mptests/mp13/init.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 13 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'S', 'G', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'E', 'M', ' ' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Creating Message Queue (Global)" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_GLOBAL|RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create" ); - - puts( "Creating Semaphore (Global)" ); - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_GLOBAL | RTEMS_PRIORITY, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); - } - - puts( "Creating Test_task 1 (local)" ); - status = rtems_task_create( - Task_name[ 1 ], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task 1 (local)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task1, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Test_task 2 (local)" ); - status = rtems_task_create( - Task_name[ 2 ], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task 2 (local)" ); - status = rtems_task_start( Task_id[ 2 ], Test_task2, 0 ); - directive_failed( status, "rtems_task_start" ); - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_task_wake_after( 5 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "*** END OF TEST 13 ***" ); - exit( 0 ); - } - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/mptests/mp13/node1/mp13.doc b/c/src/tests/mptests/mp13/node1/mp13.doc deleted file mode 100644 index abf558b443..0000000000 --- a/c/src/tests/mptests/mp13/node1/mp13.doc +++ /dev/null @@ -1,48 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test62 - -GLOBAL SEMAPHORE TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, tm_wkafter, - sm_create, q_create, sm_p, q_receive - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies the Shared Memory Locked Queue Driver. - - h. Verifies that E_MESSAGETIMEOUT is when waiting on a - remote message queue. - - i. Verifies that E_SEMTIMEOUT is when waiting on a remote semaphore. - - j. Verifies that a task can delete itself. diff --git a/c/src/tests/mptests/mp13/node1/mp13.scn b/c/src/tests/mptests/mp13/node1/mp13.scn deleted file mode 100644 index d3bd11f65e..0000000000 --- a/c/src/tests/mptests/mp13/node1/mp13.scn +++ /dev/null @@ -1,14 +0,0 @@ -*** TEST 13 -- NODE 1 *** -Creating Message Queue (Global) -Creating Semaphore (Global) -Creating Test_task 1 (local) -Starting Test_task 1 (local) -Creating Test_task 2 (local) -Starting Test_task 2 (local) -Getting QID of message queue -Receiving message ... -Getting SMID of semaphore -Releasing semaphore ... -Getting semaphore ... -Getting semaphore ... -*** END OF TEST 13 *** diff --git a/c/src/tests/mptests/mp13/node2/mp13.doc b/c/src/tests/mptests/mp13/node2/mp13.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp13/node2/mp13.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp13/node2/mp13.scn b/c/src/tests/mptests/mp13/node2/mp13.scn deleted file mode 100644 index e9df202a94..0000000000 --- a/c/src/tests/mptests/mp13/node2/mp13.scn +++ /dev/null @@ -1,16 +0,0 @@ -*** TEST 13 -- NODE 2 *** -Creating Test_task 1 (local) -Starting Test_task 1 (local) -Creating Test_task 2 (local) -Starting Test_task 2 (local) -Deleting initialization task -Getting QID of message queue -Getting SMID of semaphore -Getting semaphore ... -Receiving message ... -Releasing semaphore ... -Getting semaphore ... -rtems_message_queue_receive correctly returned RTEMS_TIMEOUT -Deleting self -rtems_semaphore_obtain correctly returned RTEMS_TIMEOUT -*** END OF TEST 13 *** diff --git a/c/src/tests/mptests/mp13/system.h b/c/src/tests/mptests/mp13/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/mptests/mp13/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/mptests/mp13/task1.c b/c/src/tests/mptests/mp13/task1.c deleted file mode 100644 index 180d0fd101..0000000000 --- a/c/src/tests/mptests/mp13/task1.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Test_task1 - * - * This task attempts to receive a message from a global message queue. - * If running on the node on which the queue resides, the wait is - * forever, otherwise it times out on a remote message queue. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task1( - rtems_task_argument argument -) -{ - char receive_buffer[16]; - rtems_status_code status; - - puts( "Getting QID of message queue" ); - - do { - status = rtems_message_queue_ident( - Queue_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Queue_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Receiving message ..." ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])receive_buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - puts( "How did I get back from here????" ); - directive_failed( status, "rtems_message_queue_receive" ); - } - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Receiving message ..." ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])receive_buffer, - RTEMS_DEFAULT_OPTIONS, - 2 * TICKS_PER_SECOND - ); - fatal_directive_status(status, RTEMS_TIMEOUT, "rtems_message_queue_receive"); - puts( "rtems_message_queue_receive correctly returned RTEMS_TIMEOUT" ); - - puts( "Deleting self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/mptests/mp13/task2.c b/c/src/tests/mptests/mp13/task2.c deleted file mode 100644 index a43b64d3cf..0000000000 --- a/c/src/tests/mptests/mp13/task2.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Test_task2 - * - * This task attempts to receive control of a global semaphore. - * If running on the node on which the semaphore resides, the wait is - * forever, otherwise it times out on a remote semaphore. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "Getting SMID of semaphore" ); - do { - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Semaphore_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - directive_failed( status, "rtems_semaphore_ident" ); - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Releasing semaphore ..." ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release" ); - - status = rtems_task_wake_after( TICKS_PER_SECOND / 2 ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Getting semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); - - puts( "Getting semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - puts( "How did I get back from here????" ); - directive_failed( status, "rtems_semaphore_obtain" ); - } - -/* - status = rtems_task_wake_after( TICKS_PER_SECOND / 2 ); - directive_failed( status, "rtems_task_wake_after" ); -*/ - - puts( "Getting semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); - - puts( "Releasing semaphore ..." ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release" ); - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Getting semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - 2 * TICKS_PER_SECOND - ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_semaphore_obtain" - ); - puts( "rtems_semaphore_obtain correctly returned RTEMS_TIMEOUT" ); - - puts( "*** END OF TEST 13 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/mptests/mp14/delay.c b/c/src/tests/mptests/mp14/delay.c deleted file mode 100644 index 7062c4ad21..0000000000 --- a/c/src/tests/mptests/mp14/delay.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Delayed_send_event - * - * This routine is a timer service routine which sends an event to a task. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Delayed_send_event( - rtems_id timer_id, - void *ignored -) -{ - rtems_status_code status; - - status = rtems_event_send( - Task_id[ rtems_get_index( timer_id ) ], - RTEMS_EVENT_16 - ); - directive_failed( status, "rtems_event_send" ); -} diff --git a/c/src/tests/mptests/mp14/evtask1.c b/c/src/tests/mptests/mp14/evtask1.c deleted file mode 100644 index 6f8175e4d4..0000000000 --- a/c/src/tests/mptests/mp14/evtask1.c +++ /dev/null @@ -1,86 +0,0 @@ -/* Test_task - * - * This task either continuously sends events to a remote task, or - * continuously receives events sent by a remote task. This decision - * is based upon the local node number. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_multiprocessing_table Multiprocessing_configuration; - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 count; - rtems_unsigned32 remote_node; - rtems_id remote_tid; - rtems_event_set event_out; - - remote_node = ((Multiprocessing_configuration.node == 1) ? 2 : 1); - - puts( "About to go to sleep!" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - puts( "Waking up!" ); - - puts_nocr( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - puts( "Getting TID of remote task" ); - while ( FOREVER ) { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - - if ( status == RTEMS_SUCCESSFUL ) - break; - puts( "rtems_task_ident" ); - } - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Sending events to remote task" ); - while ( Stop_Test == FALSE ) { - for ( count=EVENT_TASK_DOT_COUNT; Stop_Test == FALSE && count; count-- ) { - status = rtems_event_send( remote_tid, RTEMS_EVENT_16 ); - directive_failed( status, "rtems_event_send" ); - } - put_dot( 'e' ); - } - } - - puts( "Receiving events from remote task" ); - while ( Stop_Test == FALSE ) { - for ( count=EVENT_TASK_DOT_COUNT ; Stop_Test == FALSE && count ; count-- ) { - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - directive_failed( status, "rtems_event_receive" ); - } - put_dot( 'e' ); - } - - Exit_test(); -} diff --git a/c/src/tests/mptests/mp14/evtmtask.c b/c/src/tests/mptests/mp14/evtmtask.c deleted file mode 100644 index c540eb98fb..0000000000 --- a/c/src/tests/mptests/mp14/evtmtask.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Delayed_events_task - * - * This task continuously sends itself events at one tick - * intervals. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Delayed_events_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - rtems_unsigned32 previous_mode; - rtems_status_code status; - rtems_event_set events; - - status = rtems_task_mode( - RTEMS_PREEMPT | RTEMS_TIMESLICE, - RTEMS_PREEMPT_MASK | RTEMS_TIMESLICE_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - while ( Stop_Test == FALSE ) { - for ( count=DELAYED_EVENT_DOT_COUNT; Stop_Test == FALSE && count; count-- ){ - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 1, - Delayed_send_event, - NULL - ); - directive_failed( status, "rtems_timer_reset" ); - - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &events - ); - directive_failed( status, "rtems_event_receive" ); - } - put_dot('.'); - } - - Exit_test(); -} diff --git a/c/src/tests/mptests/mp14/exit.c b/c/src/tests/mptests/mp14/exit.c deleted file mode 100644 index 65fc0df49f..0000000000 --- a/c/src/tests/mptests/mp14/exit.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Exit_test - * - * This routine safely stops the test and prints some information - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Exit_test( void ) -{ - rtems_status_code status; - rtems_mode old_mode; - - status = rtems_task_mode( RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &old_mode ); - directive_failed( status, "rtems_task_mode" ); - - MPCI_Print_statistics(); - - rtems_shutdown_executive( 0 ); -} diff --git a/c/src/tests/mptests/mp14/init.c b/c/src/tests/mptests/mp14/init.c deleted file mode 100644 index ab403ad395..0000000000 --- a/c/src/tests/mptests/mp14/init.c +++ /dev/null @@ -1,194 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -#include "bsp.h" - -rtems_unsigned8 my_partition[0x30000] CPU_STRUCTURE_ALIGNMENT; - -rtems_timer_service_routine Stop_Test_TSR( - rtems_id ignored_id, - void *ignored_address -) -{ - Stop_Test = TRUE; -} - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority previous_priority; - - printf( - "\n\n*** TEST 14 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Stop_Test = FALSE; - - status = rtems_timer_create( - rtems_build_name('S', 'T', 'O', 'P'), - &timer_id - ); - directive_failed( status, "rtems_timer_create" ); - - status = rtems_timer_fire_after( - timer_id, - MAX_LONG_TEST_DURATION * TICKS_PER_SECOND, - Stop_Test_TSR, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Queue_task_name[ 1 ] = rtems_build_name( 'M', 'T', '1', ' ' ); - Queue_task_name[ 2 ] = rtems_build_name( 'M', 'T', '2', ' ' ); - - Partition_task_name[ 1 ] = rtems_build_name( 'P', 'T', '1', ' ' ); - Partition_task_name[ 2 ] = rtems_build_name( 'P', 'T', '2', ' ' ); - - Semaphore_task_name[ 1 ] = rtems_build_name( 'S', 'M', '1', ' ' ); - Semaphore_task_name[ 2 ] = rtems_build_name( 'S', 'M', '2', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'E', 'M', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'S', 'G', ' ' ); - - Partition_name[ 1 ] = rtems_build_name( 'P', 'A', 'R', ' ' ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', 'R', ' ' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Creating Semaphore (Global)" ); - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_GLOBAL, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - - puts( "Creating Message Queue (Global)" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 1, - RTEMS_GLOBAL, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create" ); - - puts( "Creating Partition (Global)" ); - status = rtems_partition_create( - Partition_name[ 1 ], - (void *)my_partition, - 0x8000, - 0x3800, - RTEMS_GLOBAL, - &Partition_id[ 1 ] - ); - directive_failed( status, "rtems_partition_create" ); - } - - puts( "Creating Event task (Global)" ); - status = rtems_task_create( - Task_name[ Multiprocessing_configuration.node ], - 2, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Event_task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Event task (Global)" ); - status = rtems_task_start( Event_task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Semaphore task (Global)" ); - status = rtems_task_create( - Semaphore_task_name[ Multiprocessing_configuration.node ], - 2, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Semaphore_task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Semaphore task (Global)" ); - status = rtems_task_start( Semaphore_task_id[ 1 ], Semaphore_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Message Queue task (Global)" ); - status = rtems_task_create( - Queue_task_name[ Multiprocessing_configuration.node ], - 2, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Queue_task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - /* argument is index into Buffers */ - puts( "Starting Message Queue task (Global)" ); - status = rtems_task_start( Queue_task_id[ 1 ], Message_queue_task, 1 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Partition task (Global)" ); - status = rtems_task_create( - Partition_task_name[ Multiprocessing_configuration.node ], - 2, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Partition_task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Partition task (Global)" ); - status = rtems_task_start( Partition_task_id[ 1 ], Partition_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_set_priority( RTEMS_SELF, 2, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - status = rtems_task_ident( - RTEMS_SELF, - RTEMS_SEARCH_ALL_NODES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_ident" ); - - Delayed_events_task( 1 ); -} diff --git a/c/src/tests/mptests/mp14/msgtask1.c b/c/src/tests/mptests/mp14/msgtask1.c deleted file mode 100644 index 2a9f6e235b..0000000000 --- a/c/src/tests/mptests/mp14/msgtask1.c +++ /dev/null @@ -1,102 +0,0 @@ -/* Message_queue_task - * - * This task continuously sends messages to and receives messages from - * a global message queue. The message buffer is viewed as an array - * of two sixty-four bit counts which are incremented when a message is - * received. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Message_queue_task( - rtems_task_argument index -) -{ - rtems_status_code status; - rtems_unsigned32 count; - rtems_unsigned32 yield_count; - rtems_unsigned32 *buffer_count; - rtems_unsigned32 *overflow_count; - - Msg_buffer[ index ][0] = 0; - Msg_buffer[ index ][1] = 0; - Msg_buffer[ index ][2] = 0; - Msg_buffer[ index ][3] = 0; - - puts( "Getting ID of msg queue" ); - while ( FOREVER ) { - status = rtems_message_queue_ident( - Queue_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Queue_id[ 1 ] - ); - if ( status == RTEMS_SUCCESSFUL ) - break; - puts( "rtems_message_queue_ident FAILED!!" ); - } - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_message_queue_send( - Queue_id[ 1 ], - (long (*)[4])Msg_buffer[ index ] - ); - directive_failed( status, "rtems_message_queue_send" ); - overflow_count = &Msg_buffer[ index ][0]; - buffer_count = &Msg_buffer[ index ][1]; - } else { - overflow_count = &Msg_buffer[ index ][2]; - buffer_count = &Msg_buffer[ index ][3]; - } - - while ( Stop_Test == FALSE ) { - yield_count = 100; - - for ( count=MESSAGE_DOT_COUNT ; Stop_Test == FALSE && count ; count-- ) { - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])Msg_buffer[ index ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - - if ( *buffer_count == (rtems_unsigned32)0xffffffff ) { - *buffer_count = 0; - *overflow_count += 1; - } else - *buffer_count += 1; - - status = rtems_message_queue_send( - Queue_id[ 1 ], - (long (*)[4])Msg_buffer[ index ] - ); - directive_failed( status, "rtems_message_queue_send" ); - - if (Stop_Test == FALSE) - if ( Multiprocessing_configuration.node == 1 && --yield_count == 0 ) { - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - yield_count = 100; - } - } - put_dot( 'm' ); - } - - Exit_test(); -} diff --git a/c/src/tests/mptests/mp14/node1/mp14.doc b/c/src/tests/mptests/mp14/node1/mp14.doc deleted file mode 100644 index 5ac3f7e47a..0000000000 --- a/c/src/tests/mptests/mp14/node1/mp14.doc +++ /dev/null @@ -1,50 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test63 - -INTERRUPT SATURATION TEST - -directives: - ex_init, ex_start, t_create, t_start, t_ident, tm_tick, - tm_evwhen, tm_wkafter, i_return, ev_send, ev_receive - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies printing of strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies printing of strings to the CRT on port 2 of the mvme136 board - using Write and Writeln and the TTY driver. - - e. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - f. Verifies executive initialization performed correctly. - - g. Verifies the executive trap handler except for the halt function. - - h. Verifies that a task can get the task identification number of itself. - - i. Verifies that a task can get the task identification number - of another task. - - j. Verifies that events can be sent to a remote task. diff --git a/c/src/tests/mptests/mp14/node1/mp14.scn b/c/src/tests/mptests/mp14/node1/mp14.scn deleted file mode 100644 index 98202bc439..0000000000 --- a/c/src/tests/mptests/mp14/node1/mp14.scn +++ /dev/null @@ -1,38 +0,0 @@ -*** TEST 14 -- NODE 1 *** -Creating Semaphore (Global) -Creating Message Queue (Global) -Creating Partition (Global) -Creating Event task (Global) -Starting Event task (Global) -Creating Semaphore task (Global) -About to go to sleep! -Starting Semaphore task (Global) -Creating Message Queue task (Global) -Getting SMID of semaphore -Starting Message Queue task (Global) -Creating Partition task (Global) -Getting ID of msg queue -Starting Partition task (Global) -Getting ID of partition -Waking up! -Remote task's name is : 222 -Getting TID of remote task -Sending events to remote task - - -. - indicates 100 iterations of - tm_evafter of 1 tick and rtems_event_receive. - -e - indicates that 100 - events have been sent to the remote task. - -m - indicates 100 iterations of - rtems_message_queue_send and rtems_message_queue_receive. - -p - indicates 100 iterations of - rtems_partition_get_buffer and rtems_partition_return_buffer. - -s - indicates 100 iterations of - rtems_semaphore_obtain and rtems_semaphore_release. - -NOTE: The messages could be interspersed. diff --git a/c/src/tests/mptests/mp14/node2/mp14.doc b/c/src/tests/mptests/mp14/node2/mp14.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/mptests/mp14/node2/mp14.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/mptests/mp14/node2/mp14.scn b/c/src/tests/mptests/mp14/node2/mp14.scn deleted file mode 100644 index cd82f3c81b..0000000000 --- a/c/src/tests/mptests/mp14/node2/mp14.scn +++ /dev/null @@ -1,35 +0,0 @@ -*** TEST 14 -- NODE 2 *** -Creating Event task (Global) -Starting Event task (Global) -Creating Semaphore task (Global) -About to go to sleep! -Starting Semaphore task (Global) -Creating Message Queue task (Global) -Getting SMID of semaphore -Starting Message Queue task (Global) -Creating Partition task (Global) -Getting ID of msg queue -Starting Partition task (Global) -Getting ID of partition -Waking up! -Remote task's name is : 111 -Getting TID of remote task -Receiving events from remote task - - -. - indicates 100 iterations of - tm_evafter of 1 tick and rtems_event_receive. - -e - indicates that 100 - events have been sent to the remote task. - -m - indicates 100 iterations of - rtems_message_queue_send and rtems_message_queue_receive. - -p - indicates 100 iterations of - rtems_partition_get_buffer and rtems_partition_return_buffer. - -s - indicates 100 iterations of - rtems_semaphore_obtain and rtems_semaphore_release. - -NOTE: The messages could be interspersed. diff --git a/c/src/tests/mptests/mp14/pttask1.c b/c/src/tests/mptests/mp14/pttask1.c deleted file mode 100644 index f6af1b0969..0000000000 --- a/c/src/tests/mptests/mp14/pttask1.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Partition_task - * - * This task continuously gets a buffer from and returns that buffer - * to a global partition. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_multiprocessing_table Multiprocessing_configuration; - -rtems_task Partition_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - rtems_status_code status; - void *buffer; - - puts( "Getting ID of partition" ); - while ( FOREVER ) { - status = rtems_partition_ident( - Partition_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Partition_id[ 1 ] - ); - - if ( status == RTEMS_SUCCESSFUL ) - break; - - puts( "rtems_partition_ident FAILED!!" ); - } - - while ( Stop_Test == FALSE ) { - for ( count=PARTITION_DOT_COUNT ; Stop_Test == FALSE && count ; count-- ) { - status = rtems_partition_get_buffer( Partition_id[ 1 ], &buffer ); - directive_failed( status, "rtems_partition_get_buffer" ); - - status = rtems_partition_return_buffer( Partition_id[ 1 ], buffer ); - directive_failed( status, "rtems_partition_return_buffer" ); - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - } - } - put_dot( 'p' ); - } - - Exit_test(); -} diff --git a/c/src/tests/mptests/mp14/smtask1.c b/c/src/tests/mptests/mp14/smtask1.c deleted file mode 100644 index c4d71c0101..0000000000 --- a/c/src/tests/mptests/mp14/smtask1.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Sm_test_task - * - * This task continuously obtains and releases a global semaphore. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_multiprocessing_table Multiprocessing_configuration; - -rtems_task Semaphore_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - rtems_status_code status; - rtems_unsigned32 yield_count; - - puts( "Getting SMID of semaphore" ); - while ( FOREVER ) { - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Semaphore_id[ 1 ] - ); - if ( status == RTEMS_SUCCESSFUL ) - break; - puts( "rtems_semaphore_ident FAILED!!" ); - } - - while ( Stop_Test == FALSE ) { - yield_count = 100; - - for ( count=SEMAPHORE_DOT_COUNT ; Stop_Test == FALSE && count ; count-- ) { - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); - - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release" ); - - if ( Multiprocessing_configuration.node == 1 && --yield_count == 0 ) { - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - yield_count = 100; - } - } - put_dot( 's' ); - } - - Exit_test(); -} diff --git a/c/src/tests/mptests/mp14/system.h b/c/src/tests/mptests/mp14/system.h deleted file mode 100644 index f2393df080..0000000000 --- a/c/src/tests/mptests/mp14/system.h +++ /dev/null @@ -1,31 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" -#include "mpci.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/samples/README b/c/src/tests/samples/README deleted file mode 100644 index 77a734193f..0000000000 --- a/c/src/tests/samples/README +++ /dev/null @@ -1,71 +0,0 @@ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This directory contains the RTEMS Sample Application Suite. -The tests in this directory perform two functions: - - + provide simple examples of applications which can be - used as a starting point for your application. - - + help test a new board support package - -The hello and ticker applications are useful when first bringing up -a new board support package. The base_mp test is useful when -performing initial checkout on a new MPCI layer. - -The following describes each of the sample applications: - - base_mp - - This is a very simple two node multiprocessor application. It consists - of a single initialization task on each node which print out - their respective node numbers and task IDs. This test can be - used as a simple test of a new MPCI layer because it minimizes - the number of packets sent by RTEMS. - - This is intended as a starting point for custom developed multiprocessor - applications. - - base_sp - - This is a simple single processor application which consists of - an initialization task which creates another task. - - This is intended as a starting point for custom developed single - processor applications. - - cdtest - - A very simple C++ application which demonstrates that it is - possible to use C++ contructors and destructors in an RTEMS - application. Also does a perfunctory iostream test. - - hello - - This is the RTEMS version of the classic hello world program. - It consists of single initialization task which prints out - a few messages. - - This test does not include a Clock Tick device driver and can - be used to test the startup code of the board support package - as well as console output. - - paranoia - - A public domain test of the floating point and math library - capabilities of a toolset. It reports discrepancies between - actual and expected results. It is a large test. - - ticker - - This is a simple test of the user's Clock Tick device driver. - This test has an initialization task create three application - tasks which sleep and periodically wake up and print the time. - diff --git a/c/src/tests/samples/base_mp/apptask.c b/c/src/tests/samples/base_mp/apptask.c deleted file mode 100644 index 04f081ad5c..0000000000 --- a/c/src/tests/samples/base_mp/apptask.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Application_task - * - * This routine is as an example of an application task which - * prints a message including its RTEMS task id. This task - * then invokes exit to return to the monitor. - * - * Input parameters: - * node - processor's node number - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "libcsupport.h" - -rtems_task Application_task( - rtems_task_argument node -) -{ - rtems_id tid; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - printf( "This task was invoked with the node argument (%d)\n", node ); - printf( "This task has the id of 0x%x\n", tid ); - printf( "*** END OF SAMPLE MULTIPROCESSOR APPLICATION ***\n" ); - exit( 0 ); -} diff --git a/c/src/tests/samples/base_mp/init.c b/c/src/tests/samples/base_mp/init.c deleted file mode 100644 index a844d9032b..0000000000 --- a/c/src/tests/samples/base_mp/init.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the application, the current time might be - * set by this task. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "shm.h" -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_name task_name; - rtems_id tid; - rtems_status_code status; - - printf( "\n\n*** SAMPLE MULTIPROCESSOR APPLICATION ***\n" ); - printf( "Creating and starting an application task\n" ); - task_name = rtems_build_name( 'T', 'A', '1', ' ' ); - status = rtems_task_create( task_name, 1, 1024, - RTEMS_INTERRUPT_LEVEL(0), RTEMS_DEFAULT_ATTRIBUTES, &tid ); - status = rtems_task_start( tid, Application_task, Mp_conf_addr.node ); - status = rtems_task_delete( RTEMS_SELF ); -} diff --git a/c/src/tests/samples/base_mp/node1/base_mp.doc b/c/src/tests/samples/base_mp/node1/base_mp.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/samples/base_mp/node1/base_mp.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/samples/base_mp/node1/base_mp.scn b/c/src/tests/samples/base_mp/node1/base_mp.scn deleted file mode 100644 index a2d2f359be..0000000000 --- a/c/src/tests/samples/base_mp/node1/base_mp.scn +++ /dev/null @@ -1,5 +0,0 @@ -*** SAMPLE MULTIPROCESSOR APPLICATION *** -Creating and starting an application task -This task was invoked with the node argument (1) -This task has the id of 0x10002 -*** END OF SAMPLE MULTIPROCESSOR APPLICATION *** diff --git a/c/src/tests/samples/base_mp/node2/base_mp.doc b/c/src/tests/samples/base_mp/node2/base_mp.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/samples/base_mp/node2/base_mp.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/samples/base_mp/node2/base_mp.scn b/c/src/tests/samples/base_mp/node2/base_mp.scn deleted file mode 100644 index 95bc96a808..0000000000 --- a/c/src/tests/samples/base_mp/node2/base_mp.scn +++ /dev/null @@ -1,5 +0,0 @@ -*** SAMPLE MULTIPROCESSOR APPLICATION *** -Creating and starting an application task -This task was invoked with the node argument (2) -This task has the id of 0x20002 -*** END OF SAMPLE MULTIPROCESSOR APPLICATION *** diff --git a/c/src/tests/samples/base_mp/system.h b/c/src/tests/samples/base_mp/system.h deleted file mode 100644 index 47347fe30a..0000000000 --- a/c/src/tests/samples/base_mp/system.h +++ /dev/null @@ -1,31 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stdio.h" -#include "libcsupport.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/samples/base_sp/apptask.c b/c/src/tests/samples/base_sp/apptask.c deleted file mode 100644 index c238d356a6..0000000000 --- a/c/src/tests/samples/base_sp/apptask.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Application_task - * - * This routine is as an example of an application task which - * prints a message including its RTEMS task id. This task - * then invokes exit to return to the monitor. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "libcsupport.h" - -rtems_task Application_task( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - - printf( "Application task was invoked with argument (%d) " - "and has id of 0x%x\n", argument, tid ); - - printf( "*** END OF SAMPLE SINGLE PROCESSOR APPLICATION ***\n" ); - exit( 0 ); -} diff --git a/c/src/tests/samples/base_sp/base_sp.doc b/c/src/tests/samples/base_sp/base_sp.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/samples/base_sp/base_sp.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/samples/base_sp/base_sp.scn b/c/src/tests/samples/base_sp/base_sp.scn deleted file mode 100644 index 117ddaecb8..0000000000 --- a/c/src/tests/samples/base_sp/base_sp.scn +++ /dev/null @@ -1,5 +0,0 @@ -*** SAMPLE SINGLE PROCESSOR APPLICATION *** -Creating and starting an application task -Application task was invoked with argument (0) and has id of 0x10002 -*** END OF SAMPLE SINGLE PROCESSOR APPLICATION *** - diff --git a/c/src/tests/samples/base_sp/init.c b/c/src/tests/samples/base_sp/init.c deleted file mode 100644 index 8c5a533074..0000000000 --- a/c/src/tests/samples/base_sp/init.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the application, the current time might be - * set by this task. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -#define ARGUMENT 0 - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_name task_name; - rtems_id tid; - rtems_status_code status; - - printf( "\n\n*** SAMPLE SINGLE PROCESSOR APPLICATION ***\n" ); - printf( "Creating and starting an application task\n" ); - - task_name = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( task_name, 1, 1024, - RTEMS_INTERRUPT_LEVEL(0), RTEMS_DEFAULT_ATTRIBUTES, &tid ); - - status = rtems_task_start( tid, Application_task, ARGUMENT ); - - status = rtems_task_delete( RTEMS_SELF ); -} diff --git a/c/src/tests/samples/base_sp/system.h b/c/src/tests/samples/base_sp/system.h deleted file mode 100644 index 88e60beb9a..0000000000 --- a/c/src/tests/samples/base_sp/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stdio.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/samples/cdtest/cdtest.scn b/c/src/tests/samples/cdtest/cdtest.scn deleted file mode 100644 index a832a72372..0000000000 --- a/c/src/tests/samples/cdtest/cdtest.scn +++ /dev/null @@ -1,31 +0,0 @@ -Hey I'm in base class constructor number 1 for 0x400010cc. -Hey I'm in base class constructor number 2 for 0x400010d4. -Hey I'm in derived class constructor number 3 for 0x400010d4. - - -*** CONSTRUCTOR/DESTRUCTOR TEST *** -Hey I'm in base class constructor number 4 for 0x4009ee08. -Hey I'm in base class constructor number 5 for 0x4009ee10. -Hey I'm in base class constructor number 6 for 0x4009ee18. -Hey I'm in base class constructor number 7 for 0x4009ee20. -Hey I'm in derived class constructor number 8 for 0x4009ee20. -Testing a C++ I/O stream -Hey I'm in derived class destructor number 8 for 0x4009ee20. -Derived class - Instantiation order 8 -Hey I'm in base class destructor number 7 for 0x4009ee20. -Instantiation order 8 -Hey I'm in base class destructor number 6 for 0x4009ee18. -Instantiation order 6 -Hey I'm in base class destructor number 5 for 0x4009ee10. -Instantiation order 5 -Hey I'm in base class destructor number 4 for 0x4009ee08. -Instantiation order 5 -*** END OF CONSTRUCTOR/DESTRUCTOR TEST *** - - -Hey I'm in derived class destructor number 3 for 0x400010d4. -Derived class - Instantiation order 3 -Hey I'm in base class destructor number 2 for 0x400010d4. -Instantiation order 3 -Hey I'm in base class destructor number 1 for 0x400010cc. -Instantiation order 1 diff --git a/c/src/tests/samples/cdtest/init.c b/c/src/tests/samples/cdtest/init.c deleted file mode 100644 index c233918d61..0000000000 --- a/c/src/tests/samples/cdtest/init.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" -#include -#include "libcsupport.h" diff --git a/c/src/tests/samples/cdtest/main.cc b/c/src/tests/samples/cdtest/main.cc deleted file mode 100644 index 1a12431701..0000000000 --- a/c/src/tests/samples/cdtest/main.cc +++ /dev/null @@ -1,146 +0,0 @@ -/* main - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * Based in part on OAR works. - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * $Id$ - */ - -#include -#include -#include -#include - -extern "C" { -extern rtems_task main_task(rtems_task_argument); -} - -static int num_inst = 0; - -class A { -public: - A(void) - { - num_inst++; - printf( - "Hey I'm in base class constructor number %d for %p.\n", - num_inst, - this - ); - - /* - * Make sure we use some space - */ - - string = new char[50]; - sprintf(string, "Instantiation order %d", num_inst); - }; - - virtual ~A() - { - printf( - "Hey I'm in base class destructor number %d for %p.\n", - num_inst, - this - ); - print(); - num_inst--; - }; - - virtual void print() { printf("%s\n", string); }; - -protected: - char *string; -}; - -class B : public A { -public: - B(void) - { - num_inst++; - printf( - "Hey I'm in derived class constructor number %d for %p.\n", - num_inst, - this - ); - - /* - * Make sure we use some space - */ - - string = new char[50]; - sprintf(string, "Instantiation order %d", num_inst); - }; - - ~B() - { - printf( - "Hey I'm in derived class destructor number %d for %p.\n", - num_inst, - this - ); - print(); - num_inst--; - }; - - void print() { printf("Derived class - %s\n", string); } -}; - - -A foo; -B foobar; - -void -cdtest(void) -{ - A bar, blech, blah; - B bleak; - - cout << "Testing a C++ I/O stream" << endl; - - bar = blech; -} - -// -// main equivalent -// It can not be called 'main' since the bsp owns that name -// in many implementations in order to get global constructors -// run. -// -// Ref: c/src/lib/libbsp/hppa1_1/simhppa/startup/bspstart.c -// - - -rtems_task main_task( - rtems_task_argument ignored -) -{ - printf( "\n\n*** CONSTRUCTOR/DESTRUCTOR TEST ***\n" ); - - cdtest(); - - printf( "*** END OF CONSTRUCTOR/DESTRUCTOR TEST ***\n\n\n" ); - - exit(0); -} diff --git a/c/src/tests/samples/cdtest/system.h b/c/src/tests/samples/cdtest/system.h deleted file mode 100644 index 88e60beb9a..0000000000 --- a/c/src/tests/samples/cdtest/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stdio.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/samples/hello/hello.doc b/c/src/tests/samples/hello/hello.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/samples/hello/hello.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/samples/hello/hello.scn b/c/src/tests/samples/hello/hello.scn deleted file mode 100644 index d9e92d81d5..0000000000 --- a/c/src/tests/samples/hello/hello.scn +++ /dev/null @@ -1,3 +0,0 @@ -*** HELLO WORLD TEST *** -Hello World -*** END OF HELLO WORLD TEST *** diff --git a/c/src/tests/samples/hello/init.c b/c/src/tests/samples/hello/init.c deleted file mode 100644 index f85562c238..0000000000 --- a/c/src/tests/samples/hello/init.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" -#include -#include "libcsupport.h" - - -rtems_task Init( - rtems_task_argument ignored -) -{ - printf( "\n\n*** HELLO WORLD TEST ***\n" ); - printf( "Hello World\n" ); - printf( "*** END OF HELLO WORLD TEST ***\n" ); - exit( 0 ); -} diff --git a/c/src/tests/samples/hello/system.h b/c/src/tests/samples/hello/system.h deleted file mode 100644 index 88e60beb9a..0000000000 --- a/c/src/tests/samples/hello/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stdio.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/samples/paranoia/init.c b/c/src/tests/samples/paranoia/init.c deleted file mode 100644 index 4e9c9cde09..0000000000 --- a/c/src/tests/samples/paranoia/init.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" -#include "libcsupport.h" - -extern int paranoia(int, char **); - -char *args[2] = { "paranoia", 0 }; - -rtems_task Init( - rtems_task_argument ignored -) -{ - printf( "\n\n*** PARANOIA TEST ***\n" ); - paranoia(1, args); - printf( "*** END OF PARANOIA TEST ***\n" ); - exit( 0 ); -} diff --git a/c/src/tests/samples/paranoia/paranoia.c b/c/src/tests/samples/paranoia/paranoia.c deleted file mode 100644 index 64ebdc7e5e..0000000000 --- a/c/src/tests/samples/paranoia/paranoia.c +++ /dev/null @@ -1,2300 +0,0 @@ -/* - * RTEMS RCS Id: $Id$ - * - * A C version of Kahan's Floating Point Test "Paranoia" - * - * Thos Sumner, UCSF, Feb. 1985 - * David Gay, BTL, Jan. 1986 - * - * This is a rewrite from the Pascal version by - * - * B. A. Wichmann, 18 Jan. 1985 - * - * (and does NOT exhibit good C programming style). - * - * Sun May 16 18:21:51 MDT 1993 Jeffrey Wheat (cassidy@cygnus.com) - * Removed KR_headers defines, removed ANSI prototyping - * Cleaned up and reformated code. Added special CYGNUS - * "verbose" mode type messages (-DCYGNUS). - * Note: This code is VERY NASTY. - * - * Adjusted to use Standard C headers 19 Jan. 1992 (dmg); - * compile with -DKR_headers or insert - * #define KR_headers - * at the beginning if you have an old-style C compiler. - * - * (C) Apr 19 1983 in BASIC version by: - * Professor W. M. Kahan, - * 567 Evans Hall - * Electrical Engineering & Computer Science Dept. - * University of California - * Berkeley, California 94720 - * USA - * - * converted to Pascal by: - * B. A. Wichmann - * National Physical Laboratory - * Teddington Middx - * TW11 OLW - * UK - * - * converted to C by: - * - * David M. Gay and Thos Sumner - * AT&T Bell Labs Computer Center, Rm. U-76 - * 600 Mountain Avenue University of California - * Murray Hill, NJ 07974 San Francisco, CA 94143 - * USA USA - * - * with simultaneous corrections to the Pascal source (reflected - * in the Pascal source available over netlib). - * [A couple of bug fixes from dgh = sun!dhough incorporated 31 July 1986.] - * - * Reports of results on various systems from all the versions - * of Paranoia are being collected by Richard Karpinski at the - * same address as Thos Sumner. This includes sample outputs, - * bug reports, and criticisms. - * - * You may copy this program freely if you acknowledge its source. - * Comments on the Pascal version to NPL, please. - * - * - * The C version catches signals from floating-point exceptions. - * If signal(SIGFPE,...) is unavailable in your environment, you may - * #define NOSIGNAL to comment out the invocations of signal. - * - * This source file is too big for some C compilers, but may be split - * into pieces. Comments containing "SPLIT" suggest convenient places - * for this splitting. At the end of these comments is an "ed script" - * (for the UNIX(tm) editor ed) that will do this splitting. - * - * By #defining SINGLE_PRECISION when you compile this source, you may - * obtain a single-precision C version of Paranoia. - * - * The following is from the introductory commentary from Wichmann's work: - * - * The BASIC program of Kahan is written in Microsoft BASIC using many - * facilities which have no exact analogy in Pascal. The Pascal - * version below cannot therefore be exactly the same. Rather than be - * a minimal transcription of the BASIC program, the Pascal coding - * follows the conventional style of block-structured languages. Hence - * the Pascal version could be useful in producing versions in other - * structured languages. - * - * Rather than use identifiers of minimal length (which therefore have - * little mnemonic significance), the Pascal version uses meaningful - * identifiers as follows [Note: A few changes have been made for C]: - * - * - * BASIC C BASIC C BASIC C - * - * A J S StickyBit - * A1 AInverse J0 NoErrors T - * B Radix [Failure] T0 Underflow - * B1 BInverse J1 NoErrors T2 ThirtyTwo - * B2 RadixD2 [SeriousDefect] T5 OneAndHalf - * B9 BMinusU2 J2 NoErrors T7 TwentySeven - * C [Defect] T8 TwoForty - * C1 CInverse J3 NoErrors U OneUlp - * D [Flaw] U0 UnderflowThreshold - * D4 FourD K PageNo U1 - * E0 L Milestone U2 - * E1 M V - * E2 Exp2 N V0 - * E3 N1 V8 - * E5 MinSqEr O Zero V9 - * E6 SqEr O1 One W - * E7 MaxSqEr O2 Two X - * E8 O3 Three X1 - * E9 O4 Four X8 - * F1 MinusOne O5 Five X9 Random1 - * F2 Half O8 Eight Y - * F3 Third O9 Nine Y1 - * F6 P Precision Y2 - * F9 Q Y9 Random2 - * G1 GMult Q8 Z - * G2 GDiv Q9 Z0 PseudoZero - * G3 GAddSub R Z1 - * H R1 RMult Z2 - * H1 HInverse R2 RDiv Z9 - * I R3 RAddSub - * IO NoTrials R4 RSqrt - * I3 IEEE R9 Random9 - * - * SqRWrng - * - * All the variables in BASIC are true variables and in consequence, - * the program is more difficult to follow since the "constants" must - * be determined (the glossary is very helpful). The Pascal version - * uses Real constants, but checks are added to ensure that the values - * are correctly converted by the compiler. - * - * The major textual change to the Pascal version apart from the - * identifiersis that named procedures are used, inserting parameters - * wherehelpful. New procedures are also introduced. The - * correspondence is as follows: - * - * - * BASIC Pascal - * lines - * - * 90- 140 Pause - * 170- 250 Instructions - * 380- 460 Heading - * 480- 670 Characteristics - * 690- 870 History - * 2940-2950 Random - * 3710-3740 NewD - * 4040-4080 DoesYequalX - * 4090-4110 PrintIfNPositive - * 4640-4850 TestPartialUnderflow - * -*/ - -#include -#include - -/* - * To compile this on host using only libm from newlib (and using host libc) - * do: - * gcc -g -DNEED_REENT -DCYGNUS paranoia.c .../newlib-1.6/newlib/libm.a - */ - -#ifdef NEED_REENT -#include "reent.h" -struct _reent libm_reent = _REENT_INIT(libm_reent); -struct _reent *_impure_ptr = &libm_reent; -#endif - -#ifndef NOSIGNAL -#include -#include -#else /* NOSIGNAL */ -#define longjmp(e,v) -#define setjmp(e) 0 -#define jmp_buf int -#endif /* NOSIGNAL */ - -#ifdef SINGLE_PRECISION -#define FLOAT float -#define FABS(x) (float)fabs((double)(x)) -#define FLOOR(x) (float)floor((double)(x)) -#define LOG(x) (float)log((double)(x)) -#define POW(x,y) (float)pow((double)(x),(double)(y)) -#define SQRT(x) (float)sqrt((double)(x)) -#else /* !SINGLE_PRECISION */ -#define FLOAT double -#define FABS(x) fabs(x) -#define FLOOR(x) floor(x) -#define LOG(x) log(x) -#define POW(x,y) pow(x,y) -#define SQRT(x) sqrt(x) -#endif /* SINGLE_PRECISION */ - -jmp_buf ovfl_buf; -extern double fabs (), floor (), log (), pow (), sqrt (); -extern void exit (); -typedef void (*Sig_type) (); -FLOAT Sign (), Random (); -extern void BadCond (); -extern void SqXMinX (); -extern void TstCond (); -extern void notify (); -extern int read (); -extern void Characteristics (); -extern void Heading (); -extern void History (); -extern void Instructions (); -extern void IsYeqX (); -extern void NewD (); -extern void Pause (); -extern void PrintIfNPositive (); -extern void SR3750 (); -extern void SR3980 (); -extern void TstPtUf (); - -Sig_type sigsave; - -#define KEYBOARD 0 - -FLOAT Radix, BInvrse, RadixD2, BMinusU2; - -/*Small floating point constants.*/ -FLOAT Zero = 0.0; -FLOAT Half = 0.5; -FLOAT One = 1.0; -FLOAT Two = 2.0; -FLOAT Three = 3.0; -FLOAT Four = 4.0; -FLOAT Five = 5.0; -FLOAT Eight = 8.0; -FLOAT Nine = 9.0; -FLOAT TwentySeven = 27.0; -FLOAT ThirtyTwo = 32.0; -FLOAT TwoForty = 240.0; -FLOAT MinusOne = -1.0; -FLOAT OneAndHalf = 1.5; - -/*Integer constants*/ -int NoTrials = 20; /*Number of tests for commutativity. */ -#define False 0 -#define True 1 - -/* - * Definitions for declared types - * Guard == (Yes, No); - * Rounding == (Chopped, Rounded, Other); - * Message == packed array [1..40] of char; - * Class == (Flaw, Defect, Serious, Failure); - */ -#define Yes 1 -#define No 0 -#define Chopped 2 -#define Rounded 1 -#define Other 0 -#define Flaw 3 -#define Defect 2 -#define Serious 1 -#define Failure 0 -typedef int Guard, Rounding, Class; -typedef char Message; - -/* Declarations of Variables */ -int Indx; -char ch[8]; -FLOAT AInvrse, A1; -FLOAT C, CInvrse; -FLOAT D, FourD; -FLOAT E0, E1, Exp2, E3, MinSqEr; -FLOAT SqEr, MaxSqEr, E9; -FLOAT Third; -FLOAT F6, F9; -FLOAT H, HInvrse; -int I; -FLOAT StickyBit, J; -FLOAT MyZero; -FLOAT Precision; -FLOAT Q, Q9; -FLOAT R, Random9; -FLOAT T, Underflow, S; -FLOAT OneUlp, UfThold, U1, U2; -FLOAT V, V0, V9; -FLOAT W; -FLOAT X, X1, X2, X8, Random1; -FLOAT Y, Y1, Y2, Random2; -FLOAT Z, PseudoZero, Z1, Z2, Z9; -int ErrCnt[4]; -int fpecount; -int Milestone; -int PageNo; -int M, N, N1; -Guard GMult, GDiv, GAddSub; -Rounding RMult, RDiv, RAddSub, RSqrt; -int Break, Done, NotMonot, Monot, Anomaly, IEEE, SqRWrng, UfNGrad; - -/* Computed constants. - * U1 gap below 1.0, i.e, 1.0 - U1 is next number below 1.0 - * U2 gap above 1.0, i.e, 1.0 + U2 is next number above 1.0 - */ - -int batchmode; /* global batchmode test */ - -/* program name and version variables and macro */ -char *temp; -char *program_name; -char *program_vers; - -#ifndef VERSION -#define VERSION "1.1 [cygnus]" -#endif /* VERSION */ - -#define basename(cp) ((temp=(char *)strrchr((cp), '/')) ? temp+1 : (cp)) - -#ifndef BATCHMODE -# ifdef CYGNUS -# define BATCHMODE -# endif -#endif - -/* floating point exception receiver */ -void -_sigfpe (x) -int x; -{ - fpecount++; - printf ("\n* * * FLOATING-POINT ERROR %d * * *\n", x); - fflush (stdout); - if (sigsave) { -#ifndef NOSIGNAL - signal (SIGFPE, sigsave); -#endif /* NOSIGNAL */ - sigsave = 0; - longjmp (ovfl_buf, 1); - } - exit (1); -} - -#ifdef NOMAIN -#define main paranoia -#endif - -int -main (argc, argv) -int argc; -char **argv; -{ - /* First two assignments use integer right-hand sides. */ - Zero = 0; - One = 1; - Two = One + One; - Three = Two + One; - Four = Three + One; - Five = Four + One; - Eight = Four + Four; - Nine = Three * Three; - TwentySeven = Nine * Three; - ThirtyTwo = Four * Eight; - TwoForty = Four * Five * Three * Four; - MinusOne = -One; - Half = One / Two; - OneAndHalf = One + Half; - ErrCnt[Failure] = 0; - ErrCnt[Serious] = 0; - ErrCnt[Defect] = 0; - ErrCnt[Flaw] = 0; - PageNo = 1; - -#ifdef BATCHMODE - batchmode = 1; /* run test in batchmode? */ -#else /* !BATCHMODE */ - batchmode = 0; /* run test interactively */ -#endif /* BATCHMODE */ - - program_name = basename (argv[0]); - program_vers = VERSION; - - printf ("%s version %s\n", program_name, program_vers); - - /*=============================================*/ - Milestone = 0; - /*=============================================*/ -#ifndef NOSIGNAL - signal (SIGFPE, _sigfpe); -#endif - - if (!batchmode) { - Instructions (); - Pause (); - Heading (); - Instructions (); - Pause (); - Heading (); - Pause (); - Characteristics (); - Pause (); - History (); - Pause (); - } - - /*=============================================*/ - Milestone = 7; - /*=============================================*/ - printf ("Program is now RUNNING tests on small integers:\n"); - TstCond (Failure, (Zero + Zero == Zero) && (One - One == Zero) - && (One > Zero) && (One + One == Two), - "0+0 != 0, 1-1 != 0, 1 <= 0, or 1+1 != 2"); - Z = -Zero; - if (Z != 0.0) { - ErrCnt[Failure] = ErrCnt[Failure] + 1; - printf ("Comparison alleges that -0.0 is Non-zero!\n"); - U1 = 0.001; - Radix = 1; - TstPtUf (); - } - TstCond (Failure, (Three == Two + One) && (Four == Three + One) - && (Four + Two * (-Two) == Zero) - && (Four - Three - One == Zero), - "3 != 2+1, 4 != 3+1, 4+2*(-2) != 0, or 4-3-1 != 0"); - TstCond (Failure, (MinusOne == (0 - One)) - && (MinusOne + One == Zero) && (One + MinusOne == Zero) - && (MinusOne + FABS (One) == Zero) - && (MinusOne + MinusOne * MinusOne == Zero), - "-1+1 != 0, (-1)+abs(1) != 0, or -1+(-1)*(-1) != 0"); - TstCond (Failure, Half + MinusOne + Half == Zero, - "1/2 + (-1) + 1/2 != 0"); - /*=============================================*/ - Milestone = 10; - /*=============================================*/ - TstCond (Failure, (Nine == Three * Three) - && (TwentySeven == Nine * Three) && (Eight == Four + Four) - && (ThirtyTwo == Eight * Four) - && (ThirtyTwo - TwentySeven - Four - One == Zero), - "9 != 3*3, 27 != 9*3, 32 != 8*4, or 32-27-4-1 != 0"); - TstCond (Failure, (Five == Four + One) && - (TwoForty == Four * Five * Three * Four) - && (TwoForty / Three - Four * Four * Five == Zero) - && (TwoForty / Four - Five * Three * Four == Zero) - && (TwoForty / Five - Four * Three * Four == Zero), - "5 != 4+1, 240/3 != 80, 240/4 != 60, or 240/5 != 48"); - if (ErrCnt[Failure] == 0) { - printf ("-1, 0, 1/2, 1, 2, 3, 4, 5, 9, 27, 32 & 240 are O.K.\n"); - printf ("\n"); - } - printf ("Searching for Radix and Precision.\n"); - W = One; - do { - W = W + W; - Y = W + One; - Z = Y - W; - Y = Z - One; - } - while (MinusOne + FABS (Y) < Zero); - /*.. now W is just big enough that |((W+1)-W)-1| >= 1 ...*/ - Precision = Zero; - Y = One; - do { - Radix = W + Y; - Y = Y + Y; - Radix = Radix - W; - } - while (Radix == Zero); - if (Radix < Two) - Radix = One; - printf ("Radix = %f .\n", Radix); - if (Radix != 1) { - W = One; - do { - Precision = Precision + One; - W = W * Radix; - Y = W + One; - } - while ((Y - W) == One); - } - /*... now W == Radix^Precision is barely too big to satisfy (W+1)-W == 1 - ...*/ - U1 = One / W; - U2 = Radix * U1; - printf ("Closest relative separation found is U1 = %.7e .\n\n", U1); - printf ("Recalculating radix and precision\n "); - - /*save old values*/ - E0 = Radix; - E1 = U1; - E9 = U2; - E3 = Precision; - - X = Four / Three; - Third = X - One; - F6 = Half - Third; - X = F6 + F6; - X = FABS (X - Third); - if (X < U2) - X = U2; - - /*... now X = (unknown no.) ulps of 1+...*/ - do { - U2 = X; - Y = Half * U2 + ThirtyTwo * U2 * U2; - Y = One + Y; - X = Y - One; - } - while (!((U2 <= X) || (X <= Zero))); - - /*... now U2 == 1 ulp of 1 + ... */ - X = Two / Three; - F6 = X - Half; - Third = F6 + F6; - X = Third - Half; - X = FABS (X + F6); - if (X < U1) - X = U1; - - /*... now X == (unknown no.) ulps of 1 -... */ - do { - U1 = X; - Y = Half * U1 + ThirtyTwo * U1 * U1; - Y = Half - Y; - X = Half + Y; - Y = Half - X; - X = Half + Y; - } - while (!((U1 <= X) || (X <= Zero))); - /*... now U1 == 1 ulp of 1 - ... */ - if (U1 == E1) - printf ("confirms closest relative separation U1 .\n"); - else - printf ("gets better closest relative separation U1 = %.7e .\n", U1); - W = One / U1; - F9 = (Half - U1) + Half; - Radix = FLOOR (0.01 + U2 / U1); - if (Radix == E0) - printf ("Radix confirmed.\n"); - else - printf ("MYSTERY: recalculated Radix = %.7e .\n", Radix); - TstCond (Defect, Radix <= Eight + Eight, - "Radix is too big: roundoff problems"); - TstCond (Flaw, (Radix == Two) || (Radix == 10) - || (Radix == One), "Radix is not as good as 2 or 10"); - /*=============================================*/ - Milestone = 20; - /*=============================================*/ - TstCond (Failure, F9 - Half < Half, - "(1-U1)-1/2 < 1/2 is FALSE, prog. fails?"); - X = F9; - I = 1; - Y = X - Half; - Z = Y - Half; - TstCond (Failure, (X != One) - || (Z == Zero), "Comparison is fuzzy,X=1 but X-1/2-1/2 != 0"); - X = One + U2; - I = 0; - /*=============================================*/ - Milestone = 25; - /*=============================================*/ - /*... BMinusU2 = nextafter(Radix, 0) */ - BMinusU2 = Radix - One; - BMinusU2 = (BMinusU2 - U2) + One; - /* Purify Integers */ - if (Radix != One) { - X = -TwoForty * LOG (U1) / LOG (Radix); - Y = FLOOR (Half + X); - if (FABS (X - Y) * Four < One) - X = Y; - Precision = X / TwoForty; - Y = FLOOR (Half + Precision); - if (FABS (Precision - Y) * TwoForty < Half) - Precision = Y; - } - if ((Precision != FLOOR (Precision)) || (Radix == One)) { - printf ("Precision cannot be characterized by an Integer number\n"); - printf ("of significant digits but, by itself, this is a minor flaw.\n"); - } - if (Radix == One) - printf ("logarithmic encoding has precision characterized solely by U1.\n"); - else - printf ("The number of significant digits of the Radix is %f .\n", - Precision); - TstCond (Serious, U2 * Nine * Nine * TwoForty < One, - "Precision worse than 5 decimal figures "); - /*=============================================*/ - Milestone = 30; - /*=============================================*/ - /* Test for extra-precise subepressions */ - X = FABS (((Four / Three - One) - One / Four) * Three - One / Four); - do { - Z2 = X; - X = (One + (Half * Z2 + ThirtyTwo * Z2 * Z2)) - One; - } - while (!((Z2 <= X) || (X <= Zero))); - X = Y = Z = FABS ((Three / Four - Two / Three) * Three - One / Four); - do { - Z1 = Z; - Z = (One / Two - ((One / Two - (Half * Z1 + ThirtyTwo * Z1 * Z1)) - + One / Two)) + One / Two; - } - while (!((Z1 <= Z) || (Z <= Zero))); - do { - do { - Y1 = Y; - Y = (Half - ((Half - (Half * Y1 + ThirtyTwo * Y1 * Y1)) + Half - )) + Half; - } - while (!((Y1 <= Y) || (Y <= Zero))); - X1 = X; - X = ((Half * X1 + ThirtyTwo * X1 * X1) - F9) + F9; - } - while (!((X1 <= X) || (X <= Zero))); - if ((X1 != Y1) || (X1 != Z1)) { - BadCond (Serious, "Disagreements among the values X1, Y1, Z1,\n"); - printf ("respectively %.7e, %.7e, %.7e,\n", X1, Y1, Z1); - printf ("are symptoms of inconsistencies introduced\n"); - printf ("by extra-precise evaluation of arithmetic subexpressions.\n"); - notify ("Possibly some part of this"); - if ((X1 == U1) || (Y1 == U1) || (Z1 == U1)) - printf ( - "That feature is not tested further by this program.\n"); - } else { - if ((Z1 != U1) || (Z2 != U2)) { - if ((Z1 >= U1) || (Z2 >= U2)) { - BadCond (Failure, ""); - notify ("Precision"); - printf ("\tU1 = %.7e, Z1 - U1 = %.7e\n", U1, Z1 - U1); - printf ("\tU2 = %.7e, Z2 - U2 = %.7e\n", U2, Z2 - U2); - } else { - if ((Z1 <= Zero) || (Z2 <= Zero)) { - printf ("Because of unusual Radix = %f", Radix); - printf (", or exact rational arithmetic a result\n"); - printf ("Z1 = %.7e, or Z2 = %.7e ", Z1, Z2); - notify ("of an\nextra-precision"); - } - if (Z1 != Z2 || Z1 > Zero) { - X = Z1 / U1; - Y = Z2 / U2; - if (Y > X) - X = Y; - Q = -LOG (X); - printf ("Some subexpressions appear to be calculated extra\n"); - printf ("precisely with about %g extra B-digits, i.e.\n", - (Q / LOG (Radix))); - printf ("roughly %g extra significant decimals.\n", - Q / LOG (10.)); - } - printf ("That feature is not tested further by this program.\n"); - } - } - } - Pause (); - /*=============================================*/ - Milestone = 35; - /*=============================================*/ - if (Radix >= Two) { - X = W / (Radix * Radix); - Y = X + One; - Z = Y - X; - T = Z + U2; - X = T - Z; - TstCond (Failure, X == U2, - "Subtraction is not normalized X=Y,X+Z != Y+Z!"); - if (X == U2) - printf ( - "Subtraction appears to be normalized, as it should be."); - } - printf ("\nChecking for guard digit in *, /, and -.\n"); - Y = F9 * One; - Z = One * F9; - X = F9 - Half; - Y = (Y - Half) - X; - Z = (Z - Half) - X; - X = One + U2; - T = X * Radix; - R = Radix * X; - X = T - Radix; - X = X - Radix * U2; - T = R - Radix; - T = T - Radix * U2; - X = X * (Radix - One); - T = T * (Radix - One); - if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T == Zero)) - GMult = Yes; - else { - GMult = No; - TstCond (Serious, False, - "* lacks a Guard Digit, so 1*X != X"); - } - Z = Radix * U2; - X = One + Z; - Y = FABS ((X + Z) - X * X) - U2; - X = One - U2; - Z = FABS ((X - U2) - X * X) - U1; - TstCond (Failure, (Y <= Zero) - && (Z <= Zero), "* gets too many final digits wrong.\n"); - Y = One - U2; - X = One + U2; - Z = One / Y; - Y = Z - X; - X = One / Three; - Z = Three / Nine; - X = X - Z; - T = Nine / TwentySeven; - Z = Z - T; - TstCond (Defect, X == Zero && Y == Zero && Z == Zero, - "Division lacks a Guard Digit, so error can exceed 1 ulp\n\ -or 1/3 and 3/9 and 9/27 may disagree"); - Y = F9 / One; - X = F9 - Half; - Y = (Y - Half) - X; - X = One + U2; - T = X / One; - X = T - X; - if ((X == Zero) && (Y == Zero) && (Z == Zero)) - GDiv = Yes; - else { - GDiv = No; - TstCond (Serious, False, - "Division lacks a Guard Digit, so X/1 != X"); - } - X = One / (One + U2); - Y = X - Half - Half; - TstCond (Serious, Y < Zero, - "Computed value of 1/1.000..1 >= 1"); - X = One - U2; - Y = One + Radix * U2; - Z = X * Radix; - T = Y * Radix; - R = Z / Radix; - StickyBit = T / Radix; - X = R - X; - Y = StickyBit - Y; - TstCond (Failure, X == Zero && Y == Zero, - "* and/or / gets too many last digits wrong"); - Y = One - U1; - X = One - F9; - Y = One - Y; - T = Radix - U2; - Z = Radix - BMinusU2; - T = Radix - T; - if ((X == U1) && (Y == U1) && (Z == U2) && (T == U2)) - GAddSub = Yes; - else { - GAddSub = No; - TstCond (Serious, False, - "- lacks Guard Digit, so cancellation is obscured"); - } - if (F9 != One && F9 - One >= Zero) { - BadCond (Serious, "comparison alleges (1-U1) < 1 although\n"); - printf (" subtraction yields (1-U1) - 1 = 0 , thereby vitiating\n"); - printf (" such precautions against division by zero as\n"); - printf (" ... if (X == 1.0) {.....} else {.../(X-1.0)...}\n"); - } - if (GMult == Yes && GDiv == Yes && GAddSub == Yes) - printf ( - " *, /, and - appear to have guard digits, as they should.\n"); - /*=============================================*/ - Milestone = 40; - /*=============================================*/ - Pause (); - printf ("Checking rounding on multiply, divide and add/subtract.\n"); - RMult = Other; - RDiv = Other; - RAddSub = Other; - RadixD2 = Radix / Two; - A1 = Two; - Done = False; - do { - AInvrse = Radix; - do { - X = AInvrse; - AInvrse = AInvrse / A1; - } - while (!(FLOOR (AInvrse) != AInvrse)); - Done = (X == One) || (A1 > Three); - if (!Done) - A1 = Nine + One; - } - while (!(Done)); - if (X == One) - A1 = Radix; - AInvrse = One / A1; - X = A1; - Y = AInvrse; - Done = False; - do { - Z = X * Y - Half; - TstCond (Failure, Z == Half, - "X * (1/X) differs from 1"); - Done = X == Radix; - X = Radix; - Y = One / X; - } - while (!(Done)); - Y2 = One + U2; - Y1 = One - U2; - X = OneAndHalf - U2; - Y = OneAndHalf + U2; - Z = (X - U2) * Y2; - T = Y * Y1; - Z = Z - X; - T = T - X; - X = X * Y2; - Y = (Y + U2) * Y1; - X = X - OneAndHalf; - Y = Y - OneAndHalf; - if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T <= Zero)) { - X = (OneAndHalf + U2) * Y2; - Y = OneAndHalf - U2 - U2; - Z = OneAndHalf + U2 + U2; - T = (OneAndHalf - U2) * Y1; - X = X - (Z + U2); - StickyBit = Y * Y1; - S = Z * Y2; - T = T - Y; - Y = (U2 - Y) + StickyBit; - Z = S - (Z + U2 + U2); - StickyBit = (Y2 + U2) * Y1; - Y1 = Y2 * Y1; - StickyBit = StickyBit - Y2; - Y1 = Y1 - Half; - if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T == Zero) - && (StickyBit == Zero) && (Y1 == Half)) { - RMult = Rounded; - printf ("Multiplication appears to round correctly.\n"); - } else if ((X + U2 == Zero) && (Y < Zero) && (Z + U2 == Zero) - && (T < Zero) && (StickyBit + U2 == Zero) - && (Y1 < Half)) { - RMult = Chopped; - printf ("Multiplication appears to chop.\n"); - } else - printf ("* is neither chopped nor correctly rounded.\n"); - if ((RMult == Rounded) && (GMult == No)) - notify ("Multiplication"); - } else - printf ("* is neither chopped nor correctly rounded.\n"); - /*=============================================*/ - Milestone = 45; - /*=============================================*/ - Y2 = One + U2; - Y1 = One - U2; - Z = OneAndHalf + U2 + U2; - X = Z / Y2; - T = OneAndHalf - U2 - U2; - Y = (T - U2) / Y1; - Z = (Z + U2) / Y2; - X = X - OneAndHalf; - Y = Y - T; - T = T / Y1; - Z = Z - (OneAndHalf + U2); - T = (U2 - OneAndHalf) + T; - if (!((X > Zero) || (Y > Zero) || (Z > Zero) || (T > Zero))) { - X = OneAndHalf / Y2; - Y = OneAndHalf - U2; - Z = OneAndHalf + U2; - X = X - Y; - T = OneAndHalf / Y1; - Y = Y / Y1; - T = T - (Z + U2); - Y = Y - Z; - Z = Z / Y2; - Y1 = (Y2 + U2) / Y2; - Z = Z - OneAndHalf; - Y2 = Y1 - Y2; - Y1 = (F9 - U1) / F9; - if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T == Zero) - && (Y2 == Zero) && (Y2 == Zero) - && (Y1 - Half == F9 - Half)) { - RDiv = Rounded; - printf ("Division appears to round correctly.\n"); - if (GDiv == No) - notify ("Division"); - } else if ((X < Zero) && (Y < Zero) && (Z < Zero) && (T < Zero) - && (Y2 < Zero) && (Y1 - Half < F9 - Half)) { - RDiv = Chopped; - printf ("Division appears to chop.\n"); - } - } - if (RDiv == Other) - printf ("/ is neither chopped nor correctly rounded.\n"); - BInvrse = One / Radix; - TstCond (Failure, (BInvrse * Radix - Half == Half), - "Radix * ( 1 / Radix ) differs from 1"); - /*=============================================*/ - Milestone = 50; - /*=============================================*/ - TstCond (Failure, ((F9 + U1) - Half == Half) - && ((BMinusU2 + U2) - One == Radix - One), - "Incomplete carry-propagation in Addition"); - X = One - U1 * U1; - Y = One + U2 * (One - U2); - Z = F9 - Half; - X = (X - Half) - Z; - Y = Y - One; - if ((X == Zero) && (Y == Zero)) { - RAddSub = Chopped; - printf ("Add/Subtract appears to be chopped.\n"); - } - if (GAddSub == Yes) { - X = (Half + U2) * U2; - Y = (Half - U2) * U2; - X = One + X; - Y = One + Y; - X = (One + U2) - X; - Y = One - Y; - if ((X == Zero) && (Y == Zero)) { - X = (Half + U2) * U1; - Y = (Half - U2) * U1; - X = One - X; - Y = One - Y; - X = F9 - X; - Y = One - Y; - if ((X == Zero) && (Y == Zero)) { - RAddSub = Rounded; - printf ("Addition/Subtraction appears to round correctly.\n"); - if (GAddSub == No) - notify ("Add/Subtract"); - } else - printf ("Addition/Subtraction neither rounds nor chops.\n"); - } else - printf ("Addition/Subtraction neither rounds nor chops.\n"); - } else - printf ("Addition/Subtraction neither rounds nor chops.\n"); - S = One; - X = One + Half * (One + Half); - Y = (One + U2) * Half; - Z = X - Y; - T = Y - X; - StickyBit = Z + T; - if (StickyBit != Zero) { - S = Zero; - BadCond (Flaw, "(X - Y) + (Y - X) is non zero!\n"); - } - StickyBit = Zero; - if ((GMult == Yes) && (GDiv == Yes) && (GAddSub == Yes) - && (RMult == Rounded) && (RDiv == Rounded) - && (RAddSub == Rounded) && (FLOOR (RadixD2) == RadixD2)) { - printf ("Checking for sticky bit.\n"); - X = (Half + U1) * U2; - Y = Half * U2; - Z = One + Y; - T = One + X; - if ((Z - One <= Zero) && (T - One >= U2)) { - Z = T + Y; - Y = Z - X; - if ((Z - T >= U2) && (Y - T == Zero)) { - X = (Half + U1) * U1; - Y = Half * U1; - Z = One - Y; - T = One - X; - if ((Z - One == Zero) && (T - F9 == Zero)) { - Z = (Half - U1) * U1; - T = F9 - Z; - Q = F9 - Y; - if ((T - F9 == Zero) && (F9 - U1 - Q == Zero)) { - Z = (One + U2) * OneAndHalf; - T = (OneAndHalf + U2) - Z + U2; - X = One + Half / Radix; - Y = One + Radix * U2; - Z = X * Y; - if (T == Zero && X + Radix * U2 - Z == Zero) { - if (Radix != Two) { - X = Two + U2; - Y = X / Two; - if ((Y - One == Zero)) - StickyBit = S; - } else - StickyBit = S; - } - } - } - } - } - } - if (StickyBit == One) - printf ("Sticky bit apparently used correctly.\n"); - else - printf ("Sticky bit used incorrectly or not at all.\n"); - TstCond (Flaw, !(GMult == No || GDiv == No || GAddSub == No || - RMult == Other || RDiv == Other || RAddSub == Other), - "lack(s) of guard digits or failure(s) to correctly round or chop\n\ -(noted above) count as one flaw in the final tally below"); - /*=============================================*/ - Milestone = 60; - /*=============================================*/ - printf ("\n"); - printf ("Does Multiplication commute? "); - printf ("Testing on %d random pairs.\n", NoTrials); - Random9 = SQRT (3.0); - Random1 = Third; - I = 1; - do { - X = Random (); - Y = Random (); - Z9 = Y * X; - Z = X * Y; - Z9 = Z - Z9; - I = I + 1; - } - while (!((I > NoTrials) || (Z9 != Zero))); - if (I == NoTrials) { - Random1 = One + Half / Three; - Random2 = (U2 + U1) + One; - Z = Random1 * Random2; - Y = Random2 * Random1; - Z9 = (One + Half / Three) * ((U2 + U1) + One) - (One + Half / - Three) * ((U2 + U1) + One); - } - if (!((I == NoTrials) || (Z9 == Zero))) - BadCond (Defect, "X * Y == Y * X trial fails.\n"); - else - printf (" No failures found in %d integer pairs.\n", NoTrials); - /*=============================================*/ - Milestone = 70; - /*=============================================*/ - printf ("\nRunning test of square root(x).\n"); - TstCond (Failure, (Zero == SQRT (Zero)) - && (-Zero == SQRT (-Zero)) - && (One == SQRT (One)), "Square root of 0.0, -0.0 or 1.0 wrong"); - MinSqEr = Zero; - MaxSqEr = Zero; - J = Zero; - X = Radix; - OneUlp = U2; - SqXMinX (Serious); - X = BInvrse; - OneUlp = BInvrse * U1; - SqXMinX (Serious); - X = U1; - OneUlp = U1 * U1; - SqXMinX (Serious); - if (J != Zero) - Pause (); - printf ("Testing if sqrt(X * X) == X for %d Integers X.\n", NoTrials); - J = Zero; - X = Two; - Y = Radix; - if ((Radix != One)) - do { - X = Y; - Y = Radix * Y; - } - while (!((Y - X >= NoTrials))); - OneUlp = X * U2; - I = 1; - while (I <= NoTrials) { - X = X + One; - SqXMinX (Defect); - if (J > Zero) - break; - I = I + 1; - } - printf ("Test for sqrt monotonicity.\n"); - I = -1; - X = BMinusU2; - Y = Radix; - Z = Radix + Radix * U2; - NotMonot = False; - Monot = False; - while (!(NotMonot || Monot)) { - I = I + 1; - X = SQRT (X); - Q = SQRT (Y); - Z = SQRT (Z); - if ((X > Q) || (Q > Z)) - NotMonot = True; - else { - Q = FLOOR (Q + Half); - if ((I > 0) || (Radix == Q * Q)) - Monot = True; - else if (I > 0) { - if (I > 1) - Monot = True; - else { - Y = Y * BInvrse; - X = Y - U1; - Z = Y + U1; - } - } else { - Y = Q; - X = Y - U2; - Z = Y + U2; - } - } - } - if (Monot) - printf ("sqrt has passed a test for Monotonicity.\n"); - else { - BadCond (Defect, ""); - printf ("sqrt(X) is non-monotonic for X near %.7e .\n", Y); - } - /*=============================================*/ - Milestone = 80; - /*=============================================*/ - MinSqEr = MinSqEr + Half; - MaxSqEr = MaxSqEr - Half; - Y = (SQRT (One + U2) - One) / U2; - SqEr = (Y - One) + U2 / Eight; - if (SqEr > MaxSqEr) - MaxSqEr = SqEr; - SqEr = Y + U2 / Eight; - if (SqEr < MinSqEr) - MinSqEr = SqEr; - Y = ((SQRT (F9) - U2) - (One - U2)) / U1; - SqEr = Y + U1 / Eight; - if (SqEr > MaxSqEr) - MaxSqEr = SqEr; - SqEr = (Y + One) + U1 / Eight; - if (SqEr < MinSqEr) - MinSqEr = SqEr; - OneUlp = U2; - X = OneUlp; - for (Indx = 1; Indx <= 3; ++Indx) { - Y = SQRT ((X + U1 + X) + F9); - Y = ((Y - U2) - ((One - U2) + X)) / OneUlp; - Z = ((U1 - X) + F9) * Half * X * X / OneUlp; - SqEr = (Y + Half) + Z; - if (SqEr < MinSqEr) - MinSqEr = SqEr; - SqEr = (Y - Half) + Z; - if (SqEr > MaxSqEr) - MaxSqEr = SqEr; - if (((Indx == 1) || (Indx == 3))) - X = OneUlp * Sign (X) * FLOOR (Eight / (Nine * SQRT (OneUlp))); - else { - OneUlp = U1; - X = -OneUlp; - } - } - /*=============================================*/ - Milestone = 85; - /*=============================================*/ - SqRWrng = False; - Anomaly = False; - RSqrt = Other; /* ~dgh */ - if (Radix != One) { - printf ("Testing whether sqrt is rounded or chopped.\n"); - D = FLOOR (Half + POW (Radix, One + Precision - FLOOR (Precision))); - /* ... == Radix^(1 + fract) if (Precision == Integer + fract. */ - X = D / Radix; - Y = D / A1; - if ((X != FLOOR (X)) || (Y != FLOOR (Y))) { - Anomaly = True; - } else { - X = Zero; - Z2 = X; - Y = One; - Y2 = Y; - Z1 = Radix - One; - FourD = Four * D; - do { - if (Y2 > Z2) { - Q = Radix; - Y1 = Y; - do { - X1 = FABS (Q + FLOOR (Half - Q / Y1) * Y1); - Q = Y1; - Y1 = X1; - } - while (!(X1 <= Zero)); - if (Q <= One) { - Z2 = Y2; - Z = Y; - } - } - Y = Y + Two; - X = X + Eight; - Y2 = Y2 + X; - if (Y2 >= FourD) - Y2 = Y2 - FourD; - } - while (!(Y >= D)); - X8 = FourD - Z2; - Q = (X8 + Z * Z) / FourD; - X8 = X8 / Eight; - if (Q != FLOOR (Q)) - Anomaly = True; - else { - Break = False; - do { - X = Z1 * Z; - X = X - FLOOR (X / Radix) * Radix; - if (X == One) - Break = True; - else - Z1 = Z1 - One; - } - while (!(Break || (Z1 <= Zero))); - if ((Z1 <= Zero) && (!Break)) - Anomaly = True; - else { - if (Z1 > RadixD2) - Z1 = Z1 - Radix; - do { - NewD (); - } - while (!(U2 * D >= F9)); - if (D * Radix - D != W - D) - Anomaly = True; - else { - Z2 = D; - I = 0; - Y = D + (One + Z) * Half; - X = D + Z + Q; - SR3750 (); - Y = D + (One - Z) * Half + D; - X = D - Z + D; - X = X + Q + X; - SR3750 (); - NewD (); - if (D - Z2 != W - Z2) - Anomaly = True; - else { - Y = (D - Z2) + (Z2 + (One - Z) * Half); - X = (D - Z2) + (Z2 - Z + Q); - SR3750 (); - Y = (One + Z) * Half; - X = Q; - SR3750 (); - if (I == 0) - Anomaly = True; - } - } - } - } - } - if ((I == 0) || Anomaly) { - BadCond (Failure, "Anomalous arithmetic with Integer < "); - printf ("Radix^Precision = %.7e\n", W); - printf (" fails test whether sqrt rounds or chops.\n"); - SqRWrng = True; - } - } - if (!Anomaly) { - if (!((MinSqEr < Zero) || (MaxSqEr > Zero))) { - RSqrt = Rounded; - printf ("Square root appears to be correctly rounded.\n"); - } else { - if ((MaxSqEr + U2 > U2 - Half) || (MinSqEr > Half) - || (MinSqEr + Radix < Half)) - SqRWrng = True; - else { - RSqrt = Chopped; - printf ("Square root appears to be chopped.\n"); - } - } - } - if (SqRWrng) { - printf ("Square root is neither chopped nor correctly rounded.\n"); - printf ("Observed errors run from %.7e ", MinSqEr - Half); - printf ("to %.7e ulps.\n", Half + MaxSqEr); - TstCond (Serious, MaxSqEr - MinSqEr < Radix * Radix, - "sqrt gets too many last digits wrong"); - } - /*=============================================*/ - Milestone = 90; - /*=============================================*/ - Pause (); - printf ("Testing powers Z^i for small Integers Z and i.\n"); - N = 0; - /* ... test powers of zero. */ - I = 0; - Z = -Zero; - M = 3; - Break = False; - do { - X = One; - SR3980 (); - if (I <= 10) { - I = 1023; - SR3980 (); - } - if (Z == MinusOne) - Break = True; - else { - Z = MinusOne; - /* .. if(-1)^N is invalid, replace MinusOne by One. */ - I = -4; - } - } - while (!Break); - PrintIfNPositive (); - N1 = N; - N = 0; - Z = A1; - M = (int) FLOOR (Two * LOG (W) / LOG (A1)); - Break = False; - do { - X = Z; - I = 1; - SR3980 (); - if (Z == AInvrse) - Break = True; - else - Z = AInvrse; - } - while (!(Break)); - /*=============================================*/ - Milestone = 100; - /*=============================================*/ - /* Powers of Radix have been tested, */ - /* next try a few primes */ - M = NoTrials; - Z = Three; - do { - X = Z; - I = 1; - SR3980 (); - do { - Z = Z + Two; - } - while (Three * FLOOR (Z / Three) == Z); - } - while (Z < Eight * Three); - if (N > 0) { - printf ("Errors like this may invalidate financial calculations\n"); - printf ("\tinvolving interest rates.\n"); - } - PrintIfNPositive (); - N += N1; - if (N == 0) - printf ("... no discrepancies found.\n"); - if (N > 0) - Pause (); - else - printf ("\n"); - /*=============================================*/ - Milestone = 110; - /*=============================================*/ - printf ("Seeking Underflow thresholds UfThold and E0.\n"); - D = U1; - if (Precision != FLOOR (Precision)) { - D = BInvrse; - X = Precision; - do { - D = D * BInvrse; - X = X - One; - } - while (X > Zero); - } - Y = One; - Z = D; - /* ... D is power of 1/Radix < 1. */ - do { - C = Y; - Y = Z; - Z = Y * Y; - } - while ((Y > Z) && (Z + Z > Z)); - Y = C; - Z = Y * D; - do { - C = Y; - Y = Z; - Z = Y * D; - } - while ((Y > Z) && (Z + Z > Z)); - if (Radix < Two) - HInvrse = Two; - else - HInvrse = Radix; - H = One / HInvrse; - /* ... 1/HInvrse == H == Min(1/Radix, 1/2) */ - CInvrse = One / C; - E0 = C; - Z = E0 * H; - /* ...1/Radix^(BIG Integer) << 1 << CInvrse == 1/C */ - do { - Y = E0; - E0 = Z; - Z = E0 * H; - } - while ((E0 > Z) && (Z + Z > Z)); - UfThold = E0; - E1 = Zero; - Q = Zero; - E9 = U2; - S = One + E9; - D = C * S; - if (D <= C) { - E9 = Radix * U2; - S = One + E9; - D = C * S; - if (D <= C) { - BadCond (Failure, "multiplication gets too many last digits wrong.\n"); - Underflow = E0; - Y1 = Zero; - PseudoZero = Z; - Pause (); - } - } else { - Underflow = D; - PseudoZero = Underflow * H; - UfThold = Zero; - do { - Y1 = Underflow; - Underflow = PseudoZero; - if (E1 + E1 <= E1) { - Y2 = Underflow * HInvrse; - E1 = FABS (Y1 - Y2); - Q = Y1; - if ((UfThold == Zero) && (Y1 != Y2)) - UfThold = Y1; - } - PseudoZero = PseudoZero * H; - } - while ((Underflow > PseudoZero) - && (PseudoZero + PseudoZero > PseudoZero)); - } - /* Comment line 4530 .. 4560 */ - if (PseudoZero != Zero) { - printf ("\n"); - Z = PseudoZero; - /* ... Test PseudoZero for "phoney- zero" violates */ - /* ... PseudoZero < Underflow or PseudoZero < PseudoZero + PseudoZero - ... */ - if (PseudoZero <= Zero) { - BadCond (Failure, "Positive expressions can underflow to an\n"); - printf ("allegedly negative value\n"); - printf ("PseudoZero that prints out as: %g .\n", PseudoZero); - X = -PseudoZero; - if (X <= Zero) { - printf ("But -PseudoZero, which should be\n"); - printf ("positive, isn't; it prints out as %g .\n", X); - } - } else { - BadCond (Flaw, "Underflow can stick at an allegedly positive\n"); - printf ("value PseudoZero that prints out as %g .\n", PseudoZero); - } - TstPtUf (); - } - /*=============================================*/ - Milestone = 120; - /*=============================================*/ - if (CInvrse * Y > CInvrse * Y1) { - S = H * S; - E0 = Underflow; - } - if (!((E1 == Zero) || (E1 == E0))) { - BadCond (Defect, ""); - if (E1 < E0) { - printf ("Products underflow at a higher"); - printf (" threshold than differences.\n"); - if (PseudoZero == Zero) - E0 = E1; - } else { - printf ("Difference underflows at a higher"); - printf (" threshold than products.\n"); - } - } - printf ("Smallest strictly positive number found is E0 = %g .\n", E0); - Z = E0; - TstPtUf (); - Underflow = E0; - if (N == 1) - Underflow = Y; - I = 4; - if (E1 == Zero) - I = 3; - if (UfThold == Zero) - I = I - 2; - UfNGrad = True; - switch (I) { - case 1: - UfThold = Underflow; - if ((CInvrse * Q) != ((CInvrse * Y) * S)) { - UfThold = Y; - BadCond (Failure, "Either accuracy deteriorates as numbers\n"); - printf ("approach a threshold = %.17e\n", UfThold);; - printf (" coming down from %.17e\n", C); - printf (" or else multiplication gets too many last digits wrong.\n"); - } - Pause (); - break; - - case 2: - BadCond (Failure, "Underflow confuses Comparison, which alleges that\n"); - printf ("Q == Y while denying that |Q - Y| == 0; these values\n"); - printf ("print out as Q = %.17e, Y = %.17e .\n", Q, Y2); - printf ("|Q - Y| = %.17e .\n", FABS (Q - Y2)); - UfThold = Q; - break; - - case 3: - X = X; - break; - - case 4: - if ((Q == UfThold) && (E1 == E0) - && (FABS (UfThold - E1 / E9) <= E1)) { - UfNGrad = False; - printf ("Underflow is gradual; it incurs Absolute Error =\n"); - printf ("(roundoff in UfThold) < E0.\n"); - Y = E0 * CInvrse; - Y = Y * (OneAndHalf + U2); - X = CInvrse * (One + U2); - Y = Y / X; - IEEE = (Y == E0); - } - } - if (UfNGrad) { - printf ("\n"); - sigsave = _sigfpe; - if (setjmp (ovfl_buf)) { - printf ("Underflow / UfThold failed!\n"); - R = H + H; - } else - R = SQRT (Underflow / UfThold); - sigsave = 0; - if (R <= H) { - Z = R * UfThold; - X = Z * (One + R * H * (One + H)); - } else { - Z = UfThold; - X = Z * (One + H * H * (One + H)); - } - if (!((X == Z) || (X - Z != Zero))) { - BadCond (Flaw, ""); - printf ("X = %.17e\n\tis not equal to Z = %.17e .\n", X, Z); - Z9 = X - Z; - printf ("yet X - Z yields %.17e .\n", Z9); - printf (" Should this NOT signal Underflow, "); - printf ("this is a SERIOUS DEFECT\nthat causes "); - printf ("confusion when innocent statements like\n");; - printf (" if (X == Z) ... else"); - printf (" ... (f(X) - f(Z)) / (X - Z) ...\n"); - printf ("encounter Division by Zero although actually\n"); - sigsave = _sigfpe; - if (setjmp (ovfl_buf)) - printf ("X / Z fails!\n"); - else - printf ("X / Z = 1 + %g .\n", (X / Z - Half) - Half); - sigsave = 0; - } - } - printf ("The Underflow threshold is %.17e, %s\n", UfThold, - " below which"); - printf ("calculation may suffer larger Relative error than "); - printf ("merely roundoff.\n"); - Y2 = U1 * U1; - Y = Y2 * Y2; - Y2 = Y * U1; - if (Y2 <= UfThold) { - if (Y > E0) { - BadCond (Defect, ""); - I = 5; - } else { - BadCond (Serious, ""); - I = 4; - } - printf ("Range is too narrow; U1^%d Underflows.\n", I); - } - /*=============================================*/ - Milestone = 130; - /*=============================================*/ - Y = -FLOOR (Half - TwoForty * LOG (UfThold) / LOG (HInvrse)) / TwoForty; - Y2 = Y + Y; - printf ("Since underflow occurs below the threshold\n"); - printf ("UfThold = (%.17e) ^ (%.17e)\nonly underflow ", HInvrse, Y); - printf ("should afflict the expression\n\t(%.17e) ^ (%.17e);\n", - HInvrse, Y2); - printf ("actually calculating yields:"); - if (setjmp (ovfl_buf)) { - sigsave = 0; - BadCond (Serious, "trap on underflow.\n"); - } else { - sigsave = _sigfpe; - V9 = POW (HInvrse, Y2); - sigsave = 0; - printf (" %.17e .\n", V9); - if (!((V9 >= Zero) && (V9 <= (Radix + Radix + E9) * UfThold))) { - BadCond (Serious, "this is not between 0 and underflow\n"); - printf (" threshold = %.17e .\n", UfThold); - } else if (!(V9 > UfThold * (One + E9))) - printf ("This computed value is O.K.\n"); - else { - BadCond (Defect, "this is not between 0 and underflow\n"); - printf (" threshold = %.17e .\n", UfThold); - } - } - /*=============================================*/ - Milestone = 140; - /*=============================================*/ - printf ("\n"); - /* ...calculate Exp2 == exp(2) == 7.389056099... */ - X = Zero; - I = 2; - Y = Two * Three; - Q = Zero; - N = 0; - do { - Z = X; - I = I + 1; - Y = Y / (I + I); - R = Y + Q; - X = Z + R; - Q = (Z - X) + R; - } - while (X > Z); - Z = (OneAndHalf + One / Eight) + X / (OneAndHalf * ThirtyTwo); - X = Z * Z; - Exp2 = X * X; - X = F9; - Y = X - U1; - printf ("Testing X^((X + 1) / (X - 1)) vs. exp(2) = %.17e as X -> 1.\n", - Exp2); - for (I = 1;;) { - Z = X - BInvrse; - Z = (X + One) / (Z - (One - BInvrse)); - Q = POW (X, Z) - Exp2; - if (FABS (Q) > TwoForty * U2) { - N = 1; - V9 = (X - BInvrse) - (One - BInvrse); - BadCond (Defect, "Calculated"); - printf (" %.17e for\n", POW (X, Z)); - printf ("\t(1 + (%.17e) ^ (%.17e);\n", V9, Z); - printf ("\tdiffers from correct value by %.17e .\n", Q); - printf ("\tThis much error may spoil financial\n"); - printf ("\tcalculations involving tiny interest rates.\n"); - break; - } else { - Z = (Y - X) * Two + Y; - X = Y; - Y = Z; - Z = One + (X - F9) * (X - F9); - if (Z > One && I < NoTrials) - I++; - else { - if (X > One) { - if (N == 0) - printf ("Accuracy seems adequate.\n"); - break; - } else { - X = One + U2; - Y = U2 + U2; - Y += X; - I = 1; - } - } - } - } - /*=============================================*/ - Milestone = 150; - /*=============================================*/ - printf ("Testing powers Z^Q at four nearly extreme values.\n"); - N = 0; - Z = A1; - Q = FLOOR (Half - LOG (C) / LOG (A1)); - Break = False; - do { - X = CInvrse; - Y = POW (Z, Q); - IsYeqX (); - Q = -Q; - X = C; - Y = POW (Z, Q); - IsYeqX (); - if (Z < One) - Break = True; - else - Z = AInvrse; - } - while (!(Break)); - PrintIfNPositive (); - if (N == 0) - printf (" ... no discrepancies found.\n"); - printf ("\n"); - - /*=============================================*/ - Milestone = 160; - /*=============================================*/ - Pause (); - printf ("Searching for Overflow threshold:\n"); - printf ("This may generate an error.\n"); - Y = -CInvrse; - V9 = HInvrse * Y; - sigsave = _sigfpe; - if (setjmp (ovfl_buf)) { - I = 0; - V9 = Y; - goto overflow; - } - do { - V = Y; - Y = V9; - V9 = HInvrse * Y; - } - while (V9 < Y); - I = 1; - overflow: - sigsave = 0; - Z = V9; - printf ("Can `Z = -Y' overflow?\n"); - printf ("Trying it on Y = %.17e .\n", Y); - V9 = -Y; - V0 = V9; - if (V - Y == V + V0) - printf ("Seems O.K.\n"); - else { - printf ("finds a "); - BadCond (Flaw, "-(-Y) differs from Y.\n"); - } - if (Z != Y) { - BadCond (Serious, ""); - printf ("overflow past %.17e\n\tshrinks to %.17e .\n", Y, Z); - } - if (I) { - Y = V * (HInvrse * U2 - HInvrse); - Z = Y + ((One - HInvrse) * U2) * V; - if (Z < V0) - Y = Z; - if (Y < V0) - V = Y; - if (V0 - V < V0) - V = V0; - } else { - V = Y * (HInvrse * U2 - HInvrse); - V = V + ((One - HInvrse) * U2) * Y; - } - printf ("Overflow threshold is V = %.17e .\n", V); - if (I) - printf ("Overflow saturates at V0 = %.17e .\n", V0); - else - printf ("There is no saturation value because \ -the system traps on overflow.\n"); - V9 = V * One; - printf ("No Overflow should be signaled for V * 1 = %.17e\n", V9); - V9 = V / One; - printf (" nor for V / 1 = %.17e .\n", V9); - printf ("Any overflow signal separating this * from the one\n"); - printf ("above is a DEFECT.\n"); - /*=============================================*/ - Milestone = 170; - /*=============================================*/ - if (!(-V < V && -V0 < V0 && -UfThold < V && UfThold < V)) { - BadCond (Failure, "Comparisons involving "); - printf ("+-%g, +-%g\nand +-%g are confused by Overflow.", - V, V0, UfThold); - } - /*=============================================*/ - Milestone = 175; - /*=============================================*/ - printf ("\n"); - for (Indx = 1; Indx <= 3; ++Indx) { - switch (Indx) { - case 1: - Z = UfThold; - break; - case 2: - Z = E0; - break; - case 3: - Z = PseudoZero; - break; - } - if (Z != Zero) { - V9 = SQRT (Z); - Y = V9 * V9; - if (Y / (One - Radix * E9) < Z - || Y > (One + Radix * E9) * Z) { /* dgh: + E9 --> * E9 */ - if (V9 > U1) - BadCond (Serious, ""); - else - BadCond (Defect, ""); - printf ("Comparison alleges that what prints as Z = %.17e\n", Z); - printf (" is too far from sqrt(Z) ^ 2 = %.17e .\n", Y); - } - } - } - /*=============================================*/ - Milestone = 180; - /*=============================================*/ - for (Indx = 1; Indx <= 2; ++Indx) { - if (Indx == 1) - Z = V; - else - Z = V0; - V9 = SQRT (Z); - X = (One - Radix * E9) * V9; - V9 = V9 * X; - if (((V9 < (One - Two * Radix * E9) * Z) || (V9 > Z))) { - Y = V9; - if (X < W) - BadCond (Serious, ""); - else - BadCond (Defect, ""); - printf ("Comparison alleges that Z = %17e\n", Z); - printf (" is too far from sqrt(Z) ^ 2 (%.17e) .\n", Y); - } - } - /*=============================================*/ - Milestone = 190; - /*=============================================*/ - Pause (); - X = UfThold * V; - Y = Radix * Radix; - if (X * Y < One || X > Y) { - if (X * Y < U1 || X > Y / U1) - BadCond (Defect, "Badly"); - else - BadCond (Flaw, ""); - - printf (" unbalanced range; UfThold * V = %.17e\n\t%s\n", - X, "is too far from 1.\n"); - } - /*=============================================*/ - Milestone = 200; - /*=============================================*/ - for (Indx = 1; Indx <= 5; ++Indx) { - X = F9; - switch (Indx) { - case 2: - X = One + U2; - break; - case 3: - X = V; - break; - case 4: - X = UfThold; - break; - case 5: - X = Radix; - } - Y = X; - sigsave = _sigfpe; - if (setjmp (ovfl_buf)) - printf (" X / X traps when X = %g\n", X); - else { - V9 = (Y / X - Half) - Half; - if (V9 == Zero) - continue; - if (V9 == -U1 && Indx < 5) - BadCond (Flaw, ""); - else - BadCond (Serious, ""); - printf (" X / X differs from 1 when X = %.17e\n", X); - printf (" instead, X / X - 1/2 - 1/2 = %.17e .\n", V9); - } - sigsave = 0; - } - /*=============================================*/ - Milestone = 210; - /*=============================================*/ - MyZero = Zero; - printf ("\n"); - printf ("What message and/or values does Division by Zero produce?\n"); -#ifndef BATCHMODE - printf ("This can interupt your program. You can "); - printf ("skip this part if you wish.\n"); - printf ("Do you wish to compute 1 / 0? "); - fflush (stdout); - read (KEYBOARD, ch, 8); - if ((ch[0] == 'Y') || (ch[0] == 'y')) { -#endif /* !BATCHMODE */ - sigsave = _sigfpe; - printf (" Trying to compute 1 / 0 produces ..."); - if (!setjmp (ovfl_buf)) - printf (" %.7e .\n", One / MyZero); - sigsave = 0; -#ifndef BATCHMODE - } else - printf ("O.K.\n"); - printf ("\nDo you wish to compute 0 / 0? "); - fflush (stdout); - read (KEYBOARD, ch, 80); - if ((ch[0] == 'Y') || (ch[0] == 'y')) { -#endif /* !BATCHMODE */ - sigsave = _sigfpe; - printf ("\n Trying to compute 0 / 0 produces ..."); - if (!setjmp (ovfl_buf)) - printf (" %.7e .\n", Zero / MyZero); - sigsave = 0; -#ifndef BATCHMODE - } else - printf ("O.K.\n"); -#endif /* !BATCHMODE */ - /*=============================================*/ - Milestone = 220; - /*=============================================*/ - - Pause (); - printf ("\n"); - { - static char *msg[] = - { - "FAILUREs encountered =", - "SERIOUS DEFECTs discovered =", - "DEFECTs discovered =", - "FLAWs discovered ="}; - int i; - for (i = 0; i < 4; i++) - if (ErrCnt[i]) - printf ("The number of %-29s %d.\n", - msg[i], ErrCnt[i]); - } - - printf ("\n"); - if ((ErrCnt[Failure] + ErrCnt[Serious] + ErrCnt[Defect] - + ErrCnt[Flaw]) > 0) { - if ((ErrCnt[Failure] + ErrCnt[Serious] + ErrCnt[ - Defect] == 0) && (ErrCnt[Flaw] > 0)) { - printf ("The arithmetic diagnosed seems "); - printf ("Satisfactory though flawed.\n"); - } - if ((ErrCnt[Failure] + ErrCnt[Serious] == 0) - && (ErrCnt[Defect] > 0)) { - printf ("The arithmetic diagnosed may be Acceptable\n"); - printf ("despite inconvenient Defects.\n"); - } - if ((ErrCnt[Failure] + ErrCnt[Serious]) > 0) { - printf ("The arithmetic diagnosed has "); - printf ("unacceptable Serious Defects.\n"); - } - if (ErrCnt[Failure] > 0) { - printf ("Potentially fatal FAILURE may have spoiled this"); - printf (" program's subsequent diagnoses.\n"); - } - } else { - - printf ("No failures, defects nor flaws have been discovered.\n"); - if (!((RMult == Rounded) && (RDiv == Rounded) - && (RAddSub == Rounded) && (RSqrt == Rounded))) - printf ("The arithmetic diagnosed seems Satisfactory.\n"); - else { - if (StickyBit >= One && - (Radix - Two) * (Radix - Nine - One) == Zero) { - printf ("Rounding appears to conform to "); - printf ("the proposed IEEE standard P"); - if ((Radix == Two) && - ((Precision - Four * Three * Two) * - (Precision - TwentySeven - - TwentySeven + One) == Zero)) - printf ("754"); - else - printf ("854"); - if (IEEE) - printf (".\n"); - else { - printf (",\nexcept for possibly Double Rounding"); - printf (" during Gradual Underflow.\n"); - } - } - printf ("The arithmetic diagnosed appears to be Excellent!\n"); - } - } - - if (fpecount) - printf ("\nA total of %d floating point exceptions were registered.\n", - fpecount); - printf ("END OF TEST.\n"); - return 0; -} - -FLOAT -Sign (X) - FLOAT X; -{ - return X >= 0. ? 1.0 : -1.0; -} - -void -Pause () -{ -#ifndef BATCHMODE - char ch[8]; - - printf ("\nTo continue, press RETURN"); - fflush (stdout); - read (KEYBOARD, ch, 8); -#endif /* !BATCHMODE */ -#ifndef CYGNUS - printf ("\nDiagnosis resumes after milestone Number %d", Milestone); - printf (" Page: %d\n\n", PageNo); - ++Milestone; - ++PageNo; -#endif /* !CYGNUS */ -} - -void -TstCond (K, Valid, T) - int K, Valid; - char *T; -{ -#ifdef CYGNUS - printf ("TEST: %s\n", T); -#endif /* CYGNUS */ - if (!Valid) { - BadCond (K, T); - printf (".\n"); - } -#ifdef CYGNUS - printf ("PASS: %s\n", T); -#endif /* CYGNUS */ -} - -void -BadCond (K, T) - int K; - char *T; -{ - static char *msg[] = - {"FAILURE", "SERIOUS DEFECT", "DEFECT", "FLAW"}; - - ErrCnt[K] = ErrCnt[K] + 1; -#ifndef CYGNUS - printf ("%s: %s", msg[K], T); -#else - printf ("ERROR: Severity: %s: %s", msg[K], T); -#endif /* CYGNUS */ -} - -/* - * Random computes - * X = (Random1 + Random9)^5 - * Random1 = X - FLOOR(X) + 0.000005 * X; - * and returns the new value of Random1 -*/ -FLOAT -Random () -{ - FLOAT X, Y; - - X = Random1 + Random9; - Y = X * X; - Y = Y * Y; - X = X * Y; - Y = X - FLOOR (X); - Random1 = Y + X * 0.000005; - return (Random1); -} - -void -SqXMinX (ErrKind) - int ErrKind; -{ - FLOAT XA, XB; - - XB = X * BInvrse; - XA = X - XB; - SqEr = ((SQRT (X * X) - XB) - XA) / OneUlp; - if (SqEr != Zero) { - if (SqEr < MinSqEr) - MinSqEr = SqEr; - if (SqEr > MaxSqEr) - MaxSqEr = SqEr; - J = J + 1.0; - BadCond (ErrKind, "\n"); - printf ("sqrt( %.17e) - %.17e = %.17e\n", X * X, X, OneUlp * SqEr); - printf ("\tinstead of correct value 0 .\n"); - } -} - -void -NewD () -{ - X = Z1 * Q; - X = FLOOR (Half - X / Radix) * Radix + X; - Q = (Q - X * Z) / Radix + X * X * (D / Radix); - Z = Z - Two * X * D; - if (Z <= Zero) { - Z = -Z; - Z1 = -Z1; - } - D = Radix * D; -} - -void -SR3750 () -{ - if (!((X - Radix < Z2 - Radix) || (X - Z2 > W - Z2))) { - I = I + 1; - X2 = SQRT (X * D); - Y2 = (X2 - Z2) - (Y - Z2); - X2 = X8 / (Y - Half); - X2 = X2 - Half * X2 * X2; - SqEr = (Y2 + Half) + (Half - X2); - if (SqEr < MinSqEr) - MinSqEr = SqEr; - SqEr = Y2 - X2; - if (SqEr > MaxSqEr) - MaxSqEr = SqEr; - } -} - -void -IsYeqX () -{ - if (Y != X) { - if (N <= 0) { - if (Z == Zero && Q <= Zero) - printf ("WARNING: computing\n"); - else - BadCond (Defect, "computing\n"); - printf ("\t(%.17e) ^ (%.17e)\n", Z, Q); - printf ("\tyielded %.17e;\n", Y); - printf ("\twhich compared unequal to correct %.17e ;\n", - X); - printf ("\t\tthey differ by %.17e .\n", Y - X); - } - N = N + 1; /* ... count discrepancies. */ - } -} - -void -SR3980 () -{ - do { - Q = (FLOAT) I; - Y = POW (Z, Q); - IsYeqX (); - if (++I > M) - break; - X = Z * X; - } - while (X < W); -} - -void -PrintIfNPositive () -{ - if (N > 0) - printf ("Similar discrepancies have occurred %d times.\n", N); -} - -void -TstPtUf () -{ - N = 0; - if (Z != Zero) { - printf ("Since comparison denies Z = 0, evaluating "); - printf ("(Z + Z) / Z should be safe.\n"); - sigsave = _sigfpe; - if (setjmp (ovfl_buf)) - goto very_serious; - Q9 = (Z + Z) / Z; - printf ("What the machine gets for (Z + Z) / Z is %.17e .\n", - Q9); - if (FABS (Q9 - Two) < Radix * U2) { - printf ("This is O.K., provided Over/Underflow"); - printf (" has NOT just been signaled.\n"); - } else { - if ((Q9 < One) || (Q9 > Two)) { - very_serious: - N = 1; - ErrCnt[Serious] = ErrCnt[Serious] + 1; - printf ("This is a VERY SERIOUS DEFECT!\n"); - } else { - N = 1; - ErrCnt[Defect] = ErrCnt[Defect] + 1; - printf ("This is a DEFECT!\n"); - } - } - sigsave = 0; - V9 = Z * One; - Random1 = V9; - V9 = One * Z; - Random2 = V9; - V9 = Z / One; - if ((Z == Random1) && (Z == Random2) && (Z == V9)) { - if (N > 0) - Pause (); - } else { - N = 1; - BadCond (Defect, "What prints as Z = "); - printf ("%.17e\n\tcompares different from ", Z); - if (Z != Random1) - printf ("Z * 1 = %.17e ", Random1); - if (!((Z == Random2) - || (Random2 == Random1))) - printf ("1 * Z == %g\n", Random2); - if (!(Z == V9)) - printf ("Z / 1 = %.17e\n", V9); - if (Random2 != Random1) { - ErrCnt[Defect] = ErrCnt[Defect] + 1; - BadCond (Defect, "Multiplication does not commute!\n"); - printf ("\tComparison alleges that 1 * Z = %.17e\n", - Random2); - printf ("\tdiffers from Z * 1 = %.17e\n", Random1); - } - Pause (); - } - } -} - -void -notify (s) - char *s; -{ - printf ("%s test appears to be inconsistent...\n", s); - printf (" PLEASE NOTIFY KARPINKSI!\n"); -} - -void -msglist (s) - char **s; -{ - while (*s) - printf ("%s\n", *s++); -} - -void -Instructions () -{ - static char *instr[] = - { - "Lest this program stop prematurely, i.e. before displaying\n", - " `END OF TEST',\n", - "try to persuade the computer NOT to terminate execution when an", - "error like Over/Underflow or Division by Zero occurs, but rather", - "to persevere with a surrogate value after, perhaps, displaying some", - "warning. If persuasion avails naught, don't despair but run this", - "program anyway to see how many milestones it passes, and then", - "amend it to make further progress.\n", - "Answer questions with Y, y, N or n (unless otherwise indicated).\n", - 0}; - - msglist (instr); -} - -void -Heading () -{ - static char *head[] = - { - "Users are invited to help debug and augment this program so it will", - "cope with unanticipated and newly uncovered arithmetic pathologies.\n", - "Please send suggestions and interesting results to", - "\tRichard Karpinski", - "\tComputer Center U-76", - "\tUniversity of California", - "\tSan Francisco, CA 94143-0704, USA\n", - "In doing so, please include the following information:", -#ifdef SINGLE_PRECISION - "\tPrecision:\tsingle;", -#else /* !SINGLE_PRECISION */ - "\tPrecision:\tdouble;", -#endif /* SINGLE_PRECISION */ - "\tVersion:\t10 February 1989;", - "\tComputer:\n", - "\tCompiler:\n", - "\tOptimization level:\n", - "\tOther relevant compiler options:", - 0}; - - msglist (head); -} - -void -Characteristics () -{ - static char *chars[] = - { - "Running this program should reveal these characteristics:", - " Radix = 1, 2, 4, 8, 10, 16, 100, 256 ...", - " Precision = number of significant digits carried.", - " U2 = Radix/Radix^Precision = One Ulp", - "\t(OneUlpnit in the Last Place) of 1.000xxx .", - " U1 = 1/Radix^Precision = One Ulp of numbers a little less than 1.0 .", - " Adequacy of guard digits for Mult., Div. and Subt.", - " Whether arithmetic is chopped, correctly rounded, or something else", - "\tfor Mult., Div., Add/Subt. and Sqrt.", - " Whether a Sticky Bit used correctly for rounding.", - " UnderflowThreshold = an underflow threshold.", - " E0 and PseudoZero tell whether underflow is abrupt, gradual, or fuzzy.", - " V = an overflow threshold, roughly.", - " V0 tells, roughly, whether Infinity is represented.", - " Comparisions are checked for consistency with subtraction", - "\tand for contamination with pseudo-zeros.", - " Sqrt is tested. Y^X is not tested.", - " Extra-precise subexpressions are revealed but NOT YET tested.", - " Decimal-Binary conversion is NOT YET tested for accuracy.", - 0}; - - msglist (chars); -} - -void -History () -{ /* History */ - /* Converted from Brian Wichmann's Pascal version to C by Thos Sumner, - with further massaging by David M. Gay. */ - - static char *hist[] = - { - "The program attempts to discriminate among", - " FLAWs, like lack of a sticky bit,", - " Serious DEFECTs, like lack of a guard digit, and", - " FAILUREs, like 2+2 == 5 .", - "Failures may confound subsequent diagnoses.\n", - "The diagnostic capabilities of this program go beyond an earlier", - "program called `MACHAR', which can be found at the end of the", - "book `Software Manual for the Elementary Functions' (1980) by", - "W. J. Cody and W. Waite. Although both programs try to discover", - "the Radix, Precision and range (over/underflow thresholds)", - "of the arithmetic, this program tries to cope with a wider variety", - "of pathologies, and to say how well the arithmetic is implemented.", - "\nThe program is based upon a conventional radix representation for", - "floating-point numbers, but also allows logarithmic encoding", - "as used by certain early WANG machines.\n", - "BASIC version of this program (C) 1983 by Prof. W. M. Kahan;", - "see source comments for more history.", - 0}; - - msglist (hist); -} diff --git a/c/src/tests/samples/paranoia/paranoia.doc b/c/src/tests/samples/paranoia/paranoia.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/samples/paranoia/paranoia.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/samples/paranoia/system.h b/c/src/tests/samples/paranoia/system.h deleted file mode 100644 index 88e60beb9a..0000000000 --- a/c/src/tests/samples/paranoia/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stdio.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/samples/ticker/init.c b/c/src/tests/samples/ticker/init.c deleted file mode 100644 index 3caa16ecd7..0000000000 --- a/c/src/tests/samples/ticker/init.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_time_of_day time; - - puts( "\n\n*** CLOCK TICK TEST ***" ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - status = rtems_clock_set( &time ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( Task_name[ 1 ], 1, 1024, RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 1 ] ); - status = rtems_task_create( Task_name[ 2 ], 1, 1024, RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 2 ] ); - status = rtems_task_create( Task_name[ 3 ], 1, 1024, RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 3 ] ); - - status = rtems_task_start( Task_id[ 1 ], Test_task, 1 ); - status = rtems_task_start( Task_id[ 2 ], Test_task, 2 ); - status = rtems_task_start( Task_id[ 3 ], Test_task, 3 ); - - status = rtems_task_delete( RTEMS_SELF ); -} diff --git a/c/src/tests/samples/ticker/system.h b/c/src/tests/samples/ticker/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/samples/ticker/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/samples/ticker/tasks.c b/c/src/tests/samples/ticker/tasks.c deleted file mode 100644 index ec7c6baa2e..0000000000 --- a/c/src/tests/samples/ticker/tasks.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Test_task - * - * This routine serves as a test task. It verifies the basic task - * switching capabilities of the executive. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task( - rtems_task_argument unused -) -{ - rtems_id tid; - rtems_time_of_day time; - rtems_unsigned32 task_index; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - task_index = task_number( tid ); - while( FOREVER ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - if ( time.second >= 35 ) { - puts( "*** END OF CLOCK TICK TEST ***" ); - exit( 0 ); - } - put_name( Task_name[ task_index ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - status = rtems_task_wake_after( task_index * 5 * TICKS_PER_SECOND ); - } -} diff --git a/c/src/tests/samples/ticker/ticker.doc b/c/src/tests/samples/ticker/ticker.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/samples/ticker/ticker.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/samples/ticker/ticker.scn b/c/src/tests/samples/ticker/ticker.scn deleted file mode 100644 index 35952e6170..0000000000 --- a/c/src/tests/samples/ticker/ticker.scn +++ /dev/null @@ -1,16 +0,0 @@ -*** CLOCK TICK TEST *** -TA1 - tm_get - 09:00:00 12/31/1988 -TA2 - tm_get - 09:00:00 12/31/1988 -TA3 - tm_get - 09:00:00 12/31/1988 -TA1 - tm_get - 09:00:05 12/31/1988 -TA1 - tm_get - 09:00:10 12/31/1988 -TA2 - tm_get - 09:00:10 12/31/1988 -TA1 - tm_get - 09:00:15 12/31/1988 -TA3 - tm_get - 09:00:15 12/31/1988 -TA1 - tm_get - 09:00:20 12/31/1988 -TA2 - tm_get - 09:00:20 12/31/1988 -TA1 - tm_get - 09:00:25 12/31/1988 -TA1 - tm_get - 09:00:30 12/31/1988 -TA2 - tm_get - 09:00:30 12/31/1988 -TA3 - tm_get - 09:00:30 12/31/1988 -*** END OF CLOCK TICK TEST *** diff --git a/c/src/tests/sptests/README b/c/src/tests/sptests/README deleted file mode 100644 index 2843063c31..0000000000 --- a/c/src/tests/sptests/README +++ /dev/null @@ -1,9 +0,0 @@ -# -# $Id$ -# - -This directory contains the RTEMS Single Processor Test Suite. -The tests in this directory provide near complete (98%+) test -coverage of the non-multiprocessor code in RTEMS. - - diff --git a/c/src/tests/sptests/sp01/init.c b/c/src/tests/sptests/sp01/init.c deleted file mode 100644 index 82ffd0015c..0000000000 --- a/c/src/tests/sptests/sp01/init.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_time_of_day time; - rtems_status_code status; - - puts( "\n\n*** TEST 1 ***" ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2 * 1024, - RTEMS_INTERRUPT_LEVEL(31), - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2 * 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 1, - 2 * 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp01/sp01.doc b/c/src/tests/sptests/sp01/sp01.doc deleted file mode 100644 index 79b1aaaa87..0000000000 --- a/c/src/tests/sptests/sp01/sp01.doc +++ /dev/null @@ -1,43 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test1 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_set, tm_get, tm_wkafter - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handle a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - -output: - "TA1" is printed once every 5 seconds. "TA2" is printed once - every 10 seconds. "TA3" is printed once every 15 seconds. diff --git a/c/src/tests/sptests/sp01/sp01.scn b/c/src/tests/sptests/sp01/sp01.scn deleted file mode 100644 index d4fcc4561b..0000000000 --- a/c/src/tests/sptests/sp01/sp01.scn +++ /dev/null @@ -1,18 +0,0 @@ -*** TEST 1 *** -TA1 - rtems_clock_get - 09:00:00 12/31/1988 -TA2 - rtems_clock_get - 09:00:00 12/31/1988 -TA3 - rtems_clock_get - 09:00:00 12/31/1988 -TA1 - rtems_clock_get - 09:00:05 12/31/1988 -TA2 - rtems_clock_get - 09:00:10 12/31/1988 -TA1 - rtems_clock_get - 09:00:10 12/31/1988 -TA3 - rtems_clock_get - 09:00:15 12/31/1988 -TA1 - rtems_clock_get - 09:00:15 12/31/1988 -TA2 - rtems_clock_get - 09:00:20 12/31/1988 -TA1 - rtems_clock_get - 09:00:20 12/31/1988 -TA1 - rtems_clock_get - 09:00:25 12/31/1988 -TA3 - rtems_clock_get - 09:00:30 12/31/1988 -TA1 - rtems_clock_get - 09:00:30 12/31/1988 -TA2 - rtems_clock_get - 09:00:30 12/31/1988 -*** END OF TEST 1 *** - -NOTE: The order of the prints at each time interval is irrelevant. diff --git a/c/src/tests/sptests/sp01/system.h b/c/src/tests/sptests/sp01/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp01/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp01/task1.c b/c/src/tests/sptests/sp01/task1.c deleted file mode 100644 index b45d3abce6..0000000000 --- a/c/src/tests/sptests/sp01/task1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Task_1_through_3 - * - * This routine serves as a test task. It verifies the basic task - * switching capabilities of the executive. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1_through_3( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - while( FOREVER ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second >= 35 ) { - puts( "*** END OF TEST 1 ***" ); - exit( 0 ); - } - - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - status = rtems_task_wake_after( task_number( tid ) * 5 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } -} diff --git a/c/src/tests/sptests/sp02/init.c b/c/src/tests/sptests/sp02/init.c deleted file mode 100644 index b3ada92914..0000000000 --- a/c/src/tests/sptests/sp02/init.c +++ /dev/null @@ -1,155 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 2 ***" ); - - Preempt_task_name = rtems_build_name( 'P', 'R', 'M', 'T' ); - - status = rtems_task_create( - Preempt_task_name, - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Preempt_task_id - ); - directive_failed( status, "rtems_task_create of RTEMS_PREEMPT" ); - - status = rtems_task_start( Preempt_task_id, Preempt_task, 0 ); - directive_failed( status, "rtems_task_start of RTEMS_PREEMPT" ); - - puts( "INIT - rtems_task_wake_after - yielding processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - puts( "INIT - suspending TA2 while middle task on a ready chain" ); - status = rtems_task_suspend( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - status = rtems_task_delete( Task_id[ 1 ] ); - directive_failed( status, "rtems_task_delete of TA1" ); - - status = rtems_task_delete( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_delete of TA2" ); - - status = rtems_task_delete( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_delete of TA3" ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp02/preempt.c b/c/src/tests/sptests/sp02/preempt.c deleted file mode 100644 index 7e93f7af57..0000000000 --- a/c/src/tests/sptests/sp02/preempt.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Preempt_task - * - * This routine serves as a test task. It verifies the task manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Preempt_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "PREEMPT - rtems_task_delete - deleting self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_PREEMPT" ); -} diff --git a/c/src/tests/sptests/sp02/sp02.doc b/c/src/tests/sptests/sp02/sp02.doc deleted file mode 100644 index 00f2e0e7b3..0000000000 --- a/c/src/tests/sptests/sp02/sp02.doc +++ /dev/null @@ -1,37 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test2 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - t_delete, tm_wkafter, t_setpri, t_suspend - -concepts: - - a. Verifies that a task can delete another task and also delete itself. - - b. Verifies that memory is freed back to the heap correctly. - - c. Verifies that TCBs are freed back to the inactive chain correctly. - - d. Verifies that a task can get the task identification number of - another task. - - e. Verifies the _Set_state routine where the task is not READY. - - f. Verifies the break statement in the _Block_activate routine. - - g. Verifies the while loop in the _Prev_tcb routine. diff --git a/c/src/tests/sptests/sp02/sp02.scn b/c/src/tests/sptests/sp02/sp02.scn deleted file mode 100644 index 57a4627284..0000000000 --- a/c/src/tests/sptests/sp02/sp02.scn +++ /dev/null @@ -1,15 +0,0 @@ -*** TEST 2 *** -INIT - rtems_task_wake_after - yielding processor -PREEMPT - rtems_task_delete - deleting self -INIT - suspending TA2 while middle task on a ready chain -TA1 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 minute -TA3 - rtems_task_wake_after - sleep 5 seconds -TA1 - rtems_task_ident - tid of TA2 (0x00010007) -TA1 - rtems_task_ident - tid of TA3 (0x00010008) -TA1 - rtems_task_set_priority - set TA3's priority to 2 -TA1 - rtems_task_suspend - suspend TA2 -TA1 - rtems_task_delete - delete TA2 -TA1 - rtems_task_wake_after - sleep for 5 seconds -TA3 - rtems_task_delete - delete self -*** END OF TEST 2 *** diff --git a/c/src/tests/sptests/sp02/system.h b/c/src/tests/sptests/sp02/system.h deleted file mode 100644 index c9d89a1e8b..0000000000 --- a/c/src/tests/sptests/sp02/system.h +++ /dev/null @@ -1,31 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp02/task1.c b/c/src/tests/sptests/sp02/task1.c deleted file mode 100644 index 0f6152dbb2..0000000000 --- a/c/src/tests/sptests/sp02/task1.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the task manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id tid2; - rtems_id tid3; - rtems_status_code status; - rtems_unsigned32 previous_priority; - - puts( "TA1 - rtems_task_wake_after - sleep 1 second" ); - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - status = rtems_task_ident( Task_name[ 2 ], RTEMS_SEARCH_ALL_NODES, &tid2 ); - directive_failed( status, "rtems_task_ident of TA2" ); - - printf( "TA1 - rtems_task_ident - tid of TA2 (0x%.8x)\n", tid2 ); - - status = rtems_task_ident( Task_name[ 3 ], RTEMS_SEARCH_ALL_NODES, &tid3 ); - directive_failed( status, "rtems_task_ident of TA3" ); - - printf( "TA1 - rtems_task_ident - tid of TA3 (0x%.8x)\n", tid3 ); - - status = rtems_task_set_priority( tid3, 2, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - puts( "TA1 - rtems_task_set_priority - set TA3's priority to 2" ); - - - puts( "TA1 - rtems_task_suspend - suspend TA2" ); - status = rtems_task_suspend( tid2 ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - puts( "TA1 - rtems_task_delete - delete TA2" ); - status = rtems_task_delete( tid2 ); - directive_failed( status, "rtems_task_delete of TA2" ); - - puts( "TA1 - rtems_task_wake_after - sleep for 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "*** END OF TEST 2 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp02/task2.c b/c/src/tests/sptests/sp02/task2.c deleted file mode 100644 index f39cc5b9fc..0000000000 --- a/c/src/tests/sptests/sp02/task2.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It sleeps for 1 minute but - * does not expect to wake up. Task 1 should suspend then delete it - * so that it appears to never wake up. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA2 - rtems_task_wake_after - sleep 1 minute" ); - status = rtems_task_wake_after( 60*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after in TA2" ); -} diff --git a/c/src/tests/sptests/sp02/task3.c b/c/src/tests/sptests/sp02/task3.c deleted file mode 100644 index 89bda38b7c..0000000000 --- a/c/src/tests/sptests/sp02/task3.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. It simply sleeps for 5 seconds - * and then deletes itself. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA3 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after in TA3" ); - - puts( "TA3 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA3" ); -} diff --git a/c/src/tests/sptests/sp03/init.c b/c/src/tests/sptests/sp03/init.c deleted file mode 100644 index 962d434284..0000000000 --- a/c/src/tests/sptests/sp03/init.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 3 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp03/sp03.doc b/c/src/tests/sptests/sp03/sp03.doc deleted file mode 100644 index 96d6d41d94..0000000000 --- a/c/src/tests/sptests/sp03/sp03.doc +++ /dev/null @@ -1,24 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test3 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, tm_wkafter, - tm_wkwhen, tm_set, tm_get - -concepts: - - a. Verifies conversion routines - _Utd_to_etd and _Etd_to_utd diff --git a/c/src/tests/sptests/sp03/sp03.scn b/c/src/tests/sptests/sp03/sp03.scn deleted file mode 100644 index 496982e86f..0000000000 --- a/c/src/tests/sptests/sp03/sp03.scn +++ /dev/null @@ -1,26 +0,0 @@ -*** TEST 3 *** -TA1 sets clock: 09:15:00 12/31/1988 -TA1 going to sleep: 09:15:00 12/31/1988 -TA2 09:15:01 12/31/1988 -TA2 09:15:02 12/31/1988 -TA2 09:15:03 12/31/1988 -TA2 09:15:04 12/31/1988 -TA1 awakened: 09:15:05 12/31/1988 -TA1 going to sleep: 09:15:05 12/31/1988 -TA2 09:15:05 12/31/1988 -TA2 09:15:06 12/31/1988 -TA2 09:15:07 12/31/1988 -TA2 09:15:08 12/31/1988 -TA2 09:15:09 12/31/1988 -TA1 awakened: 09:15:10 12/31/1988 -TA1 going to sleep: 09:15:10 12/31/1988 -TA2 09:15:10 12/31/1988 -TA2 09:15:11 12/31/1988 -TA2 09:15:12 12/31/1988 -TA2 09:15:13 12/31/1988 -TA2 09:15:14 12/31/1988 -TA1 awakened: 09:15:15 12/31/1988 -TA1 going to sleep: 09:15:15 12/31/1988 -TA2 09:15:15 12/31/1988 -TA2 09:15:16 12/31/1988 -*** END OF TEST 3 *** diff --git a/c/src/tests/sptests/sp03/system.h b/c/src/tests/sptests/sp03/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp03/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp03/task1.c b/c/src/tests/sptests/sp03/task1.c deleted file mode 100644 index e59fad45cf..0000000000 --- a/c/src/tests/sptests/sp03/task1.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the capability to - * set and read the executives calender and clock. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_time_of_day time; - - build_time( &time, 12, 31, 1988, 9, 15, 0, 0 ); - - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - put_name( Task_name[ 1 ], FALSE ); - print_time( " sets clock: ", &time, "\n" ); - - while( FOREVER ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - put_name( Task_name[ 1 ], FALSE ); - print_time( " going to sleep: ", &time, "\n" ); - - time.second += 5; - time.minute += ( time.second / 60 ); - time.second %= 60; - time.hour += ( time.minute / 60 ); - time.minute %= 60; - time.hour %= 24; - - status = rtems_task_wake_when( &time ); - directive_failed( status, "rtems_task_wake_when" ); - - put_name( Task_name[ 1 ], FALSE ); - print_time( " awakened: ", &time, "\n" ); - } -} diff --git a/c/src/tests/sptests/sp03/task2.c b/c/src/tests/sptests/sp03/task2.c deleted file mode 100644 index 8838c1db67..0000000000 --- a/c/src/tests/sptests/sp03/task2.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It repeatedly gets the system time - * and date, converts it to printable form, and print it. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_time_of_day time; - - while( FOREVER ) { - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second >= 17 ) { - puts( "*** END OF TEST 3 *** " ); - exit( 0 ); - } - - put_name( Task_name[ 2 ], FALSE ); - print_time( " ", &time, "\n" ); - } -} diff --git a/c/src/tests/sptests/sp04/init.c b/c/src/tests/sptests/sp04/init.c deleted file mode 100644 index b9fd541103..0000000000 --- a/c/src/tests/sptests/sp04/init.c +++ /dev/null @@ -1,113 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_extensions_table Extensions = { - NULL, /* task create user extension */ - NULL, /* task start user extension */ - NULL, /* task restart user extension */ - NULL, /* task delete user extension */ - Task_switch, /* task switch user extension */ - NULL, /* task begin user extension */ - NULL, /* task exitted user extension */ - NULL /* fatal error user extension */ -}; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_time_of_day time; - - puts( "\n\n*** TEST 4 ***" ); - build_time( &time, 12, 31, 1988, 9, 15, 0, 0 ); - - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - Extension_name[ 1 ] = rtems_build_name( 'E', 'X', 'T', ' ' ); - - status = rtems_extension_create( - Extension_name[ 1 ], - &Extensions, - &Extension_id[ 1 ] - ); - directive_failed( status, "rtems_extension_create" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - Run_count[ 1 ] = 0; - Run_count[ 2 ] = 0; - Run_count[ 3 ] = 0; - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp04/sp04.doc b/c/src/tests/sptests/sp04/sp04.doc deleted file mode 100644 index 6f6355abfa..0000000000 --- a/c/src/tests/sptests/sp04/sp04.doc +++ /dev/null @@ -1,38 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test4 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - tm_set, tm_get, ev_receive, t_mode - -concepts: - - a. Verifies timeslicing ( all tasks are in timeslice mode ). - - b. Verifies the tswitch user extension. - - c. Verifies the no preemption mode. - - d. Verifies time-slice gets reset even if only one task ready. - -output: - The task name and the current time are printed out each time that a new - task is being dispatched. The configured timeslice is 100 ticks - ( 1 second ); therefore, a task name and the time are printed once - every second. After each task runs 3 times, task 1 changes its mode to - no preempt and runs for about 6 seconds and then changes its mode back to - preempt mode. diff --git a/c/src/tests/sptests/sp04/sp04.scn b/c/src/tests/sptests/sp04/sp04.scn deleted file mode 100644 index f104c0c482..0000000000 --- a/c/src/tests/sptests/sp04/sp04.scn +++ /dev/null @@ -1,24 +0,0 @@ -*** TEST 4 *** -TA1 - 09:15:00 12/31/1988 -TA1 - rtems_task_suspend - on Task 2 -TA1 - rtems_task_suspend - on Task 3 -TA1 - killing time -TA1 - rtems_task_resume - on Task 2 -TA1 - rtems_task_resume - on Task 3 -TA2 - 09:15:03 12/31/1988 -TA3 - 09:15:04 12/31/1988 -TA1 - 09:15:05 12/31/1988 -TA2 - 09:15:06 12/31/1988 -TA3 - 09:15:07 12/31/1988 -TA1 - 09:15:08 12/31/1988 -TA1 - rtems_task_mode - change mode to NO RTEMS_PREEMPT -TA1 - 09:15:09 12/31/1988 -TA1 - 09:15:10 12/31/1988 -TA1 - 09:15:11 12/31/1988 -TA1 - 09:15:12 12/31/1988 -TA1 - 09:15:13 12/31/1988 -TA1 - 09:15:14 12/31/1988 -TA1 - rtems_task_mode - change mode to RTEMS_PREEMPT -TA2 - 09:15:15 12/31/1988 -TA3 - 09:15:16 12/31/1988 -*** END OF TEST 4 *** diff --git a/c/src/tests/sptests/sp04/system.h b/c/src/tests/sptests/sp04/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp04/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp04/task1.c b/c/src/tests/sptests/sp04/task1.c deleted file mode 100644 index 8d0a620ec3..0000000000 --- a/c/src/tests/sptests/sp04/task1.c +++ /dev/null @@ -1,104 +0,0 @@ -/* Task_1 - * - * This test serves as a test task. It verifies timeslicing activities - * and tswitch extension processing. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "clockdrv.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_unsigned32 seconds; - rtems_unsigned32 old_seconds; - rtems_mode previous_mode; - rtems_time_of_day time; - rtems_status_code status; - rtems_unsigned32 start; - rtems_unsigned32 end; - - puts( "TA1 - rtems_task_suspend - on Task 2" ); - status = rtems_task_suspend( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - puts( "TA1 - rtems_task_suspend - on Task 3" ); - status = rtems_task_suspend( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_suspend of TA3" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH, &start ); - directive_failed( status, "rtems_clock_get" ); - - puts( "TA1 - killing time" ); - - for ( ; ; ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH, &end ); - directive_failed( status, "rtems_clock_get" ); - - if ( end > (start + 2) ) - break; - } - - puts( "TA1 - rtems_task_resume - on Task 2" ); - status = rtems_task_resume( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_resume of TA2" ); - - puts( "TA1 - rtems_task_resume - on Task 3" ); - status = rtems_task_resume( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_resume of TA3" ); - - while ( FOREVER ) { - if ( Run_count[ 1 ] == 3 ) { - puts( "TA1 - rtems_task_mode - change mode to NO RTEMS_PREEMPT" ); - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - old_seconds = time.second; - - for ( seconds = 0 ; seconds < 6 ; ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second != old_seconds ) { - old_seconds = time.second; - seconds++; - print_time( "TA1 - ", &time, "\n" ); - } - } - - puts( "TA1 - rtems_task_mode - change mode to RTEMS_PREEMPT" ); - status = rtems_task_mode( - RTEMS_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - - while ( FOREVER ); - } - } -} diff --git a/c/src/tests/sptests/sp04/task2.c b/c/src/tests/sptests/sp04/task2.c deleted file mode 100644 index 7574e7dc9f..0000000000 --- a/c/src/tests/sptests/sp04/task2.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It is just a CPU bound task - * requiring timesliced operation. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - while( FOREVER ); -} diff --git a/c/src/tests/sptests/sp04/task3.c b/c/src/tests/sptests/sp04/task3.c deleted file mode 100644 index a0e7482944..0000000000 --- a/c/src/tests/sptests/sp04/task3.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. It is just a CPU bound task - * requiring timesliced operation. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - while( FOREVER ); -} diff --git a/c/src/tests/sptests/sp04/tswitch.c b/c/src/tests/sptests/sp04/tswitch.c deleted file mode 100644 index 3f0c2047bc..0000000000 --- a/c/src/tests/sptests/sp04/tswitch.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Task_switch - * - * This routine is the tswitch user extension. It determines which - * task is being switched to and displays a message indicating the - * time and date that it gained control. - * - * Input parameters: - * unused - pointer to currently running TCB - * heir - pointer to heir TCB - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_extension Task_switch( - rtems_tcb *unused, - rtems_tcb *heir -) -{ - rtems_unsigned32 index; - rtems_time_of_day time; - rtems_status_code status; - - index = task_number( heir->Object.id ); - - switch( index ) { - case 1: - case 2: - case 3: - Run_count[ index ] += 1; - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - put_name( Task_name[ index ], FALSE ); - print_time( " - ", &time, "\n" ); - - if ( time.second >= 16 ) { - puts( "*** END OF TEST 4 ***" ); - exit( 0 ); - } - break; - - case 0: - default: - break; - } -} diff --git a/c/src/tests/sptests/sp05/init.c b/c/src/tests/sptests/sp05/init.c deleted file mode 100644 index 2f6b8a6eac..0000000000 --- a/c/src/tests/sptests/sp05/init.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 5 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp05/sp05.doc b/c/src/tests/sptests/sp05/sp05.doc deleted file mode 100644 index 583381a37e..0000000000 --- a/c/src/tests/sptests/sp05/sp05.doc +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test5 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident - tm_wkafter, t_suspend, t_resume - -concepts: - - a. Verifies that a task can be suspended and resumed. - - b. Verifies that a task can suspend itself. diff --git a/c/src/tests/sptests/sp05/sp05.scn b/c/src/tests/sptests/sp05/sp05.scn deleted file mode 100644 index 40afb2d4b2..0000000000 --- a/c/src/tests/sptests/sp05/sp05.scn +++ /dev/null @@ -1,47 +0,0 @@ -*** TEST 5 *** -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_task_suspend - suspend self -TA3 - rtems_task_suspend - suspend self -TA1 - rtems_task_suspend - suspend TA3 -TA1 - rtems_task_resume - resume TA2 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA1 - rtems_task_suspend - suspend TA2 -TA1 - rtems_task_resume - resume TA3 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA1 - rtems_task_suspend - suspend TA3 -TA1 - rtems_task_resume - resume TA2 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA1 - rtems_task_suspend - suspend TA2 -TA1 - rtems_task_resume - resume TA3 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA1 - rtems_task_suspend - suspend TA3 -TA1 - rtems_task_resume - resume TA2 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA1 - rtems_task_suspend - suspend TA2 -TA1 - rtems_task_resume - resume TA3 -*** END OF TEST 5 *** diff --git a/c/src/tests/sptests/sp05/system.h b/c/src/tests/sptests/sp05/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp05/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp05/task1.c b/c/src/tests/sptests/sp05/task1.c deleted file mode 100644 index 9b99586fc8..0000000000 --- a/c/src/tests/sptests/sp05/task1.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies that tasks can - * be suspended and resumed. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * NOTE: The rtems_task_suspend() directives fail on the first iteration. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id tid2; - rtems_id tid3; - rtems_unsigned32 pass; - rtems_status_code status; - - status = rtems_task_ident( Task_name[ 2 ], 1, &tid2 ); - directive_failed( status, "rtems_task_ident of TA2" ); - - status = rtems_task_ident( Task_name[ 3 ], 1, &tid3 ); - directive_failed( status, "rtems_task_ident of TA3" ); - - for ( pass=1 ; pass <= 3 ; pass++ ) { - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after of TA1" ); - - puts( "TA1 - rtems_task_suspend - suspend TA3" ); - status = rtems_task_suspend( tid3 ); - if ( pass == 1 ) { - fatal_directive_status( - status, - RTEMS_ALREADY_SUSPENDED, - "rtems_task_suspend of TA3" - ); - } else { - directive_failed( status, "rtems_task_suspend of TA3" ); - } - - puts( "TA1 - rtems_task_resume - resume TA2" ); - status = rtems_task_resume( tid2 ); - directive_failed( status, "rtems_task_resume of TA2" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_suspend - suspend TA2" ); - status = rtems_task_suspend( tid2 ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - puts( "TA1 - rtems_task_resume - resume TA3" ); - status = rtems_task_resume( tid3 ); - directive_failed( status, "rtems_task_resume" ); - } - - puts( "*** END OF TEST 5 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp05/task2.c b/c/src/tests/sptests/sp05/task2.c deleted file mode 100644 index 3878d8106d..0000000000 --- a/c/src/tests/sptests/sp05/task2.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. Makes sure a task can suspend - * itself. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA2 - rtems_task_suspend - suspend self" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - while( FOREVER ) { - puts( "TA2 - rtems_task_wake_after - sleep 1 second" ); - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after of TA2" ); - } -} diff --git a/c/src/tests/sptests/sp05/task3.c b/c/src/tests/sptests/sp05/task3.c deleted file mode 100644 index c03c6de75b..0000000000 --- a/c/src/tests/sptests/sp05/task3.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. Makes sure a task can suspend - * itself. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA3 - rtems_task_suspend - suspend self" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend of TA3" ); - - while( FOREVER ) { - puts( "TA3 - rtems_task_wake_after - sleep 1 second" ); - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after of TA3" ); - } -} diff --git a/c/src/tests/sptests/sp06/init.c b/c/src/tests/sptests/sp06/init.c deleted file mode 100644 index 08bab06594..0000000000 --- a/c/src/tests/sptests/sp06/init.c +++ /dev/null @@ -1,90 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority previous_priority; - - puts( "\n\n*** TEST 6 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - Argument = 0; - Restart_argument = 1; - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 10, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, Argument ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, Argument ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_set_priority( Task_id[ 3 ], 5, &previous_priority ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp06/sp06.doc b/c/src/tests/sptests/sp06/sp06.doc deleted file mode 100644 index e8b96f1f6b..0000000000 --- a/c/src/tests/sptests/sp06/sp06.doc +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test6 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - tm_wkafter, t_restart - -concepts: - - a. Verifies that a task can restart a task other than itself. - - b. Verifies that a task can restart itself. diff --git a/c/src/tests/sptests/sp06/sp06.scn b/c/src/tests/sptests/sp06/sp06.scn deleted file mode 100644 index 64f6489dc8..0000000000 --- a/c/src/tests/sptests/sp06/sp06.scn +++ /dev/null @@ -1,40 +0,0 @@ -*** TEST 6 *** -TA1 - is beginning to run -TA1 - restarting TA3 -TA2 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting TA2 -TA2 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting self -TA1 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting TA2 -TA2 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting self -TA1 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting TA2 -TA2 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting self -TA1 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting TA2 -TA2 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting self -TA1 - is beginning to run -*** END OF TEST 6 *** - -NOTE: The prints from TA2 may not be as regular as indicated in the screen. - The important point is that TA2 is running and gets restarted. diff --git a/c/src/tests/sptests/sp06/system.h b/c/src/tests/sptests/sp06/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp06/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp06/task1.c b/c/src/tests/sptests/sp06/task1.c deleted file mode 100644 index 6d0f67f395..0000000000 --- a/c/src/tests/sptests/sp06/task1.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Task_1 - * - * This task serves as a test task. Verifies that a task can restart - * both itself and other tasks. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( argument ) -rtems_unsigned32 argument; -{ - rtems_unsigned32 pass; - rtems_status_code status; - - puts( "TA1 - is beginning to run" ); - - pass = argument + 1; - - if ( pass == 5 ) { - puts( "*** END OF TEST 6 ***" ); - exit( 0 ); - } - - if ( pass == 1 ) { - puts( "TA1 - restarting TA3" ); - status = rtems_task_restart( Task_id[ 3 ], Restart_argument ); - directive_failed( status, "rtems_task_restart of TA3" ); - - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_restart - restarting TA2" ); - status = rtems_task_restart( Task_id[ 2 ], Restart_argument ); - directive_failed( status, "rtems_task_restart TA2" ); - - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_restart - restarting self" ); - status = rtems_task_restart( Task_id[ 1 ], pass ); - directive_failed( status, "rtems_task_restart of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp06/task2.c b/c/src/tests/sptests/sp06/task2.c deleted file mode 100644 index 0c9e10bc07..0000000000 --- a/c/src/tests/sptests/sp06/task2.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It simply runs forever so - * another task can restart it. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( argument ) -rtems_task_argument argument; -{ - rtems_status_code status; - - puts( "TA2 - is beginning to run" ); - if ( argument == Argument ) { - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } - - while( FOREVER ) { - puts( "TA2 - rtems_task_wake_after - sleep 1/2 second" ); - status = rtems_task_wake_after( TICKS_PER_SECOND / 2 ); - directive_failed( status, "rtems_task_wake_after" ); - } -} diff --git a/c/src/tests/sptests/sp06/task3.c b/c/src/tests/sptests/sp06/task3.c deleted file mode 100644 index 379ef8de92..0000000000 --- a/c/src/tests/sptests/sp06/task3.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. It is started, has its priority - * changed, and when it runs it deletes itself. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp07/init.c b/c/src/tests/sptests/sp07/init.c deleted file mode 100644 index f5d00eae8e..0000000000 --- a/c/src/tests/sptests/sp07/init.c +++ /dev/null @@ -1,131 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_extensions_table Extensions = { - Task_create_extension, /* task create user extension */ - Task_start_extension, /* task start user extension */ - Task_restart_extension, /* task restart user extension */ - Task_delete_extension, /* task delete user extension */ - NULL, /* task switch user extension */ - NULL, /* begin user extension */ - Task_exit_extension, /* task exitted user extension */ - NULL /* fatal error extension */ -}; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 7 ***" ); - - Extension_name[ 1 ] = rtems_build_name( 'E', 'X', 'T', ' ' ); - - status = rtems_extension_create( - Extension_name[ 1 ], - &Extensions, - &Extension_id[ 1 ] - ); - directive_failed( status, "rtems_extension_create" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 250, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_create( - Task_name[ 4 ], - 254, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 4 ] - ); - directive_failed( status, "rtems_task_create of TA4" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_start( Task_id[ 4 ], Task_4, 0 ); - directive_failed( status, "rtems_task_start of TA4" ); - - status = rtems_task_restart( Task_id[ 3 ], 0 ); - directive_failed( status, "rtems_task_restart of TA3" ); - - status = rtems_task_set_note( Task_id[ 1 ], RTEMS_NOTEPAD_8, 4 ); - directive_failed( status, "task_set_node of TA1" ); - printf( "INIT - rtems_task_set_note - set TA1's RTEMS_NOTEPAD_8 " ); - puts ( "to TA1's priority: 04" ); - - status = rtems_task_set_note( Task_id[ 2 ], RTEMS_NOTEPAD_8, 4 ); - directive_failed( status, "task_set_node of TA2" ); - printf( "INIT - rtems_task_set_note - set TA2's RTEMS_NOTEPAD_8 " ); - puts ( "to TA2's priority: 04"); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp07/sp07.doc b/c/src/tests/sptests/sp07/sp07.doc deleted file mode 100644 index 47411194c6..0000000000 --- a/c/src/tests/sptests/sp07/sp07.doc +++ /dev/null @@ -1,37 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test7 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - t_delete, t_setreg, t_getreg, t_setpri, t_suspend - -concepts: - - a. Verifies that tasks can communicate with each other via the - t_setreg and t_getreg directives. - - b. Verifies that the highest priority task is dispatched to execute. - - c. Verifies setting the priority of both a ready and a blocked task. - - d. Verifies the deletion of ready and blocked tasks. - - e. Verifies the tcreate user extension. - - f. Verifies the tstart user extension. - - g. Verifies the tdelete user extension. diff --git a/c/src/tests/sptests/sp07/sp07.scn b/c/src/tests/sptests/sp07/sp07.scn deleted file mode 100644 index 1f6de2d93d..0000000000 --- a/c/src/tests/sptests/sp07/sp07.scn +++ /dev/null @@ -1,33 +0,0 @@ -*** TEST 7 *** -TASK_CREATE - TA1 - created. -TASK_CREATE - TA2 - created. -TASK_CREATE - TA3 - created. -TASK_CREATE - TA4 - created. -TASK_START - TA1 - started. -TASK_START - TA2 - started. -TASK_START - TA3 - started. -TASK_START - TA4 - started. -TASK_RESTART - TA3 - restarted. -INIT - rtems_task_set_note - set TA1's RTEMS_NOTEPAD_8 to TA1's priority: 04 -INIT - rtems_task_set_note - set TA2's RTEMS_NOTEPAD_8 to TA2's priority: 04 - -TA1 - rtems_task_set_priority - get initial priority of self: 04 -TA1 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: 04 -TA1 - rtems_task_set_note - set TA2's RTEMS_NOTEPAD_8: 03 -TA1 - rtems_task_set_priority - set TA2's priority: 03 -TA2 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: 03 -TA2 - rtems_task_set_note - set TA1's RTEMS_NOTEPAD_8: 02 -TA2 - rtems_task_set_priority - set TA1's priority: 02 -TA1 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: 02 -TA1 - rtems_task_set_note - set TA2's RTEMS_NOTEPAD_8: 01 -TA1 - rtems_task_set_priority - set TA2's priority: 01 -TA2 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: 01 -TA2 - rtems_task_suspend - suspend TA1 -TA2 - rtems_task_set_priority - set priority of TA1 ( blocked ) -TASK_DELETE - TA2 deleting TA1 -TASK_DELETE - TA2 deleting TA3 -TASK_DELETE - TA2 deleting TA2 -TA4 - exitting task -RTEMS_TASK_EXITTED - extension invoked for TA4 -*** END OF TEST 7 *** -TASK_DELETE - TA4 deleting TA4 <---- may not appear diff --git a/c/src/tests/sptests/sp07/system.h b/c/src/tests/sptests/sp07/system.h deleted file mode 100644 index 01a3e7f765..0000000000 --- a/c/src/tests/sptests/sp07/system.h +++ /dev/null @@ -1,35 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* constants */ - -#define SI_NAME 0x53595349 /* name - "SYSI" */ -#define I_NAME 0x49444c45 /* name - "IDLE" */ - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp07/task1.c b/c/src/tests/sptests/sp07/task1.c deleted file mode 100644 index 62fa35cee9..0000000000 --- a/c/src/tests/sptests/sp07/task1.c +++ /dev/null @@ -1,85 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies intertask communication - * using task notepads and verifies the the user extensions (tcreate, etc). - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority the_priority; - rtems_task_priority previous_priority; - - pause(); - - status = rtems_task_set_priority( - RTEMS_SELF, - RTEMS_CURRENT_PRIORITY, - &the_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - printf( - "TA1 - rtems_task_set_priority - get initial priority of self: %02d\n", - the_priority - ); - - while( FOREVER ) { - status = rtems_task_get_note( RTEMS_SELF, RTEMS_NOTEPAD_8, &the_priority ); - directive_failed( status, "rtems_task_get_note" ); - printf( -"TA1 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: %02d\n", - the_priority - ); - - if ( --the_priority == 0 ) { - puts( "TA1 - rtems_task_suspend - suspend TA2" ); - status = rtems_task_suspend( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_suspend" ); - - puts( "TA1 - rtems_task_set_priority - set priority of TA2 ( blocked )" ); - status = rtems_task_set_priority( Task_id[ 2 ], 5, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - status = rtems_task_delete( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_delete of TA2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); - } - - printf( "TA1 - rtems_task_set_note - set TA2's RTEMS_NOTEPAD_8: %02d\n", - the_priority - ); - status = rtems_task_set_note( Task_id[ 2 ], RTEMS_NOTEPAD_8, the_priority ); - directive_failed( status, "rtems_task_set_note" ); - - printf( "TA1 - rtems_task_set_priority - set TA2's priority: %02d\n", - the_priority - ); - status = rtems_task_set_priority( - Task_id[ 2 ], - the_priority, - &previous_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - } -} diff --git a/c/src/tests/sptests/sp07/task2.c b/c/src/tests/sptests/sp07/task2.c deleted file mode 100644 index 622bdd8e3d..0000000000 --- a/c/src/tests/sptests/sp07/task2.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. Plays with priorities to verify - * that the highest priority task is always executed. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority the_priority; - rtems_task_priority previous_priority; - - while( FOREVER ) { - - status = rtems_task_get_note( RTEMS_SELF, RTEMS_NOTEPAD_8, &the_priority ); - directive_failed( status, "rtems_task_get_note" ); - printf( -"TA2 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: %02d\n", - the_priority - ); - - if ( --the_priority == 0 ) { - puts( "TA2 - rtems_task_suspend - suspend TA1" ); - status = rtems_task_suspend( Task_id[ 1 ] ); - directive_failed( status, "rtems_task_suspend" ); - - puts( "TA2 - rtems_task_set_priority - set priority of TA1 ( blocked )" ); - status = rtems_task_set_priority( Task_id[ 1 ], 5, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - status = rtems_task_delete( Task_id[ 1 ] ); /* TA1 is blocked */ - directive_failed( status, "rtems_task_delete of TA1" ); - - status = rtems_task_delete( Task_id[ 3 ] ); /* TA3 is ready */ - directive_failed( status, "rtems_task_delete of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of SELD" ); - - } else { - - printf( "TA2 - rtems_task_set_note - set TA1's RTEMS_NOTEPAD_8: %02d\n", - the_priority - ); - status = rtems_task_set_note(Task_id[ 1 ], RTEMS_NOTEPAD_8, the_priority); - directive_failed( status, "rtems_task_set_note" ); - - printf( "TA2 - rtems_task_set_priority - set TA1's priority: %02d\n", - the_priority - ); - status = rtems_task_set_priority( - Task_id[ 1 ], - the_priority, - &previous_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - } - } -} diff --git a/c/src/tests/sptests/sp07/task3.c b/c/src/tests/sptests/sp07/task3.c deleted file mode 100644 index dce44b283b..0000000000 --- a/c/src/tests/sptests/sp07/task3.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Task_3 - * - * This routine serves as a low priority test task that should never - * execute. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - - while( FOREVER ) { - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - } -} diff --git a/c/src/tests/sptests/sp07/task4.c b/c/src/tests/sptests/sp07/task4.c deleted file mode 100644 index cc9de6d4c3..0000000000 --- a/c/src/tests/sptests/sp07/task4.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Task_4 - * - * This routine serves as a low priority test task that should exit - * a soon as it runs to test the taskexitted user extension. - * execute. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_4( - rtems_task_argument argument -) -{ - puts( "TA4 - exitting task" ); -} diff --git a/c/src/tests/sptests/sp07/taskexit.c b/c/src/tests/sptests/sp07/taskexit.c deleted file mode 100644 index ad52d1f3a7..0000000000 --- a/c/src/tests/sptests/sp07/taskexit.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Task_exit_extension - * - * This routine is the task exitted user extension. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_extension Task_exit_extension( - rtems_tcb *running_task -) -{ - if ( task_number( running_task->Object.id ) > 0 ) { - puts_nocr( "RTEMS_TASK_EXITTED - extension invoked for " ); - put_name( Task_name[ task_number( running_task->Object.id ) ], TRUE ); - } - - puts("*** END OF TEST 7 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp07/tcreate.c b/c/src/tests/sptests/sp07/tcreate.c deleted file mode 100644 index 7b066630f0..0000000000 --- a/c/src/tests/sptests/sp07/tcreate.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Task_create_extension - * - * This routine is the tcreate user extension. - * - * Input parameters: - * unused - pointer to currently running TCB - * created_task - pointer to new TCB being created - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_extension Task_create_extension( - rtems_tcb *unused, - rtems_tcb *created_task -) -{ - if ( task_number( created_task->Object.id ) > 0 ) { - puts_nocr( "TASK_CREATE - " ); - put_name( Task_name[ task_number( created_task->Object.id ) ], FALSE ); - puts( " - created." ); - } -} diff --git a/c/src/tests/sptests/sp07/tdelete.c b/c/src/tests/sptests/sp07/tdelete.c deleted file mode 100644 index 9d7c5749c1..0000000000 --- a/c/src/tests/sptests/sp07/tdelete.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Task_delete_extension - * - * This routine is the delete user extension. - * - * Input parameters: - * running_task - pointer to running TCB - * deleted_task - pointer to TCB deleted - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_extension Task_delete_extension( - rtems_tcb *running_task, - rtems_tcb *deleted_task -) -{ - if ( task_number( running_task->Object.id ) > 0 ) { - puts_nocr( "TASK_DELETE - " ); - put_name( Task_name[ task_number( running_task->Object.id ) ], FALSE ); - } - if ( task_number( deleted_task->Object.id ) > 0 ) { - puts_nocr( " deleting " ); - put_name( Task_name[ task_number( deleted_task->Object.id ) ], TRUE ); - } -} diff --git a/c/src/tests/sptests/sp07/trestart.c b/c/src/tests/sptests/sp07/trestart.c deleted file mode 100644 index 6cefb485a6..0000000000 --- a/c/src/tests/sptests/sp07/trestart.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Task_restart_extension - * - * This routine is the trestart user extension. - * - * Input parameters: - * unused - pointer to currently running TCB - * restarted_task - pointer to new TCB being started - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Task_restart_extension( - rtems_tcb *unused, - rtems_tcb *restarted_task -) -{ - if ( task_number( restarted_task->Object.id ) > 0 ) { - puts_nocr( "TASK_RESTART - " ); - put_name( Task_name[ task_number( restarted_task->Object.id ) ], FALSE ); - puts( " - restarted." ); - } -} diff --git a/c/src/tests/sptests/sp07/tstart.c b/c/src/tests/sptests/sp07/tstart.c deleted file mode 100644 index 1b1fc795b7..0000000000 --- a/c/src/tests/sptests/sp07/tstart.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Task_start_extension - * - * This routine is the tstart user extension. - * - * Input parameters: - * unused - pointer to currently running TCB - * started_task - pointer to new TCB being started - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_extension Task_start_extension( - rtems_tcb *unused, - rtems_tcb *started_task -) -{ - if ( task_number( started_task->Object.id ) > 0 ) { - puts_nocr( "TASK_START - " ); - put_name( Task_name[ task_number( started_task->Object.id ) ], FALSE ); - puts( " - started." ); - } -} diff --git a/c/src/tests/sptests/sp08/init.c b/c/src/tests/sptests/sp08/init.c deleted file mode 100644 index e3020035ce..0000000000 --- a/c/src/tests/sptests/sp08/init.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 8 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp08/sp08.doc b/c/src/tests/sptests/sp08/sp08.doc deleted file mode 100644 index 2b152779d7..0000000000 --- a/c/src/tests/sptests/sp08/sp08.doc +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test8 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - t_mode - -concepts: - - a. Verifies every mode change possible. - - b. Verifies the fatal error handler. diff --git a/c/src/tests/sptests/sp08/sp08.scn b/c/src/tests/sptests/sp08/sp08.scn deleted file mode 100644 index d85ccc384f..0000000000 --- a/c/src/tests/sptests/sp08/sp08.scn +++ /dev/null @@ -1,22 +0,0 @@ -*** TEST 8 *** -TA1 - rtems_task_mode - RTEMS_ASR - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: 00000400 -TA1 - rtems_task_mode - RTEMS_ASR - previous mode: 00000400 -TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: 00000200 -TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: 00000200 -TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: 00000100 -TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: 00000100 -TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 3 ) - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: 00000003 -TA1 - rtems_task_mode - set all modes - previous mode: 00000005 -TA1 - rtems_task_mode - set all modes - previous mode: 00000703 -TA1 - rtems_task_mode - clear all modes - previous mode: 00000703 -TA1 - rtems_task_mode - get current mode - previous mode: 00000000 -*** END OF TEST 8 *** - -NOTE: The interrupt level lines will be different on CPUs with few levels. diff --git a/c/src/tests/sptests/sp08/system.h b/c/src/tests/sptests/sp08/system.h deleted file mode 100644 index dec5151b46..0000000000 --- a/c/src/tests/sptests/sp08/system.h +++ /dev/null @@ -1,33 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -#define put_mode( _comment, _output_mode ) \ - printf( "%s %08x\n", _comment, _output_mode ); - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp08/task1.c b/c/src/tests/sptests/sp08/task1.c deleted file mode 100644 index eddcb11191..0000000000 --- a/c/src/tests/sptests/sp08/task1.c +++ /dev/null @@ -1,256 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies all combinations of - * task mode changes. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_mode previous_mode; - rtems_status_code status; - -/* BEGINNING OF RTEMS_ASR */ - - status = rtems_task_mode( RTEMS_ASR, RTEMS_ASR_MASK, &previous_mode ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_ASR - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_NO_ASR, - RTEMS_ASR_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_NO_ASR, - RTEMS_ASR_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_ASR, - RTEMS_ASR_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_ASR - previous mode: ", - previous_mode - ); - -/* END OF RTEMS_ASR */ - -/* BEGINNING OF RTEMS_TIMESLICE */ - - status = rtems_task_mode( - RTEMS_NO_TIMESLICE, - RTEMS_TIMESLICE_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_TIMESLICE, - RTEMS_TIMESLICE_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_TIMESLICE, - RTEMS_TIMESLICE_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_NO_TIMESLICE, - RTEMS_TIMESLICE_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: ", - previous_mode - ); - -/* END OF RTEMS_TIMESLICE */ - -/* BEGINNING OF RTEMS_PREEMPT */ - - status = rtems_task_mode( - RTEMS_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: ", - previous_mode - ); - -/* END OF RTEMS_PREEMPT */ - -/* BEGINNING OF RTEMS_INTERRUPT_LEVEL */ - - status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(3), - RTEMS_INTERRUPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 3 ) - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(5), - RTEMS_INTERRUPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: ", - previous_mode - ); - -/* END OF RTEMS_INTERRUPT_LEVEL */ - -/* BEGINNING OF COMBINATIONS */ - - status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR | - RTEMS_TIMESLICE | RTEMS_NO_PREEMPT, - RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK | - RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - set all modes - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR | - RTEMS_TIMESLICE | RTEMS_NO_PREEMPT, - RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK | - RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - set all modes - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(0) | RTEMS_ASR | RTEMS_NO_TIMESLICE | RTEMS_PREEMPT, - RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK | - RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - clear all modes - previous mode: ", - previous_mode - ); - -/* END OF COMBINATIONS */ - -/* BEGINNING OF CURRENT MODE */ - - status = rtems_task_mode( - RTEMS_CURRENT_MODE, - RTEMS_CURRENT_MODE, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - get current mode - previous mode: ", - previous_mode - ); - -/* END OF CURRENT MODE */ - - puts( "*** END OF TEST 8 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp09/delay.c b/c/src/tests/sptests/sp09/delay.c deleted file mode 100644 index dd78610be8..0000000000 --- a/c/src/tests/sptests/sp09/delay.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Delayed_routine - * - * This routine is used as the timer routine for Timer Manager tests. - * - * Input parameters: - * ignored - this parameter is ignored - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Delayed_routine( - rtems_id ignored_id, - void *ignored_address -) -{ -} diff --git a/c/src/tests/sptests/sp09/init.c b/c/src/tests/sptests/sp09/init.c deleted file mode 100644 index 3ca4b62404..0000000000 --- a/c/src/tests/sptests/sp09/init.c +++ /dev/null @@ -1,123 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 9 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' ); - Task_name[ 6 ] = rtems_build_name( 'T', 'A', '6', ' ' ); - Task_name[ 7 ] = rtems_build_name( 'T', 'A', '7', ' ' ); - Task_name[ 8 ] = rtems_build_name( 'T', 'A', '8', ' ' ); - Task_name[ 9 ] = rtems_build_name( 'T', 'A', '9', ' ' ); - Task_name[ 10 ] = rtems_build_name( 'T', 'A', 'A', ' ' ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'M', '1', ' ' ); - Semaphore_name[ 2 ] = rtems_build_name( 'S', 'M', '2', ' ' ); - Semaphore_name[ 3 ] = rtems_build_name( 'S', 'M', '3', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'Q', '1', ' ' ); - Queue_name[ 2 ] = rtems_build_name( 'M', 'Q', '2', ' ' ); - - Partition_name[ 1 ] = rtems_build_name( 'P', 'T', '1', ' ' ); - - Region_name[ 1 ] = rtems_build_name( 'R', 'N', '1', ' ' ); - - Port_name[ 1 ] = rtems_build_name( 'D', 'P', '1', ' ' ); - - Period_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - -#if 0 - status = rtems_task_create( - Task_name[1], - 4, - 10, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_task_create with illegal stack size" - ); - puts( "INIT - rtems_task_create - RTEMS_INVALID_SIZE" ); -#endif - puts( "INIT - rtems_task_create - RTEMS_INVALID_SIZE -- NOT CHECKED" ); - - status = rtems_task_create( - Task_name[1], - 0, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - fatal_directive_status( - status, - RTEMS_INVALID_PRIORITY, - "rtems_task_create with illegal priority" - ); - puts( "INIT - rtems_task_create - RTEMS_INVALID_PRIORITY" ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_restart( Task_id[ 1 ], 0 ); - fatal_directive_status( - status, - RTEMS_INCORRECT_STATE, - "rtems_task_restart of DORMANT task" - ); - puts( "INIT - rtems_task_restart - RTEMS_INCORRECT_STATE" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp09/isr.c b/c/src/tests/sptests/sp09/isr.c deleted file mode 100644 index 292e9c0225..0000000000 --- a/c/src/tests/sptests/sp09/isr.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Service_routine - * - * This routine is used as the timer routine for Interrupt Manager tests. - * - * Input parameters: - * ignored - this parameter is ignored - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_isr Service_routine( - rtems_vector_number ignored -) -{ -} diff --git a/c/src/tests/sptests/sp09/screen01.c b/c/src/tests/sptests/sp09/screen01.c deleted file mode 100644 index 39012f5051..0000000000 --- a/c/src/tests/sptests/sp09/screen01.c +++ /dev/null @@ -1,168 +0,0 @@ -/* Screen1 - * - * This routine generates error screen 1 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen1() -{ - rtems_unsigned32 notepad_value; - rtems_id self_id; - rtems_task_priority previous_priority; - rtems_status_code status; - - status = rtems_task_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_delete with illegal id" - ); - puts( "TA1 - rtems_task_delete - RTEMS_INVALID_ID" ); - - status = rtems_task_get_note( RTEMS_SELF, 100, ¬epad_value ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_task_get_note with illegal notepad" - ); - puts( "TA1 - rtems_task_get_note - RTEMS_INVALID_NUMBER" ); - - status = rtems_task_get_note( 100, RTEMS_NOTEPAD_LAST, ¬epad_value ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_get_note with illegal id" - ); - puts( "TA1 - rtems_task_get_note - RTEMS_INVALID_ID" ); - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &self_id ); - directive_failed( status, "rtems_task_ident of self" ); - - if ( self_id != Task_id[ 1 ] ) { - puts( "ERROR - rtems_task_ident - incorrect ID returned!" ); - } - puts( "TA1 - rtems_task_ident - current task RTEMS_SUCCESSFUL" ); - - status = rtems_task_ident( 100, RTEMS_SEARCH_ALL_NODES, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_task_ident with illegal name (local)" - ); - puts( "TA1 - rtems_task_ident - global RTEMS_INVALID_NAME" ); - - status = rtems_task_ident( 100, 1, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_task_ident with illegal name (global)" - ); - puts( "TA1 - rtems_task_ident - local RTEMS_INVALID_NAME" ); - - status = rtems_task_ident( 100, 2, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NODE, - "rtems_task_ident with illegal node" - ); - puts( "TA1 - rtems_task_ident - RTEMS_INVALID_NODE" ); - - status = rtems_task_restart( 100, 0 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_restart with illegal id" - ); - puts( "TA1 - rtems_task_restart - RTEMS_INVALID_ID" ); - - status = rtems_task_resume( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_resume with illegal id" - ); - puts( "TA1 - rtems_task_resume - RTEMS_INVALID_ID" ); - - status = rtems_task_resume( RTEMS_SELF ); - fatal_directive_status( - status, - RTEMS_INCORRECT_STATE, - "rtems_task_resume of ready task" - ); - puts( "TA1 - rtems_task_resume - RTEMS_INCORRECT_STATE" ); - - status = rtems_task_set_priority( RTEMS_SELF, 512, &previous_priority ); - fatal_directive_status( - status, - RTEMS_INVALID_PRIORITY, - "rtems_task_set_priority with illegal priority" - ); - puts( "TA1 - rtems_task_set_priority - RTEMS_INVALID_PRIORITY" ); - - status = rtems_task_set_priority( 100, 8, &previous_priority ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_set_priority with illegal id" - ); - puts( "TA1 - rtems_task_set_priority - RTEMS_INVALID_ID" ); - - status = rtems_task_set_note( - RTEMS_SELF, - RTEMS_NOTEPAD_LAST+10, - notepad_value - ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_task_set_note with illegal notepad" - ); - puts( "TA1 - rtems_task_set_note - RTEMS_INVALID_NUMBER" ); - - status = rtems_task_set_note( 100, RTEMS_NOTEPAD_LAST, notepad_value ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_set_note with illegal id" - ); - puts( "TA1 - rtems_task_set_note - RTEMS_INVALID_ID" ); - - status = rtems_task_start( 100, Task_1, 0 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_start with illegal id" - ); - puts( "TA1 - rtems_task_start - RTEMS_INVALID_ID" ); - - status = rtems_task_start( 0, Task_1, 0 ); - fatal_directive_status( - status, - RTEMS_INCORRECT_STATE, - "rtems_task_start of ready task" - ); - puts( "TA1 - rtems_task_start - RTEMS_INCORRECT_STATE" ); - - status = rtems_task_suspend( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_suspend with illegal id" - ); - puts( "TA1 - rtems_task_suspend - RTEMS_INVALID_ID" ); -} diff --git a/c/src/tests/sptests/sp09/screen02.c b/c/src/tests/sptests/sp09/screen02.c deleted file mode 100644 index 02eb5e4498..0000000000 --- a/c/src/tests/sptests/sp09/screen02.c +++ /dev/null @@ -1,192 +0,0 @@ -/* Screen2 - * - * This routine generates error screen 2 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen2() -{ - rtems_time_of_day time; - rtems_status_code status; - -/* errors before clock is set */ - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - if ( status == RTEMS_SUCCESSFUL ) { - puts( - "TA1 - rtems_clock_get - RTEMS_NOT_DEFINED -- DID BSP SET THE TIME OF DAY?" - ); - } else { - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_clock_get before clock is set" - ); - puts( "TA1 - rtems_clock_get - RTEMS_NOT_DEFINED" ); - } - - status = rtems_task_wake_when( &time ); - if ( status == RTEMS_SUCCESSFUL ) { - puts( -"TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED -- DID BSP SET THE TIME OF DAY?" - ); - } else { - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_task_wake_when before clock is set" - ); - puts( "TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED" ); - } - - status = rtems_timer_fire_when( 0, &time, Delayed_routine, NULL ); - if ( status == RTEMS_SUCCESSFUL ) { - puts( - "TA1 - timer_wake_when - RTEMS_NOT_DEFINED -- DID BSP SET THE TIME OF DAY?" - ); - } else { - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "task_fire_when before clock is set" - ); - puts( "TA1 - rtems_timer_fire_when - RTEMS_NOT_DEFINED" ); - } - - build_time( &time, 2, 5, 1987, 8, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid year" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 15, 5, 1988, 8, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid month" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 32, 1988, 8, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid day" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 25, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid hour" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 8, 61, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid minute" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 8, 30, 61, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid second" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 8, 30, 45, TICKS_PER_SECOND + 1 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid ticks per second" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 8, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set successful" ); - puts( " - RTEMS_SUCCESSFUL" ); - -/* rtems_task_wake_when */ - - build_time( &time, 2, 5, 1988, 8, 30, 48, TICKS_PER_SECOND + 1 ); - time.second += 3; - puts( "TA1 - rtems_task_wake_when - TICKINVALID - sleep about 3 seconds" ); - - status = rtems_task_wake_when( &time ); - directive_failed( - status, - "rtems_task_wake_when with invalid ticks per second" - ); - puts( "TA1 - rtems_task_wake_when - TICKINVALID - woke up RTEMS_SUCCESSFUL" ); - - build_time( &time, 2, 5, 1961, 8, 30, 48, 0 ); - print_time( "TA1 - rtems_task_wake_when - ", &time, "" ); - status = rtems_task_wake_when( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_task_wake_when with invalid year" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 25, 30, 48, 0 ); - print_time( "TA1 - rtems_task_wake_when - ", &time, "" ); - status = rtems_task_wake_when( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_task_wake_when with invalid hour" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - print_time( "TA1 - current time - ", &time, "\n" ); - - time.month = 1; - print_time( "TA1 - rtems_task_wake_when - ", &time, "" ); - status = rtems_task_wake_when( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_task_wake_when before current time" - ); - puts( " - RTEMS_INVALID_CLOCK" ); -} diff --git a/c/src/tests/sptests/sp09/screen03.c b/c/src/tests/sptests/sp09/screen03.c deleted file mode 100644 index 7f431c45df..0000000000 --- a/c/src/tests/sptests/sp09/screen03.c +++ /dev/null @@ -1,204 +0,0 @@ -/* Screen3 - * - * This routine generates error screen 3 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_configuration_table BSP_Configuration; - -void Screen3() -{ - rtems_name task_name; - rtems_status_code status; - - task_name = 1; - status = rtems_task_create( - 0, - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_task_create with illegal name" - ); - puts( "TA1 - rtems_task_create - RTEMS_INVALID_NAME" ); - - status = rtems_task_create( - task_name, - 1, - BSP_Configuration.work_space_size, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_task_create with a stack size larger than the workspace" - ); - puts( "TA1 - rtems_task_create - stack size - RTEMS_UNSATISFIED" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - puts( "TA1 - rtems_task_create - TA2 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_suspend( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_suspend of TA2" ); - puts( "TA1 - rtems_task_suspend - suspend TA2 - RTEMS_SUCCESSFUL" ); - - status = rtems_task_suspend( Task_id[ 2 ] ); - fatal_directive_status( - status, - RTEMS_ALREADY_SUSPENDED, - "rtems_task_suspend of suspended TA2" - ); - puts( "TA1 - rtems_task_suspend - suspend TA2 - RTEMS_ALREADY_SUSPENDED" ); - - status = rtems_task_resume( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_resume of TA2" ); - puts( "TA1 - rtems_task_resume - TA2 resumed - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 3 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - puts( "TA1 - rtems_task_create - TA3 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 4 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 4 ] - ); - directive_failed( status, "rtems_task_create of TA4" ); - puts( "TA1 - rtems_task_create - 4 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 5 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 5 ] - ); - directive_failed( status, "rtems_task_create of TA5" ); - puts( "TA1 - rtems_task_create - 5 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 6 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 6 ] - ); - directive_failed( status, "rtems_task_create of TA6" ); - puts( "TA1 - rtems_task_create - 6 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 7 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 7 ] - ); - directive_failed( status, "rtems_task_create of TA7" ); - puts( "TA1 - rtems_task_create - 7 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 8 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 8 ] - ); - directive_failed( status, "rtems_task_create of TA8" ); - puts( "TA1 - rtems_task_create - 8 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 9 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 9 ] - ); - directive_failed( status, "rtems_task_create of TA9" ); - puts( "TA1 - rtems_task_create - 9 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 10 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 10 ] - ); - directive_failed( status, "rtems_task_create of TA10" ); - puts( "TA1 - rtems_task_create - 10 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - task_name, - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_task_create for too many tasks" - ); - puts( "TA1 - rtems_task_create - 11 - RTEMS_TOO_MANY" ); - - status = rtems_task_create( - task_name, - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_GLOBAL, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_MP_NOT_CONFIGURED, - "rtems_task_create of global task in a single cpu system" - ); - puts( "TA1 - rtems_task_create - RTEMS_MP_NOT_CONFIGURED" ); -} diff --git a/c/src/tests/sptests/sp09/screen04.c b/c/src/tests/sptests/sp09/screen04.c deleted file mode 100644 index 6e3866cb05..0000000000 --- a/c/src/tests/sptests/sp09/screen04.c +++ /dev/null @@ -1,85 +0,0 @@ -/* Screen4 - * - * This routine generates error screen 4 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen4() -{ - rtems_event_set event_out; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &event_out - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_event_receive unsatisfied (ALL)" - ); - puts( "TA1 - rtems_event_receive - RTEMS_UNSATISFIED ( all conditions )" ); - - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_EVENT_ANY | RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &event_out - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_event_receive unsatisfied (ANY)" - ); - puts( "TA1 - rtems_event_receive - RTEMS_UNSATISFIED ( any condition )" ); - - puts( "TA1 - rtems_event_receive - timeout in 3 seconds" ); - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - 3 * TICKS_PER_SECOND, - &event_out - ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_event_receive" - ); - puts( "TA1 - rtems_event_receive - woke up with RTEMS_TIMEOUT" ); - - status = rtems_event_send( 100, RTEMS_EVENT_16 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_event_send with illegal id" - ); - puts( "TA1 - rtems_event_send - RTEMS_INVALID_ID" ); - - puts( "TA1 - rtems_task_wake_after - sleep 1 second - RTEMS_SUCCESSFUL" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - build_time( &time, 2, 5, 1988, 8, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - puts( " - RTEMS_SUCCESSFUL" ); -} diff --git a/c/src/tests/sptests/sp09/screen05.c b/c/src/tests/sptests/sp09/screen05.c deleted file mode 100644 index 9b091a407a..0000000000 --- a/c/src/tests/sptests/sp09/screen05.c +++ /dev/null @@ -1,148 +0,0 @@ -/* Screen5 - * - * This routine generates error screen 5 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen5() -{ - rtems_status_code status; - - status = rtems_semaphore_create( 0, 1, RTEMS_DEFAULT_ATTRIBUTES, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_semaphore_create with illegal name" - ); - puts( "TA1 - rtems_semaphore_create - RTEMS_INVALID_NAME" ); - - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - puts( "TA1 - rtems_semaphore_create - 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_semaphore_create( - Semaphore_name[ 2 ], - 1, - RTEMS_BINARY_SEMAPHORE, - &Semaphore_id[ 2 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - puts( "TA1 - rtems_semaphore_create - 2 - RTEMS_SUCCESSFUL" ); - - status = rtems_semaphore_create( - Semaphore_name[ 3 ], - 1, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_semaphore_create of too many" - ); - puts( "TA1 - rtems_semaphore_create - 3 - RTEMS_TOO_MANY" ); - - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_INHERIT_PRIORITY | RTEMS_BINARY_SEMAPHORE | RTEMS_FIFO, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_semaphore_create of RTEMS_FIFO RTEMS_INHERIT_PRIORITY" - ); - puts( "TA1 - rtems_semaphore_create - RTEMS_NOT_DEFINED" ); - - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_INHERIT_PRIORITY | RTEMS_COUNTING_SEMAPHORE | RTEMS_PRIORITY, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_semaphore_create of RTEMS_COUNTING_SEMAPHORE RTEMS_INHERIT_PRIORITY" - ); - puts( "TA1 - rtems_semaphore_create - RTEMS_NOT_DEFINED" ); - - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 2, - RTEMS_BINARY_SEMAPHORE, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_semaphore_create of binary semaphore with count > 1" - ); - puts( "TA1 - rtems_semaphore_create - RTEMS_INVALID_NUMBER" ); - - status = rtems_semaphore_create( - Semaphore_name[ 3 ], - 1, - RTEMS_GLOBAL, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_MP_NOT_CONFIGURED, - "rtems_semaphore_create of mp not configured" - ); - puts( "TA1 - rtems_semaphore_create - RTEMS_MP_NOT_CONFIGURED" ); - - status = rtems_semaphore_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_semaphore_delete with illegal id" - ); - puts( "TA1 - rtems_semaphore_delete - unknown RTEMS_INVALID_ID" ); - - status = rtems_semaphore_delete( 0x010100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_semaphore_delete with local illegal id" - ); - puts( "TA1 - rtems_semaphore_delete - local RTEMS_INVALID_ID" ); - - status = rtems_semaphore_ident( 100, RTEMS_SEARCH_ALL_NODES, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_semaphore_ident will illegal name (local)" - ); - puts( "TA1 - rtems_semaphore_ident - global RTEMS_INVALID_NAME" ); - - status = rtems_semaphore_ident( 100, 1, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_semaphore_ident will illegal name (global)" - ); - puts( "TA1 - rtems_semaphore_ident - local RTEMS_INVALID_NAME" ); -} diff --git a/c/src/tests/sptests/sp09/screen06.c b/c/src/tests/sptests/sp09/screen06.c deleted file mode 100644 index 40ad75d606..0000000000 --- a/c/src/tests/sptests/sp09/screen06.c +++ /dev/null @@ -1,125 +0,0 @@ -/* Screen6 - * - * This routine generates error screen 6 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen6() -{ - rtems_status_code status; - - status = rtems_semaphore_obtain( - 100, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_semaphore_obtain with illegal id" - ); - puts( "TA1 - rtems_semaphore_obtain - RTEMS_INVALID_ID" ); - - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain successful" ); - puts( "TA1 - rtems_semaphore_obtain - got sem 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_semaphore_obtain not available" - ); - puts( "TA1 - rtems_semaphore_obtain - RTEMS_UNSATISFIED" ); - - puts( "TA1 - rtems_semaphore_obtain - timeout in 3 seconds" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - 3 * TICKS_PER_SECOND - ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_semaphore_obtain timeout" - ); - puts( "TA1 - rtems_semaphore_obtain - woke up with RTEMS_TIMEOUT" ); - - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - fatal_directive_status( - status, - RTEMS_NOT_OWNER_OF_RESOURCE, - "rtems_semaphore_release and not owner" - ); - puts( "TA1 - rtems_semaphore_release - RTEMS_NOT_OWNER_OF_RESOURCE" ); - - status = rtems_semaphore_release( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_semaphore_release with illegal id" - ); - puts( "TA1 - rtems_semaphore_release - RTEMS_INVALID_ID" ); - - puts( "TA1 - rtems_task_start - start TA2 - RTEMS_SUCCESSFUL" ); - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - puts( "TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after (yield)" ); - - puts( "TA1 - rtems_semaphore_delete - delete sem 1 - RTEMS_SUCCESSFUL" ); - status = rtems_semaphore_delete( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_delete of SM1" ); - - puts( "TA1 - rtems_semaphore_obtain - binary semaphore" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain"); - - puts( "TA1 - rtems_semaphore_delete - delete sem 2 - RTEMS_RESOURCE_IN_USE" ); - status = rtems_semaphore_delete( Semaphore_id[ 2 ] ); - fatal_directive_status( - status, - RTEMS_RESOURCE_IN_USE, - "rtems_semaphore_delete of SM2" - ); - - puts( "TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after (yield)" ); - - status = rtems_task_delete( Task_id[ 2 ] ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_delete after the task has been deleted" - ); -} diff --git a/c/src/tests/sptests/sp09/screen07.c b/c/src/tests/sptests/sp09/screen07.c deleted file mode 100644 index fd808f833d..0000000000 --- a/c/src/tests/sptests/sp09/screen07.c +++ /dev/null @@ -1,184 +0,0 @@ -/* Screen7 - * - * This routine generates error screen 7 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen7() -{ - long buffer[ 4 ]; - rtems_unsigned32 count; - rtems_status_code status; - - status = rtems_message_queue_broadcast( 100, (long (*)[4]) buffer, &count ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_broadcast with illegal id" - ); - puts( "TA1 - rtems_message_queue_broadcast - RTEMS_INVALID_ID" ); - - status = rtems_message_queue_create( - 0, - 3, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_message_queue_create with illegal name" - ); - - puts( "TA1 - rtems_message_queue_create - Q 1 - RTEMS_INVALID_NAME" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 1, - RTEMS_GLOBAL, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_MP_NOT_CONFIGURED, - "rtems_message_queue_create of mp not configured" - ); - puts( "TA1 - rtems_message_queue_create - Q 1 - RTEMS_MP_NOT_CONFIGURED" ); - - status = rtems_message_queue_create( - Queue_name[ 1 ], - 2, - RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create successful" ); - puts( - "TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL" - ); - - status = rtems_message_queue_create( - Queue_name[ 2 ], - 1, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_message_queue_create of too many" - ); - puts( "TA1 - rtems_message_queue_create - Q 2 - RTEMS_TOO_MANY" ); - - status = rtems_message_queue_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_create with illegal id" - ); - puts( "TA1 - rtems_message_queue_delete - unknown RTEMS_INVALID_ID" ); - - status = rtems_message_queue_delete( 0x10100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_delete with local illegal id" - ); - puts( "TA1 - rtems_message_queue_delete - local RTEMS_INVALID_ID" ); - - status = rtems_message_queue_ident( 100, RTEMS_SEARCH_ALL_NODES, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_message_queue_ident with illegal name" - ); - puts( "TA1 - rtems_message_queue_ident - RTEMS_INVALID_NAME" ); - - status = rtems_message_queue_flush( 100, &count ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_flush with illegal id" - ); - puts( "TA1 - rtems_message_queue_flush - RTEMS_INVALID_ID" ); - - status = rtems_message_queue_receive( - 100, - (long (*)[4]) buffer, - RTEMS_DEFAULT_OPTIONS, - 0 - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_receive wit illegal id" - ); - puts( "TA1 - rtems_message_queue_receive - RTEMS_INVALID_ID" ); - - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4]) buffer, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_message_queue_receive unsatisfied" - ); - puts( "TA1 - rtems_message_queue_receive - Q 1 - RTEMS_UNSATISFIED" ); - - puts( "TA1 - rtems_message_queue_receive - Q 1 - timeout in 3 seconds" ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4]) buffer, - RTEMS_DEFAULT_OPTIONS, - 3 * TICKS_PER_SECOND - ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_message_queue_receive 3 second timeout" - ); - - puts( - "TA1 - rtems_message_queue_receive - Q 1 - woke up with RTEMS_TIMEOUT" - ); - - status = rtems_message_queue_send( 100, (long (*)[4]) buffer ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_send with illegal id" - ); - puts( "TA1 - rtems_message_queue_send - RTEMS_INVALID_ID" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4]) buffer ); - directive_failed( status, "rtems_message_queue_send" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4]) buffer ); - directive_failed( status, "rtems_message_queue_send" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4]) buffer ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_message_queue_send too many to a limited queue" - ); - puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_TOO_MANY" ); -} diff --git a/c/src/tests/sptests/sp09/screen08.c b/c/src/tests/sptests/sp09/screen08.c deleted file mode 100644 index 18c9b8d2d8..0000000000 --- a/c/src/tests/sptests/sp09/screen08.c +++ /dev/null @@ -1,121 +0,0 @@ -/* Screen8 - * - * This routine generates error screen 8 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen8() -{ - long buffer[ 4 ]; - rtems_status_code status; - - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete successful" ); - puts( "TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_create( - Queue_name[ 1 ], - 2, - RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create successful" ); - puts( - "TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL" - ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send successful" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send successful" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_message_queue_send too many to limited queue" - ); - puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_TOO_MANY" ); - - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete successful" ); - puts( "TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create successful" ); - puts( - "TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL" - ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send successful" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send successful" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_message_queue_send too many to limited queue" - ); - puts( - "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_UNSATISFIED" - ); - - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete successful" ); - puts( "TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create successful" ); - puts( - "TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL" - ); - - puts( "TA1 - rtems_task_start - start TA3 - RTEMS_SUCCESSFUL" ); - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - puts( "TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after (yield)" ); - - puts( "TA1 - rtems_message_queue_delete - delete Q 1 - RTEMS_SUCCESSFUL" ); - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete successful" ); - - puts( "TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after (yield)" ); -} diff --git a/c/src/tests/sptests/sp09/screen09.c b/c/src/tests/sptests/sp09/screen09.c deleted file mode 100644 index 5c6eece679..0000000000 --- a/c/src/tests/sptests/sp09/screen09.c +++ /dev/null @@ -1,140 +0,0 @@ -/* Screen9 - * - * This routine generates error screen 9 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen9() -{ - void *converted; - rtems_status_code status; - rtems_isr_entry old_service_routine; - - status = rtems_interrupt_catch( Service_routine, 500, &old_service_routine ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_interrupt_catch with invalid vector" - ); - puts( "TA1 - rtems_interrupt_catch - RTEMS_INVALID_NUMBER" ); - - status = rtems_interrupt_catch( NULL, 3, &old_service_routine ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_interrupt_catch with invalid handler" - ); - puts( "TA1 - rtems_interrupt_catch - RTEMS_INVALID_ADDRESS" ); - - status = rtems_signal_send( 100, RTEMS_SIGNAL_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_signal_send with illegal id" - ); - puts( "TA1 - rtems_signal_send - RTEMS_INVALID_ID" ); - - status = rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_16 ); - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_signal_send with no handler" - ); - puts( "TA1 - rtems_signal_send - RTEMS_NOT_DEFINED" ); - - status = rtems_port_create( - 0, - Internal_port_area, - External_port_area, - sizeof( Internal_port_area ), - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_port_create with illegal name" - ); - puts( "TA1 - rtems_port_create - RTEMS_INVALID_NAME" ); - - status = rtems_port_create( - Port_name[ 1 ], - &((char *)Internal_port_area)[ 1 ], - External_port_area, - sizeof( Internal_port_area ), - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_port_create with illegal address" - ); - puts( "TA1 - rtems_port_create - RTEMS_INVALID_ADDRESS" ); - - status = rtems_port_create( - Port_name[ 1 ], - Internal_port_area, - External_port_area, - sizeof( Internal_port_area ), - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_port_create of too many" - ); - puts( "TA1 - rtems_port_create - RTEMS_TOO_MANY" ); - - status = rtems_port_delete( 0 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_port_delete with illegal id" - ); - puts( "TA1 - rtems_port_delete - RTEMS_INVALID_ID" ); - - status = rtems_port_ident( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_port_ident with illegal name" - ); - puts( "TA1 - rtems_port_ident - RTEMS_INVALID_NAME" ); - - status = rtems_port_external_to_internal( - 100, - Internal_port_area, - &converted - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_port_external_to_internal with illegal id" - ); - puts( "TA1 - rtems_port_external_to_internal - RTEMS_INVALID_ID" ); - status = rtems_port_internal_to_external( - 100, - Internal_port_area, - &converted - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_port_internal_to_external with illegal id" - ); - puts( "TA1 - rtems_port_internal_to_external - RTEMS_INVALID_ID" ); -} diff --git a/c/src/tests/sptests/sp09/screen10.c b/c/src/tests/sptests/sp09/screen10.c deleted file mode 100644 index 53a5a8d6dc..0000000000 --- a/c/src/tests/sptests/sp09/screen10.c +++ /dev/null @@ -1,164 +0,0 @@ -/* Screen10 - * - * This routine generates error screen 10 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen10() -{ - rtems_status_code status; - - status = rtems_rate_monotonic_create( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_rate_monotonic_create with illegal name" - ); - puts( "TA1 - rtems_rate_monotonic_create - RTEMS_INVALID_NAME" ); - - status = rtems_rate_monotonic_create( Period_name[ 1 ], &Period_id[ 1 ] ); - directive_failed( status, "rtems_rate_monotonic_create successful" ); - puts( "TA1 - rtems_rate_monotonic_create - RTEMS_SUCCESSFUL" ); - - status = rtems_rate_monotonic_create( Period_name[ 1 ], &Junk_id ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_rate_monotonic_create of too many" - ); - puts( "TA1 - rtems_rate_monotonic_create - RTEMS_TOO_MANY" ); - - status = rtems_rate_monotonic_ident( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_rate_monotonic_ident with illegal name" - ); - puts( "TA1 - rtems_rate_monotonic_ident - RTEMS_INVALID_NAME" ); - - status = rtems_rate_monotonic_period( 100, 5 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_period with illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_period - unknown RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_period( 0x10100, 5 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_period with illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_period - local RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], RTEMS_PERIOD_STATUS ); - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_rate_monotonic_period status not defined" - ); - puts( - "TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_NOT_DEFINED" - ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], 100 ); - directive_failed( status, "rtems_rate_monotonic_period successful" ); - puts( "TA1 - rtems_rate_monotonic_period - 100 ticks - RTEMS_SUCCESSFUL" ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], RTEMS_PERIOD_STATUS ); - directive_failed( status, "rtems_rate_monotonic_period status" ); - puts( - "TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_SUCCESSFUL" - ); - - while ( FOREVER ) { - - status = rtems_rate_monotonic_period(Period_id[ 1 ], RTEMS_PERIOD_STATUS); - - if ( status == RTEMS_TIMEOUT ) break; - - directive_failed( - status, - "rtems_rate_monotonic_period waiting for timeout" - ); - } - puts( - "TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_TIMEOUT" - ); - - status = rtems_rate_monotonic_cancel( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_cancel with illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_cancel - unknown RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_cancel( 0x10100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_cancel will illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_cancel - local RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_cancel( Period_id[ 1 ] ); - directive_failed( status, "rtems_rate_monotonic_cancel" ); - puts( "TA1 - rtems_rate_monotonic_cancel - RTEMS_SUCCESSFUL" ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], 5 ); - directive_failed( status, "rtems_rate_monotonic_period restart" ); - - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], 5 ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_rate_monotonic_period" - ); - puts( "TA1 - rtems_rate_monotonic_period - 5 ticks - RTEMS_TIMEOUT" ); - - status = rtems_task_start( Task_id[ 4 ], Task_4, 0 ); - directive_failed( status, "rtems_task_start of TA4" ); - - puts( "TA1 - yielding to TA4" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - - status = rtems_rate_monotonic_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_delete with illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_delete - unknown RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_delete( 0x10100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_delete with illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_delete - local RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_delete( Period_id[ 1 ] ); - directive_failed( status, "rtems_rate_monotonic_delete" ); - puts( "TA1 - rtems_rate_monotonic_delete - RTEMS_SUCCESSFUL" ); -} diff --git a/c/src/tests/sptests/sp09/screen11.c b/c/src/tests/sptests/sp09/screen11.c deleted file mode 100644 index 8c13cd2490..0000000000 --- a/c/src/tests/sptests/sp09/screen11.c +++ /dev/null @@ -1,250 +0,0 @@ -/* Screen11 - * - * This routine generates error screen 11 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen11() -{ - void *buffer_address_1; - void *buffer_address_2; - void *buffer_address_3; - rtems_status_code status; - - status = rtems_partition_create( - 0, - Partition_good_area, - 128, - 40, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_partition_create with illegal name" - ); - puts( "TA1 - rtems_partition_create - RTEMS_INVALID_NAME" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 0, - 80, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_partition_create with illegal length" - ); - puts( "TA1 - rtems_partition_create - length - RTEMS_INVALID_SIZE" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_partition_create with illegal buffer size" - ); - puts( "TA1 - rtems_partition_create - buffer size - RTEMS_INVALID_SIZE" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 256, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_partition_create with buffer_size > length" - ); - puts( - "TA1 - rtems_partition_create - length < buffer size - RTEMS_INVALID_SIZE" - ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 64, - RTEMS_GLOBAL, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_MP_NOT_CONFIGURED, - "rtems_partition_create of global" - ); - puts( "TA1 - rtems_partition_create - RTEMS_MP_NOT_CONFIGURED" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_bad_area, - 128, - 64, - RTEMS_GLOBAL, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_partition_create with bad address" - ); - puts( "TA1 - rtems_partition_create - RTEMS_INVALID_ADDRESS" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 34, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_partition_create with unaligned buffer_size" - ); - puts( "TA1 - rtems_partition_create - RTEMS_INVALID_SIZE" ); - - status = rtems_partition_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_partition_delete with illegal id" - ); - puts( "TA1 - rtems_partition_delete - unknown RTEMS_INVALID_ID" ); - - status = rtems_partition_delete( 0x10100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_partition_delete with illegal id" - ); - puts( "TA1 - rtems_partition_delete - local RTEMS_INVALID_ID" ); - - status = rtems_partition_get_buffer( 100, &buffer_address_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_partition_get_buffer with illegal id" - ); - puts( "TA1 - rtems_partition_get_buffer - RTEMS_INVALID_ID" ); - - status = rtems_partition_ident( 0, RTEMS_SEARCH_ALL_NODES, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_partition_ident with illegal name" - ); - puts( "TA1 - rtems_partition_ident - RTEMS_INVALID_NAME" ); - - status = rtems_partition_return_buffer( 100, buffer_address_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_partition_return_buffer with illegal id" - ); - puts( "TA1 - rtems_partition_return_buffer - RTEMS_INVALID_ID" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 64, - RTEMS_DEFAULT_ATTRIBUTES, - &Partition_id[ 1 ] - ); - directive_failed( status, "rtems_partition_create" ); - puts( "TA1 - rtems_partition_create - RTEMS_SUCCESSFUL" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 32, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_partition_create of too many" - ); - puts( "TA1 - rtems_partition_create - RTEMS_TOO_MANY" ); - - status = rtems_partition_get_buffer( Partition_id[ 1 ], &buffer_address_1 ); - directive_failed( status, "rtems_partition_get_buffer"); - puts( "TA1 - rtems_partition_get_buffer - RTEMS_SUCCESSFUL" ); - - status = rtems_partition_get_buffer( Partition_id[ 1 ], &buffer_address_2 ); - directive_failed( status, "rtems_partition_get_buffer" ); - puts( "TA1 - rtems_partition_get_buffer - RTEMS_SUCCESSFUL" ); - - status = rtems_partition_get_buffer( Partition_id[ 1 ], &buffer_address_3 ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_partition_get_buffer unsatisfied" - ); - puts( "TA1 - rtems_partition_get_buffer - RTEMS_UNSATISFIED" ); - - status = rtems_partition_delete( Partition_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_RESOURCE_IN_USE, - "rtems_partition_delete with buffers in use" - ); - puts( "TA1 - rtems_partition_delete - RTEMS_RESOURCE_IN_USE" ); - - status = rtems_partition_return_buffer( - Partition_id[ 1 ], - Region_good_area /* NOTE: Region Memory */ - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_partition_return_buffer with buffer address out of partition" - ); - puts( - "TA1 - rtems_partition_return_buffer - RTEMS_INVALID_ADDRESS - out of range" - ); - - status = rtems_partition_return_buffer( - Partition_id[ 1 ], - &Partition_good_area[ 7 ] - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_partition_return_buffer with buffer address not on boundary" - ); - puts_nocr( "TA1 - rtems_partition_return_buffer - " ); - puts ( "RTEMS_INVALID_ADDRESS - not on boundary"); -} diff --git a/c/src/tests/sptests/sp09/screen12.c b/c/src/tests/sptests/sp09/screen12.c deleted file mode 100644 index 300d54043a..0000000000 --- a/c/src/tests/sptests/sp09/screen12.c +++ /dev/null @@ -1,327 +0,0 @@ -/* Screen12 - * - * This routine generates error screen 12 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen12() -{ - void *segment_address_1; - void *segment_address_2; - void *segment_address_3; - rtems_unsigned32 offset; - rtems_unsigned32 good_front_flag; - rtems_unsigned32 good_back_flag; - rtems_status_code status; - - status = rtems_region_create( - 0, - Region_good_area, - 128, - 32, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_region_create with illegal name" - ); - puts( "TA1 - rtems_region_create - RTEMS_INVALID_NAME" ); - - status = rtems_region_create( - Region_name[ 1 ], - Region_bad_area, - 128, - 32, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_region_create with illegal address" - ); - puts( "TA1 - rtems_region_create - RTEMS_INVALID_ADDRESS" ); - - status = rtems_region_create( - Region_name[ 1 ], - Region_good_area, - 128, - 34, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_region_create with illegal size" - ); - puts( "TA1 - rtems_region_create - RTEMS_INVALID_SIZE" ); - - status = rtems_region_create( - Region_name[ 1 ], - &Region_good_area[ REGION_START_OFFSET ], - REGION_LENGTH, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id[ 1 ] - ); - directive_failed( status, "rtems_region_create" ); - puts( "TA1 - rtems_region_create - RTEMS_SUCCESSFUL" ); - - status = rtems_region_create( - Region_name[ 1 ], - Region_good_area, - 512, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_region_create of too many" - ); - puts( "TA1 - rtems_region_create - RTEMS_TOO_MANY" ); - - status = rtems_region_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_region_delete with illegal id" - ); - puts( "TA1 - rtems_region_delete - unknown RTEMS_INVALID_ID" ); - - status = rtems_region_delete( 0x10100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_region_delete with illegal id" - ); - puts( "TA1 - rtems_region_delete - local RTEMS_INVALID_ID" ); - - status = rtems_region_ident( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_region_ident with illegal name" - ); - puts( "TA1 - rtems_region_ident - RTEMS_INVALID_NAME" ); - - status = rtems_region_get_segment( - 100, - 128, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_region_get_segment with illegal id" - ); - puts( "TA1 - rtems_region_get_segment - RTEMS_INVALID_ID" ); - - status = rtems_region_get_segment( - Region_id[ 1 ], - sizeof( Region_good_area ) * 2, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_region_get_segment with illegal size" - ); - puts( "TA1 - rtems_region_get_segment - RTEMS_INVALID_SIZE" ); - - status = rtems_region_get_segment( - Region_id[ 1 ], - 384, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts( "TA1 - rtems_region_get_segment - RTEMS_SUCCESSFUL" ); - - status = rtems_region_get_segment( - Region_id[ 1 ], - 384, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_region_get_segment unsatisfied" - ); - puts( "TA1 - rtems_region_get_segment - RTEMS_UNSATISFIED" ); - - puts( "TA1 - rtems_region_get_segment - timeout in 3 seconds" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 128, - RTEMS_DEFAULT_OPTIONS, - 3 * TICKS_PER_SECOND, - &segment_address_3 - ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_region_get_segment timeout" - ); - puts( "TA1 - rtems_region_get_segment - woke up with RTEMS_TIMEOUT" ); - - status = rtems_region_delete( Region_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_RESOURCE_IN_USE, - "rtems_region_delete with buffers in use" - ); - puts( "TA1 - rtems_region_delete - RTEMS_RESOURCE_IN_USE" ); - - status = rtems_region_return_segment( 100, segment_address_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_region_return_segment with illegal id" - ); - puts( "TA1 - rtems_region_return_segment - RTEMS_INVALID_ID" ); - - status = rtems_region_return_segment( Region_id[ 1 ], Region_good_area ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_region_return_segment with illegal segment" - ); - puts( "TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS" ); - -/* - * The following generate internal heap errors. Thus this code - * is subject to change if the heap code changes. - */ - - puts( "TA1 - rtems_debug_disable - RTEMS_DEBUG_REGION" ); - rtems_debug_disable( RTEMS_DEBUG_REGION ); - - offset = (segment_address_1 - (void *)Region_good_area) / 4; - -/* bad FRONT_FLAG error */ - - good_front_flag = Region_good_area[ offset - 1 ]; - Region_good_area[ offset - 1 ] = good_front_flag + 2; - - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_region_return_segment with back_flag != front_flag" - ); - puts( "TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS" ); - - Region_good_area[ offset - 1 ] = good_front_flag; - -/* bad FRONT_FLAG error */ - - good_back_flag = Region_good_area[ offset - 2 ]; - Region_good_area[ offset - 2 ] = 1024; - - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_region_return_segment with back_flag != front_flag" - ); - puts( "TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS" ); - - Region_good_area[ offset - 2 ] = good_back_flag; - - puts( "TA1 - rtems_debug_enable - RTEMS_DEBUG_REGION" ); - rtems_debug_enable( RTEMS_DEBUG_REGION ); - - status = rtems_region_extend( - 100, - Region_good_area, - 128 - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_region_extend with illegal id" - ); - puts( "TA1 - rtems_region_extend - RTEMS_INVALID_ID" ); - - status = rtems_region_extend( - Region_id[ 1 ], - &Region_good_area[ REGION_START_OFFSET + 16 ], - 128 - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_region_extend with illegal starting address" - ); - puts( "TA1 - rtems_region_extend - within heap - RTEMS_INVALID_ADDRESS" ); - - status = rtems_region_extend( - Region_id[ 1 ], - Region_bad_area, - 128 - ); - fatal_directive_status( - status, - RTEMS_NOT_IMPLEMENTED, - "rtems_region_extend with unsupported starting address" - ); - puts( - "TA1 - rtems_region_extend - non-contiguous lower - RTEMS_NOT_IMPLEMENTED" - ); - - status = rtems_region_extend( - Region_id[ 1 ], - &Region_good_area[ REGION_START_OFFSET - REGION_LENGTH ], - 128 - ); - fatal_directive_status( - status, - RTEMS_NOT_IMPLEMENTED, - "rtems_region_extend with unsupported starting address" - ); - puts( - "TA1 - rtems_region_extend - contiguous lower - RTEMS_NOT_IMPLEMENTED" - ); - - status = rtems_region_extend( - Region_id[ 1 ], - &Region_good_area[ REGION_START_OFFSET + REGION_LENGTH + 16 ], - 128 - ); - fatal_directive_status( - status, - RTEMS_NOT_IMPLEMENTED, - "rtems_region_extend with unsupported starting address" - ); - puts( - "TA1 - rtems_region_extend - non-contiguous higher - RTEMS_NOT_IMPLEMENTED" - ); - -} diff --git a/c/src/tests/sptests/sp09/screen13.c b/c/src/tests/sptests/sp09/screen13.c deleted file mode 100644 index c96adeec40..0000000000 --- a/c/src/tests/sptests/sp09/screen13.c +++ /dev/null @@ -1,115 +0,0 @@ -/* Screen13 - * - * This routine generates error screen 13 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen13() -{ - rtems_unsigned32 result; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_io_close( 0xffff, 0x0000, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_close with bad major number" - ); - puts( "TA1 - rtems_io_close - RTEMS_INVALID_NUMBER" ); - status = rtems_io_control( 0xffff, 0x00000, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_close with bad major number" - ); - puts( "TA1 - rtems_io_control - RTEMS_INVALID_NUMBER" ); - status = rtems_io_initialize( 0xffff, 0x00000, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_initialize with bad major number" - ); - puts( "TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER" ); - status = rtems_io_open( 0xffff, 0x00000, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_open with bad major number" - ); - puts( "TA1 - rtems_io_open - RTEMS_INVALID_NUMBER" ); - status = rtems_io_read( 0xffff, 0x00000, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_read with bad major number" - ); - puts( "TA1 - rtems_io_read - RTEMS_INVALID_NUMBER" ); - status = rtems_io_write( 0xffff, 0x0ffff, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_write with bad major number" - ); - puts( "TA1 - rtems_io_write - RTEMS_INVALID_NUMBER" ); - - build_time( &time, 12, 31, 2000, 23, 59, 59, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_set - ", &time, " - RTEMS_SUCCESSFUL\n" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, " - RTEMS_SUCCESSFUL\n" ); - - build_time( &time, 12, 31, 1999, 23, 59, 59, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_set - ", &time, " - RTEMS_SUCCESSFUL\n" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, " - RTEMS_SUCCESSFUL\n" ); - - build_time( &time, 12, 31, 2100, 23, 59, 59, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_set - ", &time, " - RTEMS_SUCCESSFUL\n" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, " - RTEMS_SUCCESSFUL\n" ); - - build_time( &time, 12, 31, 2099, 23, 59, 59, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_set - ", &time, " - RTEMS_SUCCESSFUL\n" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, " - RTEMS_SUCCESSFUL\n" ); - - build_time( &time, 12, 31, 1991, 23, 59, 59, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_set - ", &time, " - RTEMS_SUCCESSFUL\n" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, " - RTEMS_SUCCESSFUL\n" ); -} diff --git a/c/src/tests/sptests/sp09/screen14.c b/c/src/tests/sptests/sp09/screen14.c deleted file mode 100644 index bf80f04c3c..0000000000 --- a/c/src/tests/sptests/sp09/screen14.c +++ /dev/null @@ -1,162 +0,0 @@ -/* Screen14 - * - * This routine generates error screen 14 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen14() -{ - rtems_status_code status; - rtems_time_of_day time; - - status = rtems_timer_create( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_timer_create with illegal name" - ); - puts( "TA1 - rtems_timer_create - RTEMS_INVALID_NAME" ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - puts( "TA1 - rtems_timer_create - 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_timer_create( 2, &Junk_id ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_timer_create for too many" - ); - puts( "TA1 - rtems_timer_create - 2 - RTEMS_TOO_MANY" ); - - status = rtems_timer_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_delete with illegal id" - ); - puts( "TA1 - rtems_timer_delete - local RTEMS_INVALID_ID" ); - - status = rtems_timer_delete( 0x010100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_delete with illegal id" - ); - puts( "TA1 - rtems_timer_delete - global RTEMS_INVALID_ID" ); - - status = rtems_timer_ident( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_timer_ident with illegal name" - ); - puts( "TA1 - rtems_timer_ident - RTEMS_INVALID_NAME" ); - - status = rtems_timer_cancel( 0x010100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_cancel with illegal id" - ); - puts( "TA1 - rtems_timer_cancel - RTEMS_INVALID_ID" ); - - status = rtems_timer_cancel( Timer_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_INCORRECT_STATE, - "rtems_timer_cancel before initiated" - ); - puts( "TA1 - rtems_timer_cancel - RTEMS_INCORRECT_STATE" ); - - status = rtems_timer_reset( 0x010100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_reset with illegal id" - ); - puts( "TA1 - rtems_timer_reset - RTEMS_INVALID_ID" ); - - status = rtems_timer_reset( Timer_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_timer_reset before initiated" - ); - puts( "TA1 - rtems_timer_reset - RTEMS_NOT_DEFINED" ); - - status = rtems_timer_fire_after( - 0x010100, - 5 * TICKS_PER_SECOND, - Delayed_routine, - NULL - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_fire_after illegal id" - ); - puts( "TA1 - rtems_timer_fire_after - RTEMS_INVALID_ID" ); - - build_time( &time, 12, 31, 1994, 9, 0, 0, 0 ); - status = rtems_timer_fire_when( 0x010100, &time, Delayed_routine, NULL ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_fire_when with illegal id" - ); - puts( "TA1 - rtems_timer_fire_when - RTEMS_INVALID_ID" ); - - status = rtems_timer_fire_after( Timer_id[ 1 ], 0, Delayed_routine, NULL ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_timer_fire_after with 0 ticks" - ); - puts( "TA1 - rtems_timer_fire_after - RTEMS_INVALID_NUMBER" ); - - build_time( &time, 2, 5, 1987, 8, 30, 45, 0 ); - status = rtems_timer_fire_when( Timer_id[ 1 ], &time, Delayed_routine, NULL ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_timer_fire_when with illegal time" - ); - print_time( - "TA1 - rtems_timer_fire_when - ", - &time, - " - RTEMS_INVALID_CLOCK\n" - ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, "\n" ); - - build_time( &time, 2, 5, 1990, 8, 30, 45, 0 ); - status = rtems_timer_fire_when( Timer_id[ 1 ], &time, Delayed_routine, NULL ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_timer_fire_when before current time" - ); - print_time( - "TA1 - rtems_timer_fire_when - ", - &time, - " - before RTEMS_INVALID_CLOCK\n" - ); -} diff --git a/c/src/tests/sptests/sp09/sp09.doc b/c/src/tests/sptests/sp09/sp09.doc deleted file mode 100644 index f4e8391c47..0000000000 --- a/c/src/tests/sptests/sp09/sp09.doc +++ /dev/null @@ -1,36 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test9 - -directives: - ex_init, ex_start, tm_tick, i_return, - t_create,t_delete, t_getreg, t_ident, t_restart, t_resume, t_setpri, - t_setreg, t_start, t_suspend, tm_delete, tm_get, - tm_set, tm_wkafter, tm_wkwhen, ev_receive, ev_send, sm_create, sm_delete, - sm_ident, sm_p, sm_v, q_broadcast, q_create, q_delete, q_ident, q_receive, - q_send, q_urgent, as_catch, as_send, as_return, rn_create, rn_delete, - rn_getseg, rn_ident, rn_retseg, pt_create, pt_delete, pt_getbug, pt_ident, - pt_retbuf, de_close, de_cntrl, de_init, de_open, de_read, de_write - -concepts: - - a. Verifies all error codes returned by the executive in single - processor configurations. - - b. Verifies error conditions in the following kernel routines or macros: - _Ck_date_time, _Expired, _Q_submit, _Get_mnodes, _Get_node, - _Free_mem, _Get_mem, _Valid_block, _Set_tcb, _Set_resource, - _In_range, _On_boundary diff --git a/c/src/tests/sptests/sp09/sp09.scn b/c/src/tests/sptests/sp09/sp09.scn deleted file mode 100644 index 534fc47e09..0000000000 --- a/c/src/tests/sptests/sp09/sp09.scn +++ /dev/null @@ -1,249 +0,0 @@ -*** TEST 9 *** -INIT - rtems_task_create - RTEMS_INVALID_SIZE -- NOT CHECKED -INIT - rtems_task_create - RTEMS_INVALID_PRIORITY -INIT - rtems_task_restart - RTEMS_INCORRECT_STATE -TA1 - rtems_task_delete - RTEMS_INVALID_ID -TA1 - rtems_task_get_note - RTEMS_INVALID_NUMBER -TA1 - rtems_task_get_note - RTEMS_INVALID_ID -TA1 - rtems_task_ident - current task RTEMS_SUCCESSFUL -TA1 - rtems_task_ident - global RTEMS_INVALID_NAME -TA1 - rtems_task_ident - local RTEMS_INVALID_NAME -TA1 - rtems_task_ident - RTEMS_INVALID_NODE -TA1 - rtems_task_restart - RTEMS_INVALID_ID -TA1 - rtems_task_resume - RTEMS_INVALID_ID -TA1 - rtems_task_resume - RTEMS_INCORRECT_STATE -TA1 - rtems_task_set_priority - RTEMS_INVALID_PRIORITY -TA1 - rtems_task_set_priority - RTEMS_INVALID_ID -TA1 - rtems_task_set_note - RTEMS_INVALID_NUMBER -TA1 - rtems_task_set_note - RTEMS_INVALID_ID -TA1 - rtems_task_start - RTEMS_INVALID_ID -TA1 - rtems_task_start - RTEMS_INCORRECT_STATE -TA1 - rtems_task_suspend - RTEMS_INVALID_ID - -TA1 - rtems_clock_get - RTEMS_NOT_DEFINED -TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED -TA1 - rtems_timer_fire_when - RTEMS_NOT_DEFINED -TA1 - rtems_clock_set - 08:30:45 02/05/1987 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:30:45 15/05/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:30:45 02/32/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 25:30:45 02/05/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:61:45 02/05/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:30:61 02/05/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:30:45 02/05/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:30:45 02/05/1988 - RTEMS_SUCCESSFUL -TA1 - rtems_task_wake_when - TICKINVALID - sleep about 3 seconds -TA1 - rtems_task_wake_when - TICKINVALID - woke up RTEMS_SUCCESSFUL -TA1 - rtems_task_wake_when - 08:30:48 02/05/1961 - RTEMS_INVALID_CLOCK -TA1 - rtems_task_wake_when - 25:30:48 02/05/1988 - RTEMS_INVALID_CLOCK -TA1 - current time - 08:30:51 02/05/1988 -TA1 - rtems_task_wake_when - 08:30:51 01/05/1988 - RTEMS_INVALID_CLOCK - -TA1 - rtems_task_create - RTEMS_INVALID_NAME -TA1 - rtems_task_create - stack size - RTEMS_UNSATISFIED -TA1 - rtems_task_create - TA2 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_suspend - suspend TA2 - RTEMS_SUCCESSFUL -TA1 - rtems_task_suspend - suspend TA2 - RTEMS_ALREADY_SUSPENDED -TA1 - rtems_task_resume - TA2 resumed - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - TA3 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 4 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 5 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 6 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 7 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 8 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 9 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 10 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 11 - RTEMS_TOO_MANY -TA1 - rtems_task_create - RTEMS_MP_NOT_CONFIGURED - -TA1 - rtems_event_receive - RTEMS_UNSATISFIED ( all conditions ) -TA1 - rtems_event_receive - RTEMS_UNSATISFIED ( any condition ) -TA1 - rtems_event_receive - timeout in 3 seconds -TA1 - rtems_event_receive - woke up with RTEMS_TIMEOUT -TA1 - rtems_event_send - RTEMS_INVALID_ID -TA1 - rtems_task_wake_after - sleep 1 second - RTEMS_SUCCESSFUL -TA1 - rtems_clock_set - 08:30:45 02/05/1988 - RTEMS_SUCCESSFUL - -TA1 - rtems_semaphore_create - RTEMS_INVALID_NAME -TA1 - rtems_semaphore_create - 1 - RTEMS_SUCCESSFUL -TA1 - rtems_semaphore_create - 2 - RTEMS_SUCCESSFUL -TA1 - rtems_semaphore_create - 3 - RTEMS_TOO_MANY -TA1 - rtems_semaphore_create - RTEMS_NOT_DEFINED -TA1 - rtems_semaphore_create - RTEMS_NOT_DEFINED -TA1 - rtems_semaphore_create - RTEMS_INVALID_NUMBER -TA1 - rtems_semaphore_create - RTEMS_MP_NOT_CONFIGURED -TA1 - rtems_semaphore_delete - unknown RTEMS_INVALID_ID -TA1 - rtems_semaphore_delete - local RTEMS_INVALID_ID -TA1 - rtems_semaphore_ident - global RTEMS_INVALID_NAME -TA1 - rtems_semaphore_ident - local RTEMS_INVALID_NAME - -TA1 - rtems_semaphore_obtain - RTEMS_INVALID_ID -TA1 - rtems_semaphore_obtain - got sem 1 - RTEMS_SUCCESSFUL -TA1 - rtems_semaphore_obtain - RTEMS_UNSATISFIED -TA1 - rtems_semaphore_obtain - timeout in 3 seconds -TA1 - rtems_semaphore_obtain - woke up with RTEMS_TIMEOUT -TA1 - rtems_semaphore_release - RTEMS_NOT_OWNER_OF_RESOURCE -TA1 - rtems_semaphore_release - RTEMS_INVALID_ID -TA1 - rtems_task_start - start TA2 - RTEMS_SUCCESSFUL -TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL -TA2 - rtems_semaphore_obtain - sem 1 - RTEMS_WAIT FOREVER -TA1 - rtems_semaphore_delete - delete sem 1 - RTEMS_SUCCESSFUL -TA1 - rtems_semaphore_obtain - binary semaphore -TA1 - rtems_semaphore_delete - delete sem 2 - RTEMS_RESOURCE_IN_USE -TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL -TA2 - rtems_semaphore_obtain - woke up with RTEMS_OBJECT_WAS_DELETED -TA2 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL - -TA1 - rtems_message_queue_broadcast - RTEMS_INVALID_ID -TA1 - rtems_message_queue_create - Q 1 - RTEMS_INVALID_NAME -TA1 - rtems_message_queue_create - Q 1 - RTEMS_MP_NOT_CONFIGURED -TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_create - Q 2 - RTEMS_TOO_MANY -TA1 - rtems_message_queue_delete - unknown RTEMS_INVALID_ID -TA1 - rtems_message_queue_delete - local RTEMS_INVALID_ID -TA1 - rtems_message_queue_ident - RTEMS_INVALID_NAME -TA1 - rtems_message_queue_flush - RTEMS_INVALID_ID -TA1 - rtems_message_queue_receive - RTEMS_INVALID_ID -TA1 - rtems_message_queue_receive - Q 1 - RTEMS_UNSATISFIED -TA1 - rtems_message_queue_receive - Q 1 - timeout in 3 seconds -TA1 - rtems_message_queue_receive - Q 1 - woke up with RTEMS_TIMEOUT -TA1 - rtems_message_queue_send - RTEMS_INVALID_ID -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_TOO_MANY - -TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_TOO_MANY -TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_UNSATISFIED -TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL -TA1 - rtems_task_start - start TA3 - RTEMS_SUCCESSFUL -TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL -TA3 - rtems_message_queue_receive - Q 1 - RTEMS_WAIT FOREVER -TA1 - rtems_message_queue_delete - delete Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL -TA3 - rtems_message_queue_receive - woke up with RTEMS_OBJECT_WAS_DELETED -TA3 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL - -TA1 - rtems_interrupt_catch - RTEMS_INVALID_NUMBER -TA1 - rtems_interrupt_catch - RTEMS_INVALID_ADDRESS -TA1 - rtems_signal_send - RTEMS_INVALID_ID -TA1 - rtems_signal_send - RTEMS_NOT_DEFINED -TA1 - rtems_port_create - RTEMS_INVALID_NAME -TA1 - rtems_port_create - RTEMS_INVALID_ADDRESS -TA1 - rtems_port_create - RTEMS_TOO_MANY -TA1 - rtems_port_delete - RTEMS_INVALID_ID -TA1 - rtems_port_ident - RTEMS_INVALID_NAME -TA1 - rtems_port_external_to_internal - RTEMS_INVALID_ID -TA1 - rtems_port_internal_to_external - RTEMS_INVALID_ID - -TA1 - rtems_rate_monotonic_create - RTEMS_INVALID_NAME -TA1 - rtems_rate_monotonic_create - RTEMS_SUCCESSFUL -TA1 - rtems_rate_monotonic_create - RTEMS_TOO_MANY -TA1 - rtems_rate_monotonic_ident - RTEMS_INVALID_NAME -TA1 - rtems_rate_monotonic_period - unknown RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_period - local RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_NOT_DEFINED -TA1 - rtems_rate_monotonic_period - 100 ticks - RTEMS_SUCCESSFUL -TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_SUCCESSFUL -TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_TIMEOUT -TA1 - rtems_rate_monotonic_cancel - unknown RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_cancel - local RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_cancel - RTEMS_SUCCESSFUL -TA1 - rtems_rate_monotonic_period - 5 ticks - RTEMS_TIMEOUT -TA1 - yielding to TA4 -TA4 - rtems_rate_monotonic_cancel - RTEMS_NOT_OWNER_OF_RESOURCE -TA4 - rtems_rate_monotonic_period - RTEMS_NOT_OWNER_OF_RESOURCE -TA4 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL -TA1 - rtems_rate_monotonic_delete - unknown RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_delete - local RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_delete - RTEMS_SUCCESSFUL - -TA1 - rtems_partition_create - RTEMS_INVALID_NAME -TA1 - rtems_partition_create - length - RTEMS_INVALID_SIZE -TA1 - rtems_partition_create - buffer size - RTEMS_INVALID_SIZE -TA1 - rtems_partition_create - length < buffer size - RTEMS_INVALID_SIZE -TA1 - rtems_partition_create - RTEMS_MP_NOT_CONFIGURED -TA1 - rtems_partition_create - RTEMS_INVALID_ADDRESS -TA1 - rtems_partition_create - RTEMS_INVALID_SIZE -TA1 - rtems_partition_delete - unknown RTEMS_INVALID_ID -TA1 - rtems_partition_delete - local RTEMS_INVALID_ID -TA1 - rtems_partition_get_buffer - RTEMS_INVALID_ID -TA1 - rtems_partition_ident - RTEMS_INVALID_NAME -TA1 - rtems_partition_return_buffer - RTEMS_INVALID_ID -TA1 - rtems_partition_create - RTEMS_SUCCESSFUL -TA1 - rtems_partition_create - RTEMS_TOO_MANY -TA1 - rtems_partition_get_buffer - RTEMS_SUCCESSFUL -TA1 - rtems_partition_get_buffer - RTEMS_SUCCESSFUL -TA1 - rtems_partition_get_buffer - RTEMS_UNSATISFIED -TA1 - rtems_partition_delete - RTEMS_RESOURCE_IN_USE -TA1 - rtems_partition_return_buffer - RTEMS_INVALID_ADDRESS - out of range -TA1 - rtems_partition_return_buffer - RTEMS_INVALID_ADDRESS - not on boundary - -TA1 - rtems_region_create - RTEMS_INVALID_NAME -TA1 - rtems_region_create - RTEMS_INVALID_ADDRESS -TA1 - rtems_region_create - RTEMS_INVALID_SIZE -TA1 - rtems_region_create - RTEMS_SUCCESSFUL -TA1 - rtems_region_create - RTEMS_TOO_MANY -TA1 - rtems_region_delete - unknown RTEMS_INVALID_ID -TA1 - rtems_region_delete - local RTEMS_INVALID_ID -TA1 - rtems_region_ident - RTEMS_INVALID_NAME -TA1 - rtems_region_get_segment - RTEMS_INVALID_ID -TA1 - rtems_region_get_segment - RTEMS_INVALID_SIZE -TA1 - rtems_region_get_segment - RTEMS_SUCCESSFUL -TA1 - rtems_region_get_segment - RTEMS_UNSATISFIED -TA1 - rtems_region_get_segment - timeout in 3 seconds -TA1 - rtems_region_get_segment - woke up with RTEMS_TIMEOUT -TA1 - rtems_region_delete - RTEMS_RESOURCE_IN_USE -TA1 - rtems_region_return_segment - RTEMS_INVALID_ID -TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS -TA1 - rtems_debug_disable - RTEMS_DEBUG_REGION -TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS -TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS -TA1 - rtems_debug_enable - RTEMS_DEBUG_REGION -TA1 - rtems_region_extend - RTEMS_INVALID_ID -TA1 - rtems_region_extend - within heap - RTEMS_INVALID_ADDRESS -TA1 - rtems_region_extend - non-contiguous lower - RTEMS_NOT_IMPLEMENTED -TA1 - rtems_region_extend - contiguous lower - RTEMS_NOT_IMPLEMENTED -TA1 - rtems_region_extend - non-contiguous higher - RTEMS_NOT_IMPLEMENTED - -TA1 - rtems_io_close - RTEMS_INVALID_NUMBER -TA1 - rtems_io_control - RTEMS_INVALID_NUMBER -TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER -TA1 - rtems_io_open - RTEMS_INVALID_NUMBER -TA1 - rtems_io_read - RTEMS_INVALID_NUMBER -TA1 - rtems_io_write - RTEMS_INVALID_NUMBER -TA1 - rtems_clock_set - 23:59:59 12/31/2000 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_get - 00:00:00 01/01/2001 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_set - 23:59:59 12/31/1999 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_get - 00:00:00 01/01/2000 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_set - 23:59:59 12/31/2100 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_get - 00:00:00 01/01/2101 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_set - 23:59:59 12/31/2099 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_get - 00:00:00 01/01/2100 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_set - 23:59:59 12/31/1991 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_get - 00:00:00 01/01/1992 - RTEMS_SUCCESSFUL - -TA1 - rtems_timer_create - RTEMS_INVALID_NAME -TA1 - rtems_timer_create - 1 - RTEMS_SUCCESSFUL -TA1 - rtems_timer_create - 2 - RTEMS_TOO_MANY -TA1 - rtems_timer_delete - local RTEMS_INVALID_ID -TA1 - rtems_timer_delete - global RTEMS_INVALID_ID -TA1 - rtems_timer_ident - RTEMS_INVALID_NAME -TA1 - rtems_timer_cancel - RTEMS_INVALID_ID -TA1 - rtems_timer_cancel - RTEMS_INCORRECT_STATE -TA1 - rtems_timer_reset - RTEMS_INVALID_ID -TA1 - rtems_timer_reset - RTEMS_NOT_DEFINED -TA1 - rtems_timer_fire_after - RTEMS_INVALID_ID -TA1 - rtems_timer_fire_when - RTEMS_INVALID_ID -TA1 - rtems_timer_fire_after - RTEMS_INVALID_NUMBER -TA1 - rtems_timer_fire_when - 08:30:45 02/05/1987 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_get - 00:00:00 01/01/1992 -TA1 - rtems_timer_fire_when - 08:30:45 02/05/1990 - before RTEMS_INVALID_CLOCK -*** END OF TEST 9 *** diff --git a/c/src/tests/sptests/sp09/system.h b/c/src/tests/sptests/sp09/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp09/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp09/task1.c b/c/src/tests/sptests/sp09/task1.c deleted file mode 100644 index dbf28f57a8..0000000000 --- a/c/src/tests/sptests/sp09/task1.c +++ /dev/null @@ -1,74 +0,0 @@ -/* Task_1 - * - * This task generates all possible errors for the RTEMS executive. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#ifdef pause -#undef pause -#endif - -rtems_task Task_1( - rtems_task_argument argument -) -{ - Screen1(); - pause_and_screen_number( 2 ); - - Screen2(); - pause_and_screen_number( 3 ); - - Screen3(); - pause_and_screen_number( 4 ); - - Screen4(); - pause_and_screen_number( 5 ); - - Screen5(); - pause_and_screen_number( 6 ); - - Screen6(); - pause_and_screen_number( 7 ); - - Screen7(); - pause_and_screen_number( 8 ); - - Screen8(); - pause_and_screen_number( 9 ); - - Screen9(); - pause_and_screen_number( 10 ); - - Screen10(); - pause_and_screen_number( 11 ); - - Screen11(); - pause_and_screen_number( 12 ); - - Screen12(); - pause_and_screen_number( 13 ); - - Screen13(); - pause_and_screen_number( 14 ); - - Screen14(); - - puts( "*** END OF TEST 9 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp09/task2.c b/c/src/tests/sptests/sp09/task2.c deleted file mode 100644 index e9bda81fa3..0000000000 --- a/c/src/tests/sptests/sp09/task2.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. Its only purpose is to generate the - * error where a semaphore is deleted while a task is waiting for it. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA2 - rtems_semaphore_obtain - sem 1 - RTEMS_WAIT FOREVER" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_OBJECT_WAS_DELETED, - "rtems_semaphore_obtain waiting to be deleted" - ); - puts( - "TA2 - rtems_semaphore_obtain - woke up with RTEMS_OBJECT_WAS_DELETED" - ); - - puts( "TA2 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA2" ); -} diff --git a/c/src/tests/sptests/sp09/task3.c b/c/src/tests/sptests/sp09/task3.c deleted file mode 100644 index 8420c51f4d..0000000000 --- a/c/src/tests/sptests/sp09/task3.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. Its only purpose in life is to - * generate the error where a message queue is deleted while a task - * is waiting there for a message. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - long buffer[ 4 ]; - - puts( "TA3 - rtems_message_queue_receive - Q 1 - RTEMS_WAIT FOREVER" ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_OBJECT_WAS_DELETED, - "rtems_message_queue_receive waiting to be deleted" - ); - puts( - "TA3 - rtems_message_queue_receive - woke up with RTEMS_OBJECT_WAS_DELETED" - ); - - puts( "TA3 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA3" ); -} diff --git a/c/src/tests/sptests/sp09/task4.c b/c/src/tests/sptests/sp09/task4.c deleted file mode 100644 index 73cd63373c..0000000000 --- a/c/src/tests/sptests/sp09/task4.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Task_4 - * - * This routine serves as a test task. Its only purpose in life is to - * generate the error where a rate monotonic period is accessed by a - * task other than its creator. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_4( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_rate_monotonic_cancel( Period_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_NOT_OWNER_OF_RESOURCE, - "rtems_rate_monotonic_cancel not the owner" - ); - puts( "TA4 - rtems_rate_monotonic_cancel - RTEMS_NOT_OWNER_OF_RESOURCE" ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], 5 ); - fatal_directive_status( - status, - RTEMS_NOT_OWNER_OF_RESOURCE, - "rtems_rate_monotonic_period not the owner" - ); - puts( "TA4 - rtems_rate_monotonic_period - RTEMS_NOT_OWNER_OF_RESOURCE" ); - - puts( "TA4 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA4" ); -} diff --git a/c/src/tests/sptests/sp11/init.c b/c/src/tests/sptests/sp11/init.c deleted file mode 100644 index 99ef1d55a0..0000000000 --- a/c/src/tests/sptests/sp11/init.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 11 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - Timer_name[ 2 ] = rtems_build_name( 'T', 'M', '2', ' ' ); - Timer_name[ 3 ] = rtems_build_name( 'T', 'M', '3', ' ' ); - Timer_name[ 4 ] = rtems_build_name( 'T', 'M', '4', ' ' ); - Timer_name[ 5 ] = rtems_build_name( 'T', 'M', '5', ' ' ); - Timer_name[ 6 ] = rtems_build_name( 'T', 'M', '6', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create of TM1" ); - - status = rtems_timer_create( Timer_name[ 2 ], &Timer_id[ 2 ] ); - directive_failed( status, "rtems_timer_create of TM2" ); - - status = rtems_timer_create( Timer_name[ 3 ], &Timer_id[ 3 ] ); - directive_failed( status, "rtems_timer_create of TM3" ); - - status = rtems_timer_create( Timer_name[ 4 ], &Timer_id[ 4 ] ); - directive_failed( status, "rtems_timer_create of TM4" ); - - status = rtems_timer_create( Timer_name[ 5 ], &Timer_id[ 5 ] ); - directive_failed( status, "rtems_timer_create of TM5" ); - - status = rtems_timer_create( Timer_name[ 6 ], &Timer_id[ 6 ] ); - directive_failed( status, "rtems_timer_create of TM6" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp11/sp11.doc b/c/src/tests/sptests/sp11/sp11.doc deleted file mode 100644 index d88f5eb86d..0000000000 --- a/c/src/tests/sptests/sp11/sp11.doc +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test11 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - ev_send, ev_receive - tm_wkafter, tm_set, tm_get - -concepts: - - a. This test checks out the event manager along with the associated - event directives contained in the time manager. diff --git a/c/src/tests/sptests/sp11/sp11.scn b/c/src/tests/sptests/sp11/sp11.scn deleted file mode 100644 index 7abb8afe45..0000000000 --- a/c/src/tests/sptests/sp11/sp11.scn +++ /dev/null @@ -1,74 +0,0 @@ -*** TEST 11 *** -TA1 - rtems_event_send - send RTEMS_EVENT_16 to TA2 -TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_14 and RTEMS_EVENT_15 -TA2 - rtems_event_receive - waiting forever on RTEMS_EVENT_16 -TA2 - RTEMS_EVENT_16 received - eventout => 00010000 -TA2 - rtems_event_send - send RTEMS_EVENT_14 and RTEMS_EVENT_15 to TA1 -TA2 - rtems_event_receive - RTEMS_EVENT_17 or RTEMS_EVENT_18 - forever and ANY -TA1 - RTEMS_EVENT_14 and RTEMS_EVENT_15 received - eventout => 0000c000 -TA1 - rtems_event_send - send RTEMS_EVENT_18 to TA2 -TA1 - rtems_event_receive - waiting with 10 second timeout on RTEMS_EVENT_14 -TA2 - RTEMS_EVENT_17 or RTEMS_EVENT_18 received - eventout => 00040000 -TA2 - rtems_event_send - send RTEMS_EVENT_14 to TA1 -TA2 - rtems_clock_set - 08:15:00 02/12/1988 -TA2 - rtems_event_send - sending RTEMS_EVENT_10 to self after 5 seconds -TA2 - rtems_event_receive - waiting forever on RTEMS_EVENT_10 -TA1 - RTEMS_EVENT_14 received - eventout => 00004000 -TA1 - rtems_event_send - send RTEMS_EVENT_19 to TA2 -TA1 - rtems_clock_get - 08:15:00 02/12/1988 - -TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds -TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_18 -TA2 - RTEMS_EVENT_10 received - eventout => 00000400 -TA2 - rtems_clock_get - 08:15:05 02/12/1988 -TA2 - rtems_event_receive - RTEMS_PENDING_EVENTS -TA2 - eventout => 00080000 -TA2 - rtems_event_receive - RTEMS_EVENT_19 - RTEMS_NO_WAIT -TA2 - RTEMS_EVENT_19 received - eventout => 00080000 -TA2 - rtems_task_delete - deletes self -TA1 - RTEMS_EVENT_18 received - eventout => 00040000 -TA1 - rtems_clock_get - 08:15:05 02/12/1988 -TA1 - rtems_event_send - send RTEMS_EVENT_3 to self -TA1 - rtems_event_receive - RTEMS_EVENT_3 or RTEMS_EVENT_22 - NO_WAIT and ANY -TA1 - RTEMS_EVENT_3 received - eventout => 00000008 -TA1 - rtems_event_send - send RTEMS_EVENT_4 to self -TA1 - rtems_event_receive - RTEMS_EVENT_4 or RTEMS_EVENT_5 - forever and ANY -TA1 - RTEMS_EVENT_4 received - eventout => 00000010 - -TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds -TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_18 -TA1 - rtems_event_send - send RTEMS_EVENT_8 to self after 60 seconds -TA1 - rtems_event_send - send RTEMS_EVENT_9 to self after 60 seconds -TA1 - rtems_event_send - send RTEMS_EVENT_10 to self after 60 seconds -TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_8 -TA1 - rtems_clock_set - 08:15:00 02/12/1988 -TA1 - rtems_event_send - send RTEMS_EVENT_1 every second -TA1 - RTEMS_EVENT_1 received - eventout => 00000002 - at 08:15:01 02/12/1988 -TA1 - RTEMS_EVENT_1 received - eventout => 00000002 - at 08:15:02 02/12/1988 -TA1 - RTEMS_EVENT_1 received - eventout => 00000002 - at 08:15:03 02/12/1988 -TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_1 - -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 1 day -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 1 day -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 2 days -TA1 - rtems_timer_cancel - cancelling RTEMS_EVENT_11 to self in 1 day -TA1 - rtems_timer_cancel - cancelling RTEMS_EVENT_11 to self in 2 days -TA1 - rtems_event_send - resending RTEMS_EVENT_11 to self in 2 days -TA1 - rtems_clock_set - 08:15:03 02/15/1988 -TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_11 -TA1 - RTEMS_EVENT_11 received - eventout => 00000800 - -TA1 - rtems_event_send/rtems_event_receive combination -TA1 - rtems_clock_set - 08:15:00 02/12/1988 -TA1 - rtems_event_receive all outstanding events -TA1 - rtems_event_send - sending RTEMS_EVENT_10 to self in 1 day -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 2 days -TA1 - rtems_clock_set - 07:15:00 02/12/1988 -TA1 - set time backwards -TA1 - no events received -TA1 - rtems_clock_set - 07:15:00 02/14/1988 -TA1 - set time forwards (leave a timer) -TA1 - RTEMS_EVENT_10 received -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 100 ticks -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 200 ticks -*** END OF TEST 11 *** diff --git a/c/src/tests/sptests/sp11/system.h b/c/src/tests/sptests/sp11/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp11/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp11/task1.c b/c/src/tests/sptests/sp11/task1.c deleted file mode 100644 index 1b2fc86040..0000000000 --- a/c/src/tests/sptests/sp11/task1.c +++ /dev/null @@ -1,410 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the event maager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_event_set eventout; - rtems_time_of_day time; - rtems_status_code status; - rtems_unsigned32 index; - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_16 to TA2" ); - status = rtems_event_send( Task_id[ 2 ], RTEMS_EVENT_16 ); - directive_failed( status, "rtems_event_send" ); - - puts( - "TA1 - rtems_event_receive - waiting forever on " - "RTEMS_EVENT_14 and RTEMS_EVENT_15" - ); - status = rtems_event_receive( - RTEMS_EVENT_14 | RTEMS_EVENT_15, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( - "TA1 - RTEMS_EVENT_14 and RTEMS_EVENT_15 received - eventout => %08x\n", - eventout - ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_18 to TA2" ); - status = rtems_event_send( Task_id[ 2 ], RTEMS_EVENT_18 ); - directive_failed( status, "rtems_event_send" ); - - puts( - "TA1 - rtems_event_receive - waiting with 10 second timeout on RTEMS_EVENT_14" - ); - status = rtems_event_receive( - RTEMS_EVENT_14, - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA1 - RTEMS_EVENT_14 received - eventout => %08x\n", eventout ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_19 to TA2" ); - status = rtems_event_send( Task_id[ 2 ], RTEMS_EVENT_19 ); - directive_failed( status, "rtems_event_send" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - print_time( "TA1 - rtems_clock_get - ", &time, "\n" ); - -pause(); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds"); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - TA1_send_18_to_self_5_seconds, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 5 seconds" ); - - puts( "TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_18" ); - status = rtems_event_receive( - RTEMS_EVENT_18, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive of 18" ); - printf( "TA1 - RTEMS_EVENT_18 received - eventout => %08x\n", eventout ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "TA1 rtems_clock_get" ); - print_time( "TA1 - rtems_clock_get - ", &time, "\n" ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_3 to self" ); - status = rtems_event_send( RTEMS_SELF, RTEMS_EVENT_3 ); - directive_failed( status, "rtems_event_send" ); - - puts( - "TA1 - rtems_event_receive - RTEMS_EVENT_3 or " - "RTEMS_EVENT_22 - NO_WAIT and ANY" - ); - status = rtems_event_receive( - RTEMS_EVENT_3 | RTEMS_EVENT_22, - RTEMS_NO_WAIT | RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive of 3 and 22" ); - printf( "TA1 - RTEMS_EVENT_3 received - eventout => %08x\n", eventout ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_4 to self" ); - status = rtems_event_send( RTEMS_SELF, RTEMS_EVENT_4 ); - directive_failed( status, "rtems_event_send" ); - - puts ( - "TA1 - rtems_event_receive - RTEMS_EVENT_4 or " - "RTEMS_EVENT_5 - forever and ANY" - ); - status = rtems_event_receive( - RTEMS_EVENT_4 | RTEMS_EVENT_5, - RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA1 - RTEMS_EVENT_4 received - eventout => %08x\n", eventout ); - -pause(); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds"); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - TA1_send_18_to_self_5_seconds, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 5 seconds" ); - - puts( "TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_18"); - status = rtems_timer_cancel( Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_cancel" ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_8 to self after 60 seconds"); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 60 * TICKS_PER_SECOND, - TA1_send_8_to_self_60_seconds, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 60 seconds" ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_9 to self after 60 seconds"); - status = rtems_timer_fire_after( - Timer_id[ 2 ], - 60 * TICKS_PER_SECOND, - TA1_send_9_to_self_60_seconds, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 60 seconds" ); - - puts( - "TA1 - rtems_event_send - send RTEMS_EVENT_10 to self after 60 seconds" - ); - status = rtems_timer_fire_after( - Timer_id[ 3 ], - 60 * TICKS_PER_SECOND, - TA1_send_10_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 60 seconds" ); - - puts( "TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_8" ); - status = rtems_timer_cancel( Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_cancel" ); - - build_time( &time, 2, 12, 1988, 8, 15, 0, 0 ); - - print_time( "TA1 - rtems_clock_set - ", &time, "\n" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_1 every second" ); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - TICKS_PER_SECOND, - TA1_send_1_to_self_every_second, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 1 second" ); - - for ( index = 0; index < 3; index++ ) { - - status = rtems_event_receive( - RTEMS_EVENT_1, - RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - printf( "TA1 - RTEMS_EVENT_1 received - eventout => %08x - ", eventout ); - print_time( "at ", &time, "\n" ); - - if ( index < 2 ) { - status = rtems_timer_reset( Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_reset" ); - }; - - } - - puts( "TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_1" ); - status = rtems_timer_cancel( Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_cancel" ); - -pause(); - - time.day = 13; - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 1 day" ); - status = rtems_timer_fire_when( - Timer_id[ 1 ], - &time, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 1 day" ); - - time.hour = 7; - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 1 day" ); - status = rtems_timer_fire_when( - Timer_id[ 2 ], - &time, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 1 day" ); - - time.hour = 8; /* so code below has correct time/date */ - time.day = 14; - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 2 days" ); - status = rtems_timer_fire_when( - Timer_id[ 3 ], - &time, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 2 days" ); - - puts("TA1 - rtems_timer_cancel - cancelling RTEMS_EVENT_11 to self in 1 day"); - status = rtems_timer_cancel( Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_cancel" ); - - puts( - "TA1 - rtems_timer_cancel - cancelling RTEMS_EVENT_11 to self in 2 days" - ); - status = rtems_timer_cancel( Timer_id[ 3 ] ); - directive_failed( status, "rtems_timer_cancel" ); - - puts( - "TA1 - rtems_event_send - resending RTEMS_EVENT_11 to self in 2 days" - ); - status = rtems_timer_fire_when( - Timer_id[ 3 ], - &time, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 2 days" ); - - time.day = 15; - print_time( "TA1 - rtems_clock_set - ", &time, "\n" ); - status = rtems_clock_set( &time ); - directive_failed( status, "TA1 rtems_clock_set" ); - - puts( "TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_11" ); - status = rtems_event_receive( - RTEMS_EVENT_11, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA1 - RTEMS_EVENT_11 received - eventout => %08x\n", eventout ); - -pause(); - - puts( "TA1 - rtems_event_send/rtems_event_receive combination" ); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 10, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 10 ticks" ); - - status = rtems_event_receive( - RTEMS_EVENT_11, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - - build_time( &time, 2, 12, 1988, 8, 15, 0, 0 ); - - print_time( "TA1 - rtems_clock_set - ", &time, "\n" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - time.day = 13; - puts( "TA1 - rtems_event_receive all outstanding events" ); - status = rtems_event_receive( - RTEMS_ALL_EVENTS, - RTEMS_NO_WAIT | RTEMS_EVENT_ANY, - 0, - &eventout - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_event_receive all events" - ); - - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_10 to self in 1 day" ); - status = rtems_timer_fire_when( - Timer_id[ 1 ], - &time, - TA1_send_10_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 1 day" ); - - time.day = 14; - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 2 days" ); - status = rtems_timer_fire_when( - Timer_id[ 2 ], - &time, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 2 days" ); - - build_time( &time, 2, 12, 1988, 7, 15, 0, 0 ); - - print_time( "TA1 - rtems_clock_set - ", &time, "\n" ); - puts( "TA1 - set time backwards" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - status = rtems_event_receive( - RTEMS_ALL_EVENTS, - RTEMS_NO_WAIT | RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - if ( eventout ) printf( "ERROR -0x%08x events received\n", eventout ); - else puts( "TA1 - no events received" ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_event_receive all events" - ); - - build_time( &time, 2, 14, 1988, 7, 15, 0, 0 ); - - print_time( "TA1 - rtems_clock_set - ", &time, "\n" ); - puts( "TA1 - set time forwards (leave a timer)" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - status = rtems_event_receive( - RTEMS_ALL_EVENTS, - RTEMS_NO_WAIT | RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - if ( eventout == RTEMS_EVENT_10 ) puts( "TA1 - RTEMS_EVENT_10 received" ); - else printf( "ERROR -0x%08x events received\n", eventout ); - directive_failed( status, "rtems_event_receive all events" ); - - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 100 ticks"); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 100, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 100 ticks" ); - - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 200 ticks"); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 200, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 200 ticks" ); - - puts( "*** END OF TEST 11 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp11/task2.c b/c/src/tests/sptests/sp11/task2.c deleted file mode 100644 index 176582bc36..0000000000 --- a/c/src/tests/sptests/sp11/task2.c +++ /dev/null @@ -1,126 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. Multiple tasks are required to - * verify all capabilities of the event manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_event_set eventout; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA2 - rtems_event_receive - waiting forever on RTEMS_EVENT_16" ); - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA2 - RTEMS_EVENT_16 received - eventout => %08x\n", eventout ); - - puts( - "TA2 - rtems_event_send - send RTEMS_EVENT_14 and RTEMS_EVENT_15 to TA1" - ); - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_14 | RTEMS_EVENT_15 ); - directive_failed( status, "rtems_event_send" ); - - puts( - "TA2 - rtems_event_receive - RTEMS_EVENT_17 or " - "RTEMS_EVENT_18 - forever and ANY" - ); - status = rtems_event_receive( - RTEMS_EVENT_17 | RTEMS_EVENT_18, - RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( - "TA2 - RTEMS_EVENT_17 or RTEMS_EVENT_18 received - eventout => %08x\n", - eventout - ); - - puts( "TA2 - rtems_event_send - send RTEMS_EVENT_14 to TA1" ); - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_14 ); - directive_failed( status, "rtems_event_send" ); - - build_time( &time, 2, 12, 1988, 8, 15, 0, 0 ); - print_time( "TA2 - rtems_clock_set - ", &time, "\n" ); - status = rtems_clock_set( &time ); - directive_failed( status, "TA2 rtems_clock_set" ); - - time.second += 5; - puts( - "TA2 - rtems_event_send - sending RTEMS_EVENT_10 to self after 5 seconds" - ); - status = rtems_timer_fire_when( - Timer_id[ 5 ], - &time, - TA2_send_10_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when after 5 seconds" ); - - puts( "TA2 - rtems_event_receive - waiting forever on RTEMS_EVENT_10" ); - status = rtems_event_receive( - RTEMS_EVENT_10, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - printf( "TA2 - RTEMS_EVENT_10 received - eventout => %08x\n", eventout ); - print_time( "TA2 - rtems_clock_get - ", &time, "\n" ); - - puts( "TA2 - rtems_event_receive - RTEMS_PENDING_EVENTS" ); - status = rtems_event_receive( - RTEMS_PENDING_EVENTS, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA2 - eventout => %08x\n", eventout ); - - puts( "TA2 - rtems_event_receive - RTEMS_EVENT_19 - RTEMS_NO_WAIT" ); - status = rtems_event_receive( - RTEMS_EVENT_19, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA2 - RTEMS_EVENT_19 received - eventout => %08x\n", eventout ); - - puts( "TA2 - rtems_task_delete - deletes self" ); - status = rtems_task_delete( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_delete of TA2" ); -} diff --git a/c/src/tests/sptests/sp11/timer.c b/c/src/tests/sptests/sp11/timer.c deleted file mode 100644 index 3ec11b7345..0000000000 --- a/c/src/tests/sptests/sp11/timer.c +++ /dev/null @@ -1,97 +0,0 @@ -/* Timer_functions - * - * These routines are the timer service routines used by this test. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine TA1_send_18_to_self_5_seconds( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_18 ); - directive_failed( status, "rtems_event_send of 18" ); -} - -rtems_timer_service_routine TA1_send_8_to_self_60_seconds( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_8 ); - directive_failed( status, "rtems_event_send of 8" ); -} - -rtems_timer_service_routine TA1_send_9_to_self_60_seconds( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_9 ); - directive_failed( status, "rtems_event_send of 9" ); -} - -rtems_timer_service_routine TA1_send_10_to_self( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_10 ); - directive_failed( status, "rtems_event_send of 10" ); -} - -rtems_timer_service_routine TA1_send_1_to_self_every_second( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_1 ); - directive_failed( status, "rtems_event_send of 1" ); -} - -rtems_timer_service_routine TA1_send_11_to_self( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_11 ); - directive_failed( status, "rtems_event_send of 11" ); -} - -rtems_timer_service_routine TA2_send_10_to_self( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 2 ], RTEMS_EVENT_10 ); - directive_failed( status, "rtems_event_send of 10" ); -} diff --git a/c/src/tests/sptests/sp12/init.c b/c/src/tests/sptests/sp12/init.c deleted file mode 100644 index dd702ca75e..0000000000 --- a/c/src/tests/sptests/sp12/init.c +++ /dev/null @@ -1,176 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 12 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' ); - - Priority_task_name[ 1 ] = rtems_build_name( 'P', 'R', 'I', '1' ); - Priority_task_name[ 2 ] = rtems_build_name( 'P', 'R', 'I', '2' ); - Priority_task_name[ 3 ] = rtems_build_name( 'P', 'R', 'I', '3' ); - Priority_task_name[ 4 ] = rtems_build_name( 'P', 'R', 'I', '4' ); - Priority_task_name[ 5 ] = rtems_build_name( 'P', 'R', 'I', '5' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'M', '1', ' ' ); - Semaphore_name[ 2 ] = rtems_build_name( 'S', 'M', '2', ' ' ); - Semaphore_name[ 3 ] = rtems_build_name( 'S', 'M', '3', ' ' ); - - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create of SM1" ); - - status = rtems_semaphore_create( - Semaphore_name[ 2 ], - 0, - RTEMS_PRIORITY, - &Semaphore_id[ 2 ] - ); - directive_failed( status, "rtems_semaphore_create of SM2" ); - - status = rtems_semaphore_create( - Semaphore_name[ 3 ], - 1, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id[ 3 ] - ); - directive_failed( status, "rtems_semaphore_create of SM3" ); - - puts( "INIT - Forward priority queue test" ); - Priority_test_driver( 0 ); - - puts( "INIT - Backward priority queue test" ); - Priority_test_driver( 32 ); - -pause(); - - puts( "INIT - Binary Semaphore and Priority Inheritance Test" ); - - status = rtems_semaphore_delete( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_delete of SM2" ); - - puts( "INIT - rtems_semaphore_create - allocated binary semaphore" ); - status = rtems_semaphore_create( - Semaphore_name[ 2 ], - 0, - RTEMS_BINARY_SEMAPHORE | RTEMS_PRIORITY | RTEMS_INHERIT_PRIORITY, - &Semaphore_id[ 2 ] - ); - directive_failed( status, "rtems_semaphore_create of priority inherit SM2" ); - - puts( "INIT - rtems_semaphore_release - allocated binary semaphore" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release of SM2" ); - - puts( "INIT - rtems_semaphore_delete - allocated binary semaphore" ); - status = rtems_semaphore_delete( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_delete of SM2" ); - - status = rtems_semaphore_create( - Semaphore_name[ 2 ], - 1, - RTEMS_BINARY_SEMAPHORE | RTEMS_PRIORITY | RTEMS_INHERIT_PRIORITY, - &Semaphore_id[ 2 ] - ); - directive_failed( status, "rtems_semaphore_create of priority inherit SM2" ); - - Priority_test_driver( 64 ); - -pause(); - - status = rtems_semaphore_delete( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_delete of SM2" ); - - status = rtems_semaphore_create( - Semaphore_name[ 2 ], - 0, - RTEMS_PRIORITY, - &Semaphore_id[ 2 ] - ); - directive_failed( status, "rtems_semaphore_create of priority SM2" ); - - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release of SM2" ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp12/pridrv.c b/c/src/tests/sptests/sp12/pridrv.c deleted file mode 100644 index 7174faf784..0000000000 --- a/c/src/tests/sptests/sp12/pridrv.c +++ /dev/null @@ -1,131 +0,0 @@ -/* Priority_test_driver - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * priority_base - priority_base switch - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Priority_test_driver( - rtems_unsigned32 priority_base -) -{ - rtems_task_priority previous_priority; - rtems_unsigned32 index; - rtems_status_code status; - - for ( index = 1 ; index <= 5 ; index++ ) { - switch ( index ) { - case 1: - case 2: - case 3: - Task_priority[ index ] = priority_base + index; - break; - default: - Task_priority[ index ] = priority_base + 3; - break; - } - - status = rtems_task_create( - Priority_task_name[ index ], - Task_priority[ index ], - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Priority_task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - } - - if ( priority_base == 0 ) { - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_start( - Priority_task_id[ index ], - Priority_task, - index - ); - directive_failed( status, "rtems_task_start loop" ); - } - } else { - for ( index = 5 ; index >= 1 ; index-- ) { - status = rtems_task_start( - Priority_task_id[ index ], - Priority_task, - index - ); - directive_failed( status, "rtems_task_start loop" ); - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after loop" ); - - if ( priority_base == 64 ) { - if ( index == 4 ) { - status = rtems_task_set_priority( - Priority_task_id[ 5 ], - priority_base + 4, - &previous_priority - ); - printf( "PDRV - change priority of PRI5 from %d to %d\n", - previous_priority, - priority_base + 4 - ); - directive_failed( status, "PDRV rtems_task_set_priority" ); - } - status = rtems_task_set_priority( - Priority_task_id[ 5 ], - RTEMS_CURRENT_PRIORITY, - &previous_priority - ); - directive_failed( status, "PDRV rtems_task_set_priority CURRENT" ); - printf( "PDRV - priority of PRI5 is %d\n", previous_priority ); - } - } - } - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after after loop" ); - - if ( priority_base == 0 ) { - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release loop" ); - } - } - - if ( priority_base == 64 ) { - puts( "PDRV - rtems_task_resume - PRI5" ); - status = rtems_task_resume( Priority_task_id[ 5 ] ); - directive_failed( status, "rtems_task_resume" ); - - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after so PRI5 can run" ); - - status = rtems_task_delete( Priority_task_id[ 5 ] ); - directive_failed( status, "rtems_task_delete of PRI5" ); - } - else { - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_delete( Priority_task_id[ index ] ); - directive_failed( status, "rtems_task_delete loop" ); - } - } -} diff --git a/c/src/tests/sptests/sp12/pritask.c b/c/src/tests/sptests/sp12/pritask.c deleted file mode 100644 index 155ef345cd..0000000000 --- a/c/src/tests/sptests/sp12/pritask.c +++ /dev/null @@ -1,91 +0,0 @@ -/* Priority_task - * - * This routine serves as a test task. It verifies the semaphore manager. - * - * Input parameters: - * its_index - priority index - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Priority_task( - rtems_task_argument its_index -) -{ - rtems_interval timeout; - rtems_task_priority its_priority; - rtems_task_priority current_priority; - rtems_status_code status; - rtems_unsigned32 index; - - its_priority = Task_priority[ its_index ]; - - if ( its_priority < 3 ) - timeout = 5 * TICKS_PER_SECOND; - else - timeout = RTEMS_NO_TIMEOUT; - - put_name( Priority_task_name[ its_index ], FALSE ); - puts( " - rtems_semaphore_obtain - wait forever on SM2" ); - - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - timeout - ); - directive_failed( status, "rtems_semaphore_obtain of SM2" ); - - if ( its_priority < 64 ) { - printf( "PRI%d - WHY AM I HERE? (pri=%d)", its_index, its_priority ); - exit( 0 ); - } - - if ( its_index == 5 ) - puts( "PRI5 - rtems_task_suspend - until all priority tasks blocked" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend" ); - - puts( "PRI5 - rtems_task_delete - all tasks waiting on SM2" ); - for ( index = 1 ; index < 5 ; index++ ) { - status = rtems_task_delete( Priority_task_id[ index ] ); - directive_failed( status, "rtems_task_delete loop" ); - } - - puts( "PRI5 - rtems_semaphore_obtain - nested" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - timeout - ); - directive_failed( status, "rtems_semaphore_obtain nested" ); - - puts( "PRI5 - rtems_semaphore_release - nested" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release nested " ); - - puts( "PRI5 - rtems_semaphore_release - restore priority" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release" ); - - status = rtems_task_set_priority( - RTEMS_SELF, - RTEMS_CURRENT_PRIORITY, - ¤t_priority - ); - directive_failed( status, "PRI5 rtems_task_set_priority CURRENT" ); - printf( "PRI5 - priority of PRI5 is %d\n", current_priority ); - - (void) rtems_task_suspend( RTEMS_SELF ); -} diff --git a/c/src/tests/sptests/sp12/sp12.doc b/c/src/tests/sptests/sp12/sp12.doc deleted file mode 100644 index fc19d92ed7..0000000000 --- a/c/src/tests/sptests/sp12/sp12.doc +++ /dev/null @@ -1,27 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test12 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - sm_create, sm_ident, sm_delete, sm_p, sm_v, tm_wkafter, t_setpri - -concepts: - - a. This test checks out the semaphore manager. - - b. This test forces _Flush_taskq() to unblock a task waiting - on a deleted object. diff --git a/c/src/tests/sptests/sp12/sp12.scn b/c/src/tests/sptests/sp12/sp12.scn deleted file mode 100644 index 82ceca3c6e..0000000000 --- a/c/src/tests/sptests/sp12/sp12.scn +++ /dev/null @@ -1,78 +0,0 @@ -*** TEST 12 *** -INIT - Forward priority queue test -PRI1 - rtems_semaphore_obtain - wait forever on SM2 -PRI2 - rtems_semaphore_obtain - wait forever on SM2 -PRI3 - rtems_semaphore_obtain - wait forever on SM2 -PRI4 - rtems_semaphore_obtain - wait forever on SM2 -PRI5 - rtems_semaphore_obtain - wait forever on SM2 -INIT - Backward priority queue test -PRI5 - rtems_semaphore_obtain - wait forever on SM2 -PRI4 - rtems_semaphore_obtain - wait forever on SM2 -PRI3 - rtems_semaphore_obtain - wait forever on SM2 -PRI2 - rtems_semaphore_obtain - wait forever on SM2 -PRI1 - rtems_semaphore_obtain - wait forever on SM2 - -INIT - Binary Semaphore and Priority Inheritance Test -INIT - rtems_semaphore_create - allocated binary semaphore -INIT - rtems_semaphore_release - allocated binary semaphore -INIT - rtems_semaphore_delete - allocated binary semaphore -PRI5 - rtems_semaphore_obtain - wait forever on SM2 -PRI5 - rtems_task_suspend - until all priority tasks blocked -PDRV - priority of PRI5 is 67 -PRI4 - rtems_semaphore_obtain - wait forever on SM2 -PDRV - change priority of PRI5 from 67 to 68 -PDRV - priority of PRI5 is 67 -PRI3 - rtems_semaphore_obtain - wait forever on SM2 -PDRV - priority of PRI5 is 67 -PRI2 - rtems_semaphore_obtain - wait forever on SM2 -PDRV - priority of PRI5 is 66 -PRI1 - rtems_semaphore_obtain - wait forever on SM2 -PDRV - priority of PRI5 is 65 -PDRV - rtems_task_resume - PRI5 -PRI5 - rtems_task_delete - all tasks waiting on SM2 -PRI5 - rtems_semaphore_obtain - nested -PRI5 - rtems_semaphore_release - nested -PRI5 - rtems_semaphore_release - restore priority -PRI5 - priority of PRI5 is 68 - -TA1 - rtems_semaphore_ident - smid => 00010001 -TA1 - rtems_semaphore_obtain - wait forever on SM2 -TA1 - got SM2 -TA1 - rtems_semaphore_obtain - wait forever on SM3 -TA1 - got SM3 -TA1 - rtems_semaphore_obtain - get SM1 - RTEMS_NO_WAIT -TA1 - got SM1 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_semaphore_obtain - wait forever on SM1 -TA3 - rtems_semaphore_obtain - wait forever on SM2 - -TA1 - rtems_semaphore_release - release SM1 -TA1 - rtems_semaphore_obtain - waiting for SM1 with 10 second timeout -TA2 - got SM1 -TA2 - rtems_semaphore_release - release SM1 -TA2 - rtems_task_set_priority - make self highest priority task -TA2 - rtems_semaphore_obtain - wait forever on SM2 -TA1 - got SM1 -TA1 - rtems_semaphore_release - release SM2 -TA2 - got SM2 -TA2 - rtems_semaphore_release - release SM2 -TA2 - rtems_task_delete - delete self -TA1 - rtems_task_wake_after - sleep 5 seconds -TA3 - got SM2 -TA3 - rtems_semaphore_release - release SM2 -TA3 - rtems_semaphore_obtain - wait forever on SM3 - -TA1 - rtems_task_delete - delete TA3 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA4 - rtems_semaphore_obtain - wait forever on SM1 -TA5 - rtems_semaphore_obtain - wait forever on SM1 -TA1 - rtems_task_delete - delete TA4 -TA1 - rtems_semaphore_release - release SM1 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA5 - got SM1 -TA5 - rtems_semaphore_obtain - wait forever on SM1 -TA1 - rtems_semaphore_delete - delete SM1 -TA1 - rtems_semaphore_delete - delete SM3 -TA1 - rtems_task_delete - delete self -TA5 - SM1 deleted by TA1 -*** END OF TEST 12 *** diff --git a/c/src/tests/sptests/sp12/system.h b/c/src/tests/sptests/sp12/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp12/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp12/task1.c b/c/src/tests/sptests/sp12/task1.c deleted file mode 100644 index d3d7f3ed15..0000000000 --- a/c/src/tests/sptests/sp12/task1.c +++ /dev/null @@ -1,153 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the semaphore manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id smid; - rtems_status_code status; - - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &smid - ); - printf( "TA1 - rtems_semaphore_ident - smid => %08x\n", smid ); - directive_failed( status, "rtems_semaphore_ident of SM1" ); - - puts( "TA1 - rtems_semaphore_obtain - wait forever on SM2" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain of SM2" ); - puts( "TA1 - got SM2" ); - - puts( "TA1 - rtems_semaphore_obtain - wait forever on SM3" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 3 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain of SM3" ); - puts( "TA1 - got SM3" ); - - puts( "TA1 - rtems_semaphore_obtain - get SM1 - RTEMS_NO_WAIT" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain of SM1" ); - puts( "TA1 - got SM1" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - -pause(); - - puts( "TA1 - rtems_semaphore_release - release SM1" ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release of SM1" ); - - puts( - "TA1 - rtems_semaphore_obtain - waiting for SM1 with 10 second timeout" - ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND - ); - directive_failed( status, "rtems_semaphore_obtain of SM1" ); - puts( "TA1 - got SM1" ); - - puts( "TA1 - rtems_semaphore_release - release SM2" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release of SM2" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - -pause(); - - puts( "TA1 - rtems_task_delete - delete TA3" ); - status = rtems_task_delete( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_delete of TA3" ); - - status = rtems_task_create( - Task_name[ 4 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 4 ] - ); - directive_failed( status, "rtems_task_create of TA4" ); - - status = rtems_task_create( - Task_name[ 5 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 5 ] - ); - directive_failed( status, "rtems_task_create of TA5" ); - - status = rtems_task_start( Task_id[ 4 ], Task_4, 0 ); - directive_failed( status, "rtems_task_start of TA4" ); - - status = rtems_task_start( Task_id[ 5 ], Task5, 0 ); - directive_failed( status, "rtems_task_start of TA5" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_delete - delete TA4" ); - status = rtems_task_delete( Task_id[ 4 ] ); - directive_failed( status, "rtems_task_delete of TA4" ); - - puts( "TA1 - rtems_semaphore_release - release SM1" ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release on SM1" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_semaphore_delete - delete SM1" ); - status = rtems_semaphore_delete( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_delete of SM1" ); - - puts( "TA1 - rtems_semaphore_delete - delete SM3" ); - status = rtems_semaphore_delete( Semaphore_id[ 3 ] ); - directive_failed( status, "rtems_semaphore_delete of SM3" ); - - puts( "TA1 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA1" ); -} diff --git a/c/src/tests/sptests/sp12/task2.c b/c/src/tests/sptests/sp12/task2.c deleted file mode 100644 index 41d6735162..0000000000 --- a/c/src/tests/sptests/sp12/task2.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It simply obtains semaphores - * 1 and 2, the later when it is a high priority task. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority previous_priority; - - puts( "TA2 - rtems_semaphore_obtain - wait forever on SM1" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - puts( "TA2 - got SM1" ); - directive_failed( status, "rtems_semaphore_obtain on SM1" ); - - puts( "TA2 - rtems_semaphore_release - release SM1" ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release on SM1" ); - - puts( "TA2 - rtems_task_set_priority - make self highest priority task" ); - status = rtems_task_set_priority( RTEMS_SELF, 3, &previous_priority ); - directive_failed( status, "rtems_task_set_priority on TA2" ); - - puts( "TA2 - rtems_semaphore_obtain - wait forever on SM2" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - puts( "TA2 - got SM2" ); - directive_failed( status, "rtems_semaphore_obtain on SM2" ); - - puts( "TA2 - rtems_semaphore_release - release SM2" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release on SM2" ); - - puts( "TA2 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA2" ); -} diff --git a/c/src/tests/sptests/sp12/task3.c b/c/src/tests/sptests/sp12/task3.c deleted file mode 100644 index 7340b84ce6..0000000000 --- a/c/src/tests/sptests/sp12/task3.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. It simply obtains semaphore - * 2 and waits forever attempting to obtain semaphore 3. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA3 - rtems_semaphore_obtain - wait forever on SM2" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain on SM2" ); - puts( "TA3 - got SM2" ); - - puts( "TA3 - rtems_semaphore_release - release SM2" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release on SM2" ); - - puts( "TA3 - rtems_semaphore_obtain - wait forever on SM3" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 3 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain on SM3" ); -} diff --git a/c/src/tests/sptests/sp12/task4.c b/c/src/tests/sptests/sp12/task4.c deleted file mode 100644 index 9a0e952613..0000000000 --- a/c/src/tests/sptests/sp12/task4.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Task_4 - * - * This routine serves as a test task. It waits forever attempting - * to obtain semaphore 1. However, it should never get the semaphore! - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_4( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA4 - rtems_semaphore_obtain - wait forever on SM1" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain on SM1" ); -} diff --git a/c/src/tests/sptests/sp12/task5.c b/c/src/tests/sptests/sp12/task5.c deleted file mode 100644 index ccf10cd11a..0000000000 --- a/c/src/tests/sptests/sp12/task5.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Task5 - * - * This routine serves as a test task. It obtains semaphore 1 correctly - * once, then waits for semaphore 1 again. Task 1 should delete the - * semaphore, thus waking this task up. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task5( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA5 - rtems_semaphore_obtain - wait forever on SM1" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain on SM1" ); - puts( "TA5 - got SM1" ); - - puts( "TA5 - rtems_semaphore_obtain - wait forever on SM1" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_OBJECT_WAS_DELETED, - "rtems_semaphore_obtain on SM1" - ); - puts( "TA5 - SM1 deleted by TA1" ); - - puts( "*** END OF TEST 12 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp13/fillbuff.c b/c/src/tests/sptests/sp13/fillbuff.c deleted file mode 100644 index 43ccd86803..0000000000 --- a/c/src/tests/sptests/sp13/fillbuff.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Fill_buffer - * - * This test routine copies a given source string to a given destination - * buffer. - * - * Input parameters: - * source - pointer to string to be copied - * buffer - pointer to message buffer to be filled - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Fill_buffer( - char *source, - long *buffer -) -{ - memcpy( buffer, source, 16 ); -} diff --git a/c/src/tests/sptests/sp13/init.c b/c/src/tests/sptests/sp13/init.c deleted file mode 100644 index 0629cdff21..0000000000 --- a/c/src/tests/sptests/sp13/init.c +++ /dev/null @@ -1,112 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 13 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - Queue_name[ 1 ] = rtems_build_name( 'Q', '1', ' ', ' ' ); - Queue_name[ 2 ] = rtems_build_name( 'Q', '2', ' ', ' ' ); - Queue_name[ 3 ] = rtems_build_name( 'Q', '3', ' ', ' ' ); - - status = rtems_message_queue_create( - Queue_name[ 1 ], - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create of Q1" ); - - status = rtems_message_queue_create( - Queue_name[ 2 ], - 10, - RTEMS_PRIORITY | RTEMS_LIMIT, - &Queue_id[ 2 ] - ); - directive_failed( status, "rtems_message_queue_create of Q2" ); - - status = rtems_message_queue_create( - Queue_name[ 3 ], - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id[ 3 ] - ); - directive_failed( status, "rtems_message_queue_create of Q3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp13/putbuff.c b/c/src/tests/sptests/sp13/putbuff.c deleted file mode 100644 index e0bbfa4d7f..0000000000 --- a/c/src/tests/sptests/sp13/putbuff.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Put_buffer - * - * This test routine prints the given buffer. - * buffer. - * - * Input parameters: - * buffer - pointer to message buffer to be printer - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#define BUFFER_LENGTH 16 - -void Put_buffer( - long *buffer -) -{ - printf( "%16s", (char *)buffer ); -} diff --git a/c/src/tests/sptests/sp13/sp13.doc b/c/src/tests/sptests/sp13/sp13.doc deleted file mode 100644 index 4a0c9d24a0..0000000000 --- a/c/src/tests/sptests/sp13/sp13.doc +++ /dev/null @@ -1,25 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test13 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - q_create, q_ident, q_delete, q_send, q_urgent, q_broadcast, q_receive, - tm_wkafter, t_setpri - -concepts: - - a. This test checks out the message manager. diff --git a/c/src/tests/sptests/sp13/sp13.scn b/c/src/tests/sptests/sp13/sp13.scn deleted file mode 100644 index bd3af7da48..0000000000 --- a/c/src/tests/sptests/sp13/sp13.scn +++ /dev/null @@ -1,66 +0,0 @@ -*** TEST 13 *** -TA1 - rtems_message_queue_ident - qid => 00010001 -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_message_queue_receive - receive from queue 1 - RTEMS_NO_WAIT -TA2 - buffer received: BUFFER 1 TO Q 1 -TA2 - rtems_message_queue_receive - receive from queue 1 - RTEMS_WAIT FOREVER -TA2 - buffer received: BUFFER 2 TO Q 1 -TA2 - rtems_message_queue_receive - receive from queue 1 - RTEMS_WAIT FOREVER -TA3 - rtems_message_queue_receive - receive from queue 2 - RTEMS_WAIT FOREVER -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - buffer received: BUFFER 3 TO Q 1 -TA2 - rtems_task_set_priority - make self highest priority task -TA2 - rtems_message_queue_receive - receive from queue 2 - RTEMS_WAIT FOREVER - -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 2 -TA2 - buffer received: BUFFER 1 TO Q 2 -TA2 - rtems_message_queue_send - BUFFER 2 TO Q 2 -TA2 - rtems_message_queue_receive - receive from queue 1 - 10 second timeout -TA1 - rtems_message_queue_receive - receive from queue 1 - 10 second timeout -TA3 - buffer received: BUFFER 2 TO Q 2 -TA3 - rtems_message_queue_broadcast - BUFFER 3 TO Q 1 -TA2 - buffer received: BUFFER 3 TO Q 1 -TA2 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA3 - number of tasks awakened = 02 -TA3 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 3 TO Q 1 -TA1 - rtems_task_delete - delete TA2 -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 3 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA3 - buffer received: BUFFER 1 TO Q 3 -TA3 - rtems_task_delete - delete self - -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 3 -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 3 -TA1 - rtems_message_queue_send - BUFFER 4 TO Q 3 -TA1 - rtems_message_queue_urgent - BUFFER 5 TO Q 3 -TA1 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 5 TO Q 3 -TA1 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 2 TO Q 3 -TA1 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 3 TO Q 3 -TA1 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 4 TO Q 3 -TA1 - rtems_message_queue_urgent - BUFFER 3 TO Q 2 -TA1 - rtems_message_queue_receive - receive from queue 2 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 3 TO Q 2 - -TA1 - rtems_message_queue_delete - delete queue 1 -TA1 - rtems_message_queue_urgent - BUFFER 3 TO Q 2 -TA1 - rtems_message_queue_delete - delete queue 2 -TA1 - rtems_message_queue_flush - empty Q 3 -TA1 - 0 messages were flushed from Q 3 -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 3 -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 3 -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 3 -TA1 - rtems_message_queue_flush - Q 3 -TA1 - 3 messages were flushed from Q 3 -TA1 - rtems_message_queue_send until all message buffers consumed -TA1 - all message buffers consumed -TA1 - rtems_message_queue_flush - Q 3 -TA1 - 100 messages were flushed from Q 3 -*** END OF TEST 13 *** diff --git a/c/src/tests/sptests/sp13/system.h b/c/src/tests/sptests/sp13/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp13/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp13/task1.c b/c/src/tests/sptests/sp13/task1.c deleted file mode 100644 index 89c0619025..0000000000 --- a/c/src/tests/sptests/sp13/task1.c +++ /dev/null @@ -1,213 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the message manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_configuration_table BSP_Configuration; - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id qid; - long buffer[ 4 ]; - rtems_unsigned32 index; - rtems_unsigned32 count; - rtems_status_code status; - - status = rtems_message_queue_ident( - Queue_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &qid - ); - printf( "TA1 - rtems_message_queue_ident - qid => %08x\n", qid ); - directive_failed( status, "rtems_message_queue_ident" ); - - Fill_buffer( "BUFFER 1 TO Q 1", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1" ); - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 2 TO Q 1", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1" ); - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - Fill_buffer( "BUFFER 3 TO Q 1", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1" ); - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - -pause(); - - Fill_buffer( "BUFFER 1 TO Q 2", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 2" ); - status = rtems_message_queue_send( Queue_id[ 2 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts_nocr( "TA1 - rtems_message_queue_receive - receive from queue 1 - " ); - puts ( "10 second timeout" ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA1 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( "TA1 - rtems_task_delete - delete TA2" ); - status = rtems_task_delete( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_delete" ); - - Fill_buffer( "BUFFER 1 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - -pause(); - - Fill_buffer( "BUFFER 2 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 3 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 4 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 4 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 5 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_urgent - BUFFER 5 TO Q 3" ); - status = rtems_message_queue_urgent( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_urgent" ); - - for ( index = 1 ; index <= 4 ; index++ ) { - puts( - "TA1 - rtems_message_queue_receive - receive from queue 3 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 3 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA1 - buffer received: " ); - Put_buffer( buffer ); - new_line; - } - - Fill_buffer( "BUFFER 3 TO Q 2", buffer ); - puts( "TA1 - rtems_message_queue_urgent - BUFFER 3 TO Q 2" ); - status = rtems_message_queue_urgent( Queue_id[ 2 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_urgent" ); - - puts( - "TA1 - rtems_message_queue_receive - receive from queue 2 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 2 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA1 - buffer received: " ); - Put_buffer( buffer ); - new_line; - -pause(); - - puts( "TA1 - rtems_message_queue_delete - delete queue 1" ); - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete" ); - - Fill_buffer( "BUFFER 3 TO Q 2", buffer ); - puts( "TA1 - rtems_message_queue_urgent - BUFFER 3 TO Q 2" ); - status = rtems_message_queue_urgent( Queue_id[ 2 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_urgent" ); - - puts( "TA1 - rtems_message_queue_delete - delete queue 2" ); - status = rtems_message_queue_delete( Queue_id[ 2 ] ); - directive_failed( status, "rtems_message_queue_delete" ); - - puts( "TA1 - rtems_message_queue_flush - empty Q 3" ); - status = rtems_message_queue_flush( Queue_id[ 3 ], &count ); - printf( "TA1 - %d messages were flushed from Q 3\n", count ); - - Fill_buffer( "BUFFER 1 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 2 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 3 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "TA1 - rtems_message_queue_flush - Q 3" ); - status = rtems_message_queue_flush( Queue_id[ 3 ], &count ); - printf( "TA1 - %d messages were flushed from Q 3\n", count ); - - puts( "TA1 - rtems_message_queue_send until all message buffers consumed" ); - while ( FOREVER ) { - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - if ( status == RTEMS_UNSATISFIED ) break; - directive_failed( status, "rtems_message_queue_send loop" ); - } - - puts( "TA1 - all message buffers consumed" ); - puts( "TA1 - rtems_message_queue_flush - Q 3" ); - status = rtems_message_queue_flush( Queue_id[ 3 ], &count ); - printf( "TA1 - %d messages were flushed from Q 3\n", count ); - - if ( count != BSP_Configuration.maximum_messages ) - printf( "TA1 - ERROR - %d messages flushed!!!", count ); - - puts( "*** END OF TEST 13 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp13/task2.c b/c/src/tests/sptests/sp13/task2.c deleted file mode 100644 index 7d6438312c..0000000000 --- a/c/src/tests/sptests/sp13/task2.c +++ /dev/null @@ -1,132 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. Multiple tasks are required to - * verify all message manager capabilities. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - long buffer[ 4 ]; - rtems_task_priority previous_priority; - rtems_status_code status; - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 1 - RTEMS_NO_WAIT" - ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 1 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 1 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( "TA2 - rtems_task_set_priority - make self highest priority task" ); - status = rtems_task_set_priority( RTEMS_SELF, 3, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 2 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 2 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - Fill_buffer( "BUFFER 2 TO Q 2", (long *)buffer ); - puts( "TA2 - rtems_message_queue_send - BUFFER 2 TO Q 2" ); - directive_failed( status, "rtems_message_queue_send" ); - - status = rtems_message_queue_send( Queue_id[ 2 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 1 - " - "10 second timeout" - ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 3 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 3 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - -} diff --git a/c/src/tests/sptests/sp13/task3.c b/c/src/tests/sptests/sp13/task3.c deleted file mode 100644 index 3ba7b61728..0000000000 --- a/c/src/tests/sptests/sp13/task3.c +++ /dev/null @@ -1,74 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. Its major function is to - * broadcast a messge to all the other tasks. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - long buffer[ 4 ]; - rtems_unsigned32 count; - rtems_status_code status; - - puts( - "TA3 - rtems_message_queue_receive - receive from queue 2 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 2 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA3 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - Fill_buffer( "BUFFER 3 TO Q 1", (long *)buffer ); - puts( "TA3 - rtems_message_queue_broadcast - BUFFER 3 TO Q 1" ); - status = rtems_message_queue_broadcast( - Queue_id[ 1 ], - (long (*)[4])buffer, - &count - ); - printf( "TA3 - number of tasks awakened = %02d\n", count ); - puts( - "TA3 - rtems_message_queue_receive - receive from queue 3 - " - "RTEMS_WAIT FOREVER" - ); - - status = rtems_message_queue_receive( - Queue_id[ 3 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA3 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( "TA3 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp14/asr.c b/c/src/tests/sptests/sp14/asr.c deleted file mode 100644 index af7e212877..0000000000 --- a/c/src/tests/sptests/sp14/asr.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Process_asr - * - * This is the asynchronous signal routine (asr) for task 1. - * It demonstrates that ASRs can block execute and block. - * - * Input parameters: - * the_signal_set - signal set - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_asr Process_asr( - rtems_signal_set the_signal_set -) -{ - rtems_status_code status; - - printf( "ASR - ENTRY - signal => %08x\n", the_signal_set ); - switch( the_signal_set ) { - case RTEMS_SIGNAL_16: - case RTEMS_SIGNAL_17: - case RTEMS_SIGNAL_18 | RTEMS_SIGNAL_19: - break; - case RTEMS_SIGNAL_0: - case RTEMS_SIGNAL_1: - puts( "ASR - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after yield" ); - break; - case RTEMS_SIGNAL_3: - Asr_fired = TRUE; - break; - } - printf( "ASR - EXIT - signal => %08x\n", the_signal_set ); -} diff --git a/c/src/tests/sptests/sp14/init.c b/c/src/tests/sptests/sp14/init.c deleted file mode 100644 index 627295c03e..0000000000 --- a/c/src/tests/sptests/sp14/init.c +++ /dev/null @@ -1,75 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 14 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create of TM1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp14/sp14.doc b/c/src/tests/sptests/sp14/sp14.doc deleted file mode 100644 index 16aa420183..0000000000 --- a/c/src/tests/sptests/sp14/sp14.doc +++ /dev/null @@ -1,24 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test14 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - as_catch, as_return, as_send, tm_wkafter - -concepts: - - a. This test checks out the signal manager. diff --git a/c/src/tests/sptests/sp14/sp14.scn b/c/src/tests/sptests/sp14/sp14.scn deleted file mode 100644 index 31e6d067d2..0000000000 --- a/c/src/tests/sptests/sp14/sp14.scn +++ /dev/null @@ -1,33 +0,0 @@ -*** TEST 14 *** -TA1 - rtems_signal_catch - RTEMS_INTERRUPT_LEVEL( 3 ) -TA1 - rtems_signal_send - RTEMS_SIGNAL_16 to self -ASR - ENTRY - signal => 00010000 -ASR - EXIT - signal => 00010000 -TA1 - rtems_signal_send - RTEMS_SIGNAL_0 to self -ASR - ENTRY - signal => 00000001 -ASR - rtems_task_wake_after - yield processor -TA2 - rtems_signal_send - RTEMS_SIGNAL_17 to TA1 -TA2 - rtems_task_wake_after - yield processor -ASR - ENTRY - signal => 00020000 -ASR - EXIT - signal => 00020000 -ASR - EXIT - signal => 00000001 -TA1 - rtems_signal_catch - RTEMS_NO_ASR - -TA1 - rtems_signal_send - RTEMS_SIGNAL_1 to self -ASR - ENTRY - signal => 00000002 -ASR - rtems_task_wake_after - yield processor -TA2 - rtems_signal_send - RTEMS_SIGNAL_18 and RTEMS_SIGNAL_19 to TA1 -TA2 - rtems_task_wake_after - yield processor -ASR - EXIT - signal => 00000002 -ASR - ENTRY - signal => 000c0000 -ASR - EXIT - signal => 000c0000 -TA1 - rtems_task_mode - disable ASRs -TA1 - sending signal to RTEMS_SELF from timer -TA1 - waiting for signal to arrive -TA1 - timer routine got the correct arguments -TA1 - rtems_task_mode - enable ASRs -ASR - ENTRY - signal => 00000008 -ASR - EXIT - signal => 00000008 -TA1 - rtems_signal_catch - asraddr of NULL -TA1 - rtems_task_delete - delete self -*** END OF TEST 14 *** diff --git a/c/src/tests/sptests/sp14/system.h b/c/src/tests/sptests/sp14/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp14/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp14/task1.c b/c/src/tests/sptests/sp14/task1.c deleted file mode 100644 index ac8feed71f..0000000000 --- a/c/src/tests/sptests/sp14/task1.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It establishes an RTEMS_ASR and - * sends signal to itself to determine if the RTEMS_ASR gets to execute. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Signal_3_to_task_1( - rtems_id id, - void *pointer -) -{ - rtems_status_code status; - - status = rtems_signal_send( Task_id[ 1 ], RTEMS_SIGNAL_3 ); - directive_failed( status, "rtems_signal_send of 3" ); - - Timer_got_this_id = id; - Timer_got_this_pointer = pointer; - - Signals_sent = TRUE; -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_mode previous_mode; - rtems_status_code status; - - puts( "TA1 - rtems_signal_catch - RTEMS_INTERRUPT_LEVEL( 3 )" ); - status = rtems_signal_catch( Process_asr, RTEMS_INTERRUPT_LEVEL(3) ); - directive_failed( status, "rtems_signal_catch" ); - - puts( "TA1 - rtems_signal_send - RTEMS_SIGNAL_16 to self" ); - status = rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_16 ); - directive_failed( status, "rtems_signal_send" ); - - puts( "TA1 - rtems_signal_send - RTEMS_SIGNAL_0 to self" ); - status = rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_0 ); - directive_failed( status, "rtems_signal_send" ); - - puts( "TA1 - rtems_signal_catch - RTEMS_NO_ASR" ); - status = rtems_signal_catch( Process_asr, RTEMS_NO_ASR ); - directive_failed( status, "rtems_signal_catch" ); - -pause(); - - puts( "TA1 - rtems_signal_send - RTEMS_SIGNAL_1 to self" ); - status = rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_1 ); - directive_failed( status, "rtems_signal_send" ); - - puts( "TA1 - rtems_task_mode - disable ASRs" ); - status = rtems_task_mode( RTEMS_NO_ASR, RTEMS_ASR_MASK, &previous_mode ); - directive_failed( status, "rtems_task_mode" ); - - Timer_got_this_id = 0; - Timer_got_this_pointer = NULL; - - puts( "TA1 - sending signal to RTEMS_SELF from timer" ); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - TICKS_PER_SECOND / 2, - Signal_3_to_task_1, - Task_1 - ); - directive_failed( status, "rtems_timer_fire_after" ); - - puts( "TA1 - waiting for signal to arrive" ); - - Signals_sent = FALSE; - Asr_fired = FALSE; - - while ( Signals_sent == FALSE ) - ; - - if ( Timer_got_this_id == Timer_id[ 1 ] && - Timer_got_this_pointer == Task_1 ) - puts( "TA1 - timer routine got the correct arguments" ); - else - printf( - "TA1 - timer got (0x%x, %p) instead of (0x%x, %p)!!!!\n", - Timer_got_this_id, - Timer_got_this_pointer, - Timer_id[ 1 ], - Task_1 - ); - - puts( "TA1 - rtems_task_mode - enable ASRs" ); - status = rtems_task_mode( RTEMS_ASR, RTEMS_ASR_MASK, &previous_mode ); - directive_failed( status, "rtems_task_mode" ); - - puts( "TA1 - rtems_signal_catch - asraddr of NULL" ); - status = rtems_signal_catch( NULL, RTEMS_DEFAULT_MODES ); - directive_failed( status, "rtems_signal_catch" ); - - puts( "TA1 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp14/task2.c b/c/src/tests/sptests/sp14/task2.c deleted file mode 100644 index bf1e7cc224..0000000000 --- a/c/src/tests/sptests/sp14/task2.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It verifies that one task can - * send signals to another task ( invoking the other task's RTEMS_ASR ). - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA2 - rtems_signal_send - RTEMS_SIGNAL_17 to TA1" ); - status = rtems_signal_send( Task_id[ 1 ], RTEMS_SIGNAL_17 ); - directive_failed( status, "rtems_signal_send" ); - - puts( "TA2 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - puts("TA2 - rtems_signal_send - RTEMS_SIGNAL_18 and RTEMS_SIGNAL_19 to TA1"); - status = rtems_signal_send( Task_id[ 1 ], RTEMS_SIGNAL_18 | RTEMS_SIGNAL_19 ); - directive_failed( status, "rtems_signal_send" ); - - puts( "TA2 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "*** END OF TEST 14 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp15/init.c b/c/src/tests/sptests/sp15/init.c deleted file mode 100644 index 4bee311714..0000000000 --- a/c/src/tests/sptests/sp15/init.c +++ /dev/null @@ -1,81 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 15 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - Partition_name[ 1 ] = rtems_build_name( 'P', 'T', '1', ' ' ); - Partition_name[ 2 ] = rtems_build_name( 'P', 'T', '2', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - puts("INIT - rtems_partition_create - partition 1"); - status = rtems_partition_create( - Partition_name[ 1 ], - Area_1, - 4096, - 512, - RTEMS_DEFAULT_ATTRIBUTES, - &Partition_id[ 1 ] - ); - directive_failed( status, "rtems_partition_create of PT1" ); - - puts("INIT - rtems_partition_create - partition 2"); - status = rtems_partition_create( - Partition_name[ 2 ], - Area_2, - 274, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Partition_id[ 2 ] - ); - directive_failed( status, "rtems_partition_create of PT2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp15/sp15.doc b/c/src/tests/sptests/sp15/sp15.doc deleted file mode 100644 index 3ec20ae92b..0000000000 --- a/c/src/tests/sptests/sp15/sp15.doc +++ /dev/null @@ -1,24 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test15 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - pt_create, pt_ident, pt_getbuf, pt_retbuf, pt_delete - -concepts: - - a. This test checks out the partition manager. diff --git a/c/src/tests/sptests/sp15/sp15.scn b/c/src/tests/sptests/sp15/sp15.scn deleted file mode 100644 index acddd5b5e9..0000000000 --- a/c/src/tests/sptests/sp15/sp15.scn +++ /dev/null @@ -1,16 +0,0 @@ -*** TEST 15 *** -INIT - rtems_partition_create - partition 1 -INIT - rtems_partition_create - partition 2 -TA1 - rtems_partition_ident - partition 1 id = 00010001 -TA1 - rtems_partition_ident - partition 2 id = 00010002 -TA1 - rtems_partition_get_buffer - buffer 1 from partition 1 - 0x00000000 -TA1 - rtems_partition_get_buffer - buffer 2 from partition 1 - 0x00000200 -TA1 - rtems_partition_get_buffer - buffer 1 from partition 2 - 0x00000000 -TA1 - rtems_partition_get_buffer - buffer 2 from partition 2 - 0x00000080 -TA1 - rtems_partition_return_buffer - buffer 1 to partition 1 - 0x00000000 -TA1 - rtems_partition_return_buffer - buffer 2 to partition 1 - 0x00000200 -TA1 - rtems_partition_return_buffer - buffer 1 to partition 2 - 0x00000000 -TA1 - rtems_partition_return_buffer - buffer 2 to partition 2 - 0x00000080 -TA1 - rtems_partition_delete - delete partition 1 -TA1 - rtems_partition_delete - delete partition 2 -*** END OF TEST 15 *** diff --git a/c/src/tests/sptests/sp15/system.h b/c/src/tests/sptests/sp15/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp15/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp15/task1.c b/c/src/tests/sptests/sp15/task1.c deleted file mode 100644 index f22d27efe3..0000000000 --- a/c/src/tests/sptests/sp15/task1.c +++ /dev/null @@ -1,129 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It tests the partition manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id ptid_1; - rtems_id ptid_2; - void *buffer_address_1; - void *buffer_address_2; - void *buffer_address_3; - void *buffer_address_4; - rtems_status_code status; - - puts_nocr( "TA1 - rtems_partition_ident - partition 1 id = " ); - status = rtems_partition_ident( - Partition_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &ptid_1 - ); - directive_failed( status, "rtems_partition_ident of PT1" ); - printf( "%08x\n", ptid_1 ); - - puts_nocr( "TA1 - rtems_partition_ident - partition 2 id = " ); - status = rtems_partition_ident( - Partition_name[ 2 ], - RTEMS_SEARCH_ALL_NODES, - &ptid_2 - ); - directive_failed( status, "rtems_partition_ident of PT2" ); - printf( "%08x\n", ptid_2 ); - - puts_nocr( - "TA1 - rtems_partition_get_buffer - buffer 1 from partition 1 - " - ); - status = rtems_partition_get_buffer( ptid_1, &buffer_address_1 ); - directive_failed( status, "rtems_partition_get_buffer" ); - Put_address_from_area_1( buffer_address_1 ); - new_line; - - puts_nocr( - "TA1 - rtems_partition_get_buffer - buffer 2 from partition 1 - " - ); - status = rtems_partition_get_buffer( ptid_1, &buffer_address_2 ); - directive_failed( status, "rtems_partition_get_buffer" ); - Put_address_from_area_1( buffer_address_2 ); - new_line; - - puts_nocr( - "TA1 - rtems_partition_get_buffer - buffer 1 from partition 2 - " - ); - status = rtems_partition_get_buffer( ptid_2, &buffer_address_3 ); - directive_failed( status, "rtems_partition_get_buffer" ); - Put_address_from_area_2( buffer_address_3 ); - new_line; - - puts_nocr( - "TA1 - rtems_partition_get_buffer - buffer 2 from partition 2 - " - ); - status = rtems_partition_get_buffer( ptid_2, &buffer_address_4 ); - directive_failed( status, "rtems_partition_get_buffer" ); - Put_address_from_area_2( buffer_address_4 ); - new_line; - - puts_nocr( - "TA1 - rtems_partition_return_buffer - buffer 1 to partition 1 - " - ); - Put_address_from_area_1( buffer_address_1 ); - new_line; - status = rtems_partition_return_buffer( ptid_1, buffer_address_1 ); - directive_failed( status, "rtems_partition_return_buffer" ); - - puts_nocr( - "TA1 - rtems_partition_return_buffer - buffer 2 to partition 1 - " - ); - Put_address_from_area_1( buffer_address_2 ); - new_line; - status = rtems_partition_return_buffer( ptid_1, buffer_address_2 ); - directive_failed( status, "rtems_partition_return_buffer" ); - - puts_nocr( - "TA1 - rtems_partition_return_buffer - buffer 1 to partition 2 - " - ); - Put_address_from_area_2( buffer_address_3 ); - new_line; - status = rtems_partition_return_buffer( ptid_2, buffer_address_3 ); - directive_failed( status, "rtems_partition_return_buffer" ); - - puts_nocr( - "TA1 - rtems_partition_return_buffer - buffer 2 to partition 2 - " - ); - Put_address_from_area_2( buffer_address_4 ); - new_line; - status = rtems_partition_return_buffer( ptid_2, buffer_address_4 ); - directive_failed( status, "rtems_partition_return_buffer" ); - - puts( "TA1 - rtems_partition_delete - delete partition 1" - ); - status = rtems_partition_delete( ptid_1 ); - directive_failed( status, "rtems_partition_delete" ); - - puts( "TA1 - rtems_partition_delete - delete partition 2" - ); - status = rtems_partition_delete( ptid_2 ); - directive_failed( status, "rtems_partition_delete" ); - - puts( "*** END OF TEST 15 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp16/init.c b/c/src/tests/sptests/sp16/init.c deleted file mode 100644 index a5b1163b13..0000000000 --- a/c/src/tests/sptests/sp16/init.c +++ /dev/null @@ -1,131 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 16 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - Region_name[ 1 ] = rtems_build_name( 'R', 'N', '1', ' ' ); - Region_name[ 2 ] = rtems_build_name( 'R', 'N', '2', ' ' ); - Region_name[ 3 ] = rtems_build_name( 'R', 'N', '3', ' ' ); - Region_name[ 4 ] = rtems_build_name( 'R', 'N', '4', ' ' ); - - status = rtems_region_create( - Region_name[ 1 ], - Area_1, - 4096, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id[ 1 ] - ); - directive_failed( status, "rtems_region_create of RN1" ); - - status = rtems_region_create( - Region_name[ 2 ], - Area_2, - 4096, - 128, - RTEMS_PRIORITY, - &Region_id[ 2 ] - ); - directive_failed( status, "rtems_region_create of RN2" ); - - status = rtems_region_create( - Region_name[ 3 ], - Area_3, - 4096, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id[ 3 ] - ); - directive_failed( status, "rtems_region_create of RN3" ); - - status = rtems_region_create( - Region_name[ 4 ], - Area_4, - 4096, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id[ 4 ] - ); - directive_failed( status, "rtems_region_create of RN4" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp16/sp16.doc b/c/src/tests/sptests/sp16/sp16.doc deleted file mode 100644 index c5512af051..0000000000 --- a/c/src/tests/sptests/sp16/sp16.doc +++ /dev/null @@ -1,24 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test16 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - rn_create, rn_ident, rn_getbuf, rn_retbuf, rn_delete - -concepts: - - a. This test checks out the region manager. diff --git a/c/src/tests/sptests/sp16/sp16.scn b/c/src/tests/sptests/sp16/sp16.scn deleted file mode 100644 index a1a27cb9ad..0000000000 --- a/c/src/tests/sptests/sp16/sp16.scn +++ /dev/null @@ -1,58 +0,0 @@ -*** TEST 16 *** -TA1 - rtems_region_ident - rnid => 00010002 -TA1 - rtems_region_get_segment - wait on 100 byte segment from region 2 -TA1 - got segment from region 2 - 0x00000f78 -TA1 - rtems_region_get_segment - wait on 3K segment from region 3 -TA1 - got segment from region 3 - 0x000003f8 -TA1 - rtems_region_get_segment - get 3080 byte segment from region 1 - NO_WAIT -TA1 - got segment from region 1 - 0x00000378 -TA1 - rtems_task_wake_after - yield processor -TA2 - rtems_region_get_segment - wait on 2K segment from region 1 -TA3 - rtems_region_get_segment - wait on 3968 byte segment from region 2 - -TA1 - rtems_region_return_segment - return segment to region 1 - 0x00000378 -TA1 - rtems_region_get_segment - wait 10 seconds for 3K segment from region 1 -TA2 - got segment from region 1 - 0x000007f8 -TA2 - rtems_region_return_segment - return segment to region 1 - 0x000007f8 -TA2 - rtems_task_set_priority - make self highest priority task -TA2 - rtems_region_get_segment - wait on 3968 byte segment -TA1 - got segment from region 1 - 0x000003f8 -TA1 - rtems_region_return_segment - return segment to region 2 - 0x00000f78 -TA2 - got segment from region 2 - 0x00000008 -TA2 - rtems_region_return_segment - return segment to region 2 - 0x00000008 -TA2 - rtems_task_delete - delete self -TA1 - rtems_task_wake_after - yield processor -TA3 - got segment from region 2 - 0x00000008 -TA3 - rtems_region_get_segment - wait on 2K segment from region 3 -TA1 - rtems_task_delete - delete TA3 - -TA1 - rtems_task_wake_after - yield processor -TA4 - rtems_region_get_segment - wait on 1.5K segment from region 1 -TA5 - rtems_region_get_segment - wait on 1.5K segment from region 1 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x000003f8 -TA1 - rtems_task_wake_after - yield processor -TA4 - got and returned 0x000009f8 -TA5 - got and returned 0x000003f0 -TA1 - rtems_region_get_segment - wait 10 seconds for 3K segment from region 1 -TA1 - got segment from region 1 - 0x000003f8 -TA1 - rtems_task_wake_after - yield processor -TA4 - rtems_region_get_segment - wait on 3K segment from region 1 -TA5 - rtems_region_get_segment - wait on 3K segment from region 1 -TA1 - rtems_task_delete - delete TA4 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x000003f8 -TA1 - rtems_task_wake_after - yield processor -TA5 - got segment from region 1 - 0x000003f8 -TA5 - rtems_region_return_segment - return segment to region 1 - 0x000003f8 -TA5 - rtems_task_delete - delete self -TA1 - rtems_region_delete - delete region 1 -TA1 - rtems_region_get_segment - get 3K segment from region 4 -TA1 - got segment from region 4 - 0x000003f8 -TA1 - rtems_region_get_segment - attempt to get 3K segment from region 4 -TA1 - rtems_task_get_note - RTEMS_UNSATISFIED -TA1 - rtems_region_extend - extend region 4 by 4K -TA1 - rtems_region_get_segment - attempt to get 3K segment from region 4 -TA1 - got 3K segment from region 4 - 0x00001400 -TA1 - rtems_region_return_segment - return segment to region 4 - 0x000003f8 -TA1 - rtems_region_return_segment - return segment to region 4 - 0x00001400 -TA1 - rtems_region_delete - delete region 4 -*** END OF TEST 16 *** diff --git a/c/src/tests/sptests/sp16/system.h b/c/src/tests/sptests/sp16/system.h deleted file mode 100644 index 9e2b748a85..0000000000 --- a/c/src/tests/sptests/sp16/system.h +++ /dev/null @@ -1,32 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -#define BASE_PRIORITY 140 /* all tasks priority */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp16/task1.c b/c/src/tests/sptests/sp16/task1.c deleted file mode 100644 index 25f90aca00..0000000000 --- a/c/src/tests/sptests/sp16/task1.c +++ /dev/null @@ -1,282 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It tests the region manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id rnid; - void *segment_address_1; - void *segment_address_2; - void *segment_address_3; - void *segment_address_4; - rtems_status_code status; - - status = rtems_region_ident( Region_name[ 1 ], &rnid ); - printf( "TA1 - rtems_region_ident - rnid => %08x\n", rnid ); - directive_failed( status, "rtems_region_ident of RN1" ); - - puts( - "TA1 - rtems_region_get_segment - wait on 100 byte segment from region 2" - ); - status = rtems_region_get_segment( - Region_id[ 2 ], - 100, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 2 - " ); - Put_address_from_area_2( segment_address_1 ); - new_line; - - puts( "TA1 - rtems_region_get_segment - wait on 3K segment from region 3" ); - status = rtems_region_get_segment( - Region_id[ 3 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 3 - " ); - Put_address_from_area_3( segment_address_2 ); - new_line; - - puts_nocr( "TA1 - rtems_region_get_segment - get 3080 byte segment " ); - puts ( "from region 1 - NO_WAIT" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 3080, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &segment_address_3 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( segment_address_3 ); - new_line; - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - -pause(); - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( segment_address_3 ); - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_3 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait 10 seconds for 3K " - "segment from region 1" - ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND, - &segment_address_4 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( segment_address_4 ); - new_line; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 2 - " - ); - Put_address_from_area_2( segment_address_1 ); - new_line; - status = rtems_region_return_segment( Region_id[ 2 ], segment_address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_delete - delete TA3" ); - status = rtems_task_delete( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_delete of TA3" ); - -pause(); - - status = rtems_task_create( - Task_name[ 4 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 4 ] - ); - directive_failed( status, "rtems_task_create of TA4" ); - - status = rtems_task_create( - Task_name[ 5 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 5 ] - ); - directive_failed( status, "rtems_task_create of TA5" ); - - status = rtems_task_start( Task_id[ 4 ], Task_4, 0 ); - directive_failed( status, "rtems_task_start of TA4" ); - - status = rtems_task_start( Task_id[ 5 ], Task5, 0 ); - directive_failed( status, "rtems_task_start of TA5" ); - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( segment_address_4 ); - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_4 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts_nocr( "TA1 - rtems_region_get_segment - wait 10 seconds for 3K " ); - puts ( "segment from region 1"); - status = rtems_region_get_segment( - Region_id[ 1 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND, - &segment_address_4 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( segment_address_4 ); - new_line; - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_delete - delete TA4" ); - status = rtems_task_delete( Task_id[ 4 ] ); - directive_failed( status, "rtems_task_delete of TA4" ); - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( segment_address_4 ); - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_4 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - - puts( "TA1 - rtems_region_delete - delete region 1" ); - status = rtems_region_delete( Region_id[ 1 ] ); - directive_failed( status, "rtems_region_delete" ); - - puts( "TA1 - rtems_region_get_segment - get 3K segment from region 4" ); - status = rtems_region_get_segment( - Region_id[ 4 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 4 - " ); - Put_address_from_area_4( segment_address_1 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - attempt to get 3K segment from region 4" - ); - status = rtems_region_get_segment( - Region_id[ 4 ], - 3072, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_task_get_segment with no memory left" - ); - puts( "TA1 - rtems_task_get_note - RTEMS_UNSATISFIED" ); - - puts( "TA1 - rtems_region_extend - extend region 4 by 4K" ); - status = rtems_region_extend( - Region_id[ 4 ], - &Area_4[4096], - 4096 - ); - directive_failed( status, "rtems_region_extend" ); - - puts( - "TA1 - rtems_region_get_segment - attempt to get 3K segment from region 4" - ); - status = rtems_region_get_segment( - Region_id[ 4 ], - 3072, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &segment_address_3 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got 3K segment from region 4 - " ); - Put_address_from_area_4( segment_address_3 ); - new_line; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 4 - " - ); - Put_address_from_area_4( segment_address_1 ); - status = rtems_region_return_segment( Region_id[ 4 ], segment_address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 4 - " - ); - Put_address_from_area_4( segment_address_3 ); - status = rtems_region_return_segment( Region_id[ 4 ], segment_address_3 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( "TA1 - rtems_region_delete - delete region 4" ); - status = rtems_region_delete( Region_id[ 4 ] ); - directive_failed( status, "rtems_region_delete" ); - - puts( "*** END OF TEST 16 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp16/task2.c b/c/src/tests/sptests/sp16/task2.c deleted file mode 100644 index d5bc312b27..0000000000 --- a/c/src/tests/sptests/sp16/task2.c +++ /dev/null @@ -1,86 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It competes with the other tasks - * for region resources. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority previous_priority; - void *segment_address_1; - void *segment_address_2; - - puts( "TA2 - rtems_region_get_segment - wait on 2K segment from region 1" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 2048, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA2 - got segment from region 1 - " ); - Put_address_from_area_1( segment_address_1 ); - new_line; - - puts_nocr( - "TA2 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( segment_address_1 ); - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( "TA2 - rtems_task_set_priority - make self highest priority task" ); - status = rtems_task_set_priority( - RTEMS_SELF, - BASE_PRIORITY-1, - &previous_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - - puts("TA2 - rtems_region_get_segment - wait on 3968 byte segment"); - status = rtems_region_get_segment( - Region_id[ 2 ], - 3968, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA2 - got segment from region 2 - "); - Put_address_from_area_2( segment_address_2 ); - new_line; - - puts_nocr( - "TA2 - rtems_region_return_segment - return segment to region 2 - " - ); - Put_address_from_area_2( segment_address_2 ); - status = rtems_region_return_segment( Region_id[ 2 ], segment_address_2 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( "TA2 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp16/task3.c b/c/src/tests/sptests/sp16/task3.c deleted file mode 100644 index 292e5824f6..0000000000 --- a/c/src/tests/sptests/sp16/task3.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. It competes with the other tasks - * for region resources. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - void *segment_address_1; - void *segment_address_2; - - puts( - "TA3 - rtems_region_get_segment - wait on 3968 byte segment from region 2" - ); - status = rtems_region_get_segment( - Region_id[ 2 ], - 3968, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA3 - got segment from region 2 - " ); - Put_address_from_area_2( segment_address_1 ); - new_line; - directive_failed( status, "rtems_region_return_segment" ); - - puts( "TA3 - rtems_region_get_segment - wait on 2K segment from region 3" ); - status = rtems_region_get_segment( - Region_id[ 3 ], - 2048, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); -} diff --git a/c/src/tests/sptests/sp16/task4.c b/c/src/tests/sptests/sp16/task4.c deleted file mode 100644 index f3da89b72e..0000000000 --- a/c/src/tests/sptests/sp16/task4.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Task_4 - * - * This routine serves as a test task. It competes with the other tasks - * for region resources. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_4( - rtems_task_argument argument -) -{ - rtems_status_code status; - void *segment_address_1; - void *segment_address_2; - - puts( "TA4 - rtems_region_get_segment - wait on 1.5K segment from region 1" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 1536, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - puts_nocr( "TA4 - got and returned " ); - Put_address_from_area_1( segment_address_1 ); - new_line; - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA4 - rtems_region_get_segment - wait on 3K segment from region 1" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); -} diff --git a/c/src/tests/sptests/sp16/task5.c b/c/src/tests/sptests/sp16/task5.c deleted file mode 100644 index 5defa75f9c..0000000000 --- a/c/src/tests/sptests/sp16/task5.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Task5 - * - * This routine serves as a test task. It competes with the other tasks - * for region resources. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task5( - rtems_task_argument argument -) -{ - void *segment_address_1; - void *segment_address_2; - rtems_status_code status; - - puts( "TA5 - rtems_region_get_segment - wait on 1.5K segment from region 1" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 1536, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - puts_nocr( "TA5 - got and returned " ); - Put_address_from_area_1( segment_address_1 ); - new_line; - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA5 - rtems_region_get_segment - wait on 3K segment from region 1" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - puts_nocr( "TA5 - got segment from region 1 - " ); - Put_address_from_area_1( segment_address_2 ); - new_line; - - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_2 ); - puts_nocr( - "TA5 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( segment_address_2 ); - new_line; - - puts( "TA5 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp17/asr.c b/c/src/tests/sptests/sp17/asr.c deleted file mode 100644 index 1795bbd522..0000000000 --- a/c/src/tests/sptests/sp17/asr.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Process_asr - * - * This routine performs the processing for task 1's RTEMS_ASR. It is called - * by an assembly routine which saves the necessary registers. - * - * Input parameters: - * signal - signal set - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_asr Process_asr( - rtems_signal_set signal_set -) -{ - rtems_status_code status; - - status = rtems_task_resume( Task_id[ 2 ] ); - directive_failed( status, "RTEMS_ASR - rtems_task_resume of TA2" ); -} diff --git a/c/src/tests/sptests/sp17/init.c b/c/src/tests/sptests/sp17/init.c deleted file mode 100644 index 5527e80c9c..0000000000 --- a/c/src/tests/sptests/sp17/init.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 17 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - - Task_2_preempted = FALSE; - - status = rtems_task_create( - Task_name[ 1 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp17/sp17.doc b/c/src/tests/sptests/sp17/sp17.doc deleted file mode 100644 index b4258461cf..0000000000 --- a/c/src/tests/sptests/sp17/sp17.doc +++ /dev/null @@ -1,35 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test17 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - as_catch, as_return - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - c. Verifies executive initialization performed correctly. - - d. Verifies that a task can get the task identification number - of another task. - - e. Verifies that a signal can be sent to a remote task. diff --git a/c/src/tests/sptests/sp17/sp17.scn b/c/src/tests/sptests/sp17/sp17.scn deleted file mode 100644 index 47fd140e2a..0000000000 --- a/c/src/tests/sptests/sp17/sp17.scn +++ /dev/null @@ -1,8 +0,0 @@ -*** TEST 17 *** -TA2 - Suspending self -TA1 - rtems_signal_catch: initializing signal catcher -TA1 - Sending signal to self -TA2 - signal_return preempted correctly -TA1 - TA2 correctly preempted me -TA1 - Got Back!!! -*** END OF TEST 17 *** diff --git a/c/src/tests/sptests/sp17/system.h b/c/src/tests/sptests/sp17/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp17/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp17/task1.c b/c/src/tests/sptests/sp17/task1.c deleted file mode 100644 index 282c161a39..0000000000 --- a/c/src/tests/sptests/sp17/task1.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Task_1 - * - * This task initializes the signal catcher, sends the first signal - * if running on the first node, and loops while waiting for signals. - * - * NOTE: The signal catcher is not reentrant and hence RTEMS_NO_ASR must - * be a part of its execution mode. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA1 - rtems_signal_catch: initializing signal catcher" ); - status = rtems_signal_catch( Process_asr, RTEMS_NO_ASR | RTEMS_NO_PREEMPT ); - directive_failed( status, "rtems_signal_catch" ); - - puts( "TA1 - Sending signal to self" ); - status = rtems_signal_send( Task_id[ 1 ], RTEMS_SIGNAL_16 ); - directive_failed( status, "rtems_signal_send" ); - - if ( Task_2_preempted == TRUE ) - puts( "TA1 - TA2 correctly preempted me" ); - - puts("TA1 - Got Back!!!"); - - puts( "*** END OF TEST 17 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp17/task2.c b/c/src/tests/sptests/sp17/task2.c deleted file mode 100644 index cd3e16c7c0..0000000000 --- a/c/src/tests/sptests/sp17/task2.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Task_2 - * - * This task initializes the signal catcher, sends the first signal - * if running on the first node, and loops while waiting for signals. - * - * NOTE: The signal catcher is not reentrant and hence RTEMS_NO_ASR must - * be a part of its execution mode. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - Task_2_preempted = FALSE; - - puts( "TA2 - Suspending self" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - puts( "TA2 - signal_return preempted correctly" ); - - Task_2_preempted = TRUE; - - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend of TA2" ); -} diff --git a/c/src/tests/sptests/sp19/first.c b/c/src/tests/sptests/sp19/first.c deleted file mode 100644 index 94bdedd5ad..0000000000 --- a/c/src/tests/sptests/sp19/first.c +++ /dev/null @@ -1,66 +0,0 @@ -/* First_FP_task - * - * This routine serves as a floating point test task. It verifies the - * basic task switching capabilities of the executive when floating - * point is configured. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "fptest.h" -#include "inttest.h" - -rtems_task First_FP_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id tid; - rtems_time_of_day time; - rtems_unsigned32 task_index; - INTEGER_DECLARE; - FP_DECLARE; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - task_index = task_number( tid ); - - INTEGER_LOAD( INTEGER_factors[ task_index ] ); - FP_LOAD( FP_factors[ task_index ] ); - - put_name( Task_name[ task_index ], FALSE ); - printf( " - integer base = (0x%x)\n", INTEGER_factors[ task_index ] ); - put_name( Task_name[ task_index ], FALSE ); -#if ( RTEMS_HAS_HARDWARE_FP == 1 ) - printf( " - float base = (%g)\n", FP_factors[ task_index ] ); -#else - printf( " - float base = (NA)\n" ); -#endif - - if ( argument == 0 ) { - status = rtems_task_restart( RTEMS_SELF, 1 ); - directive_failed( status, "rtems_task_restart of RTEMS_SELF" ); - } else { - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); - } -} diff --git a/c/src/tests/sptests/sp19/fptask.c b/c/src/tests/sptests/sp19/fptask.c deleted file mode 100644 index b8e881e6cd..0000000000 --- a/c/src/tests/sptests/sp19/fptask.c +++ /dev/null @@ -1,98 +0,0 @@ -/* FP_task - * - * This routine serves as a floating point test task. It verifies the - * basic task switching capabilities of the executive when floating - * point is configured. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "fptest.h" -#include "inttest.h" - -rtems_task FP_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id tid; - rtems_time_of_day time; - rtems_unsigned32 task_index; - rtems_unsigned32 previous_seconds; - INTEGER_DECLARE; - FP_DECLARE; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident of self" ); - - task_index = task_number( tid ); - - INTEGER_LOAD( INTEGER_factors[ task_index ] ); - FP_LOAD( FP_factors[ task_index ] ); - - put_name( Task_name[ task_index ], FALSE ); - printf( " - integer base = (0x%x)\n", INTEGER_factors[ task_index ] ); - put_name( Task_name[ task_index ], FALSE ); -#if ( RTEMS_HAS_HARDWARE_FP == 1 ) - printf( " - float base = (%g)\n", FP_factors[ task_index ] ); -#else - printf( " - float base = (NA)\n" ); -#endif - - previous_seconds = -1; - - while( FOREVER ) { - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second >= 16 ) { - - if ( task_number( tid ) == 4 ) { - puts( "TA4 - rtems_task_delete - self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA4" ); - } - puts( "TA5 - rtems_task_delete - TA3" ); - status = rtems_task_delete( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_delete of TA3" ); - - puts( "*** END OF TEST 19 *** " ); - exit( 0 ); - } - - if (previous_seconds != time.second) - { - put_name( Task_name[ task_index ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - previous_seconds = time.second; - } - - INTEGER_CHECK( INTEGER_factors[ task_index ] ); - FP_CHECK( FP_factors[ task_index ] ); - - /* for the first 4 seconds we spin as fast as possible - * so that we likely are interrupted - * After that, we go to sleep for a second at a time - */ - if (time.second >= 4) - { - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } - } -} diff --git a/c/src/tests/sptests/sp19/fptest.h b/c/src/tests/sptests/sp19/fptest.h deleted file mode 100644 index a8f3a925cb..0000000000 --- a/c/src/tests/sptests/sp19/fptest.h +++ /dev/null @@ -1,165 +0,0 @@ -/* fptest.h - * - * This include file contains the CPU dependent implementation - * of the following routines needed to test RTEMS floating - * point support: - * FP_load( &context ) - * FP_check( &context ) - * - * FP_load - loads the specified floating point context - * FP_check - checks the specified floating point context - * - * NOTE: These routines are VERY CPU dependent and are thus - * located in in the CPU dependent include file - * fptest.h. These routines form the core of the - * floating point context switch test. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#ifndef __FPTEST_h -#define __FPTEST_h - -#include - -#ifndef RTEMS_HAS_HARDWARE_FP -#error "This CPU does not have RTEMS_HAS_HARDWARE_FP defined" -#endif - -#if ( RTEMS_HAS_HARDWARE_FP == FALSE ) - -#define FP_DECLARE ; -#define FP_LOAD( _factor ) -#define FP_CHECK( _factor ) 0 - -#else - -#define FP_DECLARE \ - double fp01 = 1.0; \ - double fp02 = 2.0; \ - double fp03 = 3.0; \ - double fp04 = 4.0; \ - double fp05 = 5.0; \ - double fp06 = 6.0; \ - double fp07 = 7.0; \ - double fp08 = 8.0; \ - double fp09 = 9.0; \ - double fp10 = 10.0; \ - double fp11 = 11.0; \ - double fp12 = 12.0; \ - double fp13 = 13.0; \ - double fp14 = 14.0; \ - double fp15 = 15.0; \ - double fp16 = 16.0; \ - double fp17 = 17.0; \ - double fp18 = 18.0; \ - double fp19 = 19.0; \ - double fp20 = 20.0; \ - double fp21 = 21.0; \ - double fp22 = 22.0; \ - double fp23 = 23.0; \ - double fp24 = 24.0; \ - double fp25 = 25.0; \ - double fp26 = 26.0; \ - double fp27 = 27.0; \ - double fp28 = 28.0; \ - double fp29 = 29.0; \ - double fp30 = 30.0; \ - double fp31 = 31.0; \ - double fp32 = 32.0 - -#define FP_LOAD( _factor ) \ - do { \ - fp01 += _factor; \ - fp02 += _factor; \ - fp03 += _factor; \ - fp04 += _factor; \ - fp05 += _factor; \ - fp06 += _factor; \ - fp07 += _factor; \ - fp08 += _factor; \ - fp09 += _factor; \ - fp10 += _factor; \ - fp11 += _factor; \ - fp12 += _factor; \ - fp13 += _factor; \ - fp14 += _factor; \ - fp15 += _factor; \ - fp16 += _factor; \ - fp17 += _factor; \ - fp18 += _factor; \ - fp19 += _factor; \ - fp20 += _factor; \ - fp21 += _factor; \ - fp22 += _factor; \ - fp23 += _factor; \ - fp24 += _factor; \ - fp25 += _factor; \ - fp26 += _factor; \ - fp27 += _factor; \ - fp28 += _factor; \ - fp29 += _factor; \ - fp30 += _factor; \ - fp31 += _factor; \ - fp32 += _factor; \ - } while (0) - -#define EPSILON (0.0005) -#define FPABS(d) (((d) < 0.0) ? -(d) : (d)) -#define FPNEQ(a,b) (FPABS((a)-(b)) > EPSILON) - -#define FP_CHECK_ONE( _v, _base, _factor ) \ - if ( FPNEQ( (_v), ((_base) + (_factor)) ) ) { \ - printf("%d: " #_v " wrong -- (%g not %g)\n", \ - task_index, (_v), (_base + _factor)); \ - } - - -#define FP_CHECK( _factor ) \ - do { \ - FP_CHECK_ONE( fp01, 1.0, (_factor) ); \ - FP_CHECK_ONE( fp02, 2.0, (_factor) ); \ - FP_CHECK_ONE( fp03, 3.0, (_factor) ); \ - FP_CHECK_ONE( fp04, 4.0, (_factor) ); \ - FP_CHECK_ONE( fp05, 5.0, (_factor) ); \ - FP_CHECK_ONE( fp06, 6.0, (_factor) ); \ - FP_CHECK_ONE( fp07, 7.0, (_factor) ); \ - FP_CHECK_ONE( fp08, 8.0, (_factor) ); \ - FP_CHECK_ONE( fp09, 9.0, (_factor) ); \ - FP_CHECK_ONE( fp10, 10.0, (_factor) ); \ - FP_CHECK_ONE( fp11, 11.0, (_factor) ); \ - FP_CHECK_ONE( fp12, 12.0, (_factor) ); \ - FP_CHECK_ONE( fp13, 13.0, (_factor) ); \ - FP_CHECK_ONE( fp14, 14.0, (_factor) ); \ - FP_CHECK_ONE( fp15, 15.0, (_factor) ); \ - FP_CHECK_ONE( fp16, 16.0, (_factor) ); \ - FP_CHECK_ONE( fp17, 17.0, (_factor) ); \ - FP_CHECK_ONE( fp18, 18.0, (_factor) ); \ - FP_CHECK_ONE( fp19, 19.0, (_factor) ); \ - FP_CHECK_ONE( fp20, 20.0, (_factor) ); \ - FP_CHECK_ONE( fp21, 21.0, (_factor) ); \ - FP_CHECK_ONE( fp22, 22.0, (_factor) ); \ - FP_CHECK_ONE( fp23, 23.0, (_factor) ); \ - FP_CHECK_ONE( fp24, 24.0, (_factor) ); \ - FP_CHECK_ONE( fp25, 25.0, (_factor) ); \ - FP_CHECK_ONE( fp26, 26.0, (_factor) ); \ - FP_CHECK_ONE( fp27, 27.0, (_factor) ); \ - FP_CHECK_ONE( fp28, 28.0, (_factor) ); \ - FP_CHECK_ONE( fp29, 29.0, (_factor) ); \ - FP_CHECK_ONE( fp30, 30.0, (_factor) ); \ - FP_CHECK_ONE( fp31, 31.0, (_factor) ); \ - FP_CHECK_ONE( fp32, 32.0, (_factor) ); \ - } while (0) - -#endif - -#endif diff --git a/c/src/tests/sptests/sp19/init.c b/c/src/tests/sptests/sp19/init.c deleted file mode 100644 index 477ec4ef43..0000000000 --- a/c/src/tests/sptests/sp19/init.c +++ /dev/null @@ -1,153 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 19 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' ); - Task_name[ 6 ] = rtems_build_name( 'F', 'P', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_create( - Task_name[ 4 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &Task_id[ 4 ] - ); - directive_failed( status, "rtems_task_create of TA4" ); - - status = rtems_task_create( - Task_name[ 5 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &Task_id[ 5 ] - ); - directive_failed( status, "rtems_task_create of TA5" ); - - status = rtems_task_create( - Task_name[ 6 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &Task_id[ 6 ] - ); - directive_failed( status, "rtems_task_create of FP1" ); - - status = rtems_task_start( Task_id[ 6 ], First_FP_task, 0 ); - directive_failed( status, "rtems_task_start of FP1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_start( Task_id[ 4 ], FP_task, 0 ); - directive_failed( status, "rtems_task_start of TA4" ); - - status = rtems_task_start( Task_id[ 5 ], FP_task, 0 ); - directive_failed( status, "rtems_task_create of TA5" ); - - /* - * Load "task dependent factors" in the context areas - */ - - - FP_factors[0] = 0.0; - FP_factors[1] = 1000.1; - FP_factors[2] = 2000.2; - FP_factors[3] = 3000.3; - FP_factors[4] = 4000.4; - FP_factors[5] = 5000.5; - FP_factors[6] = 6000.6; - FP_factors[7] = 7000.7; - FP_factors[8] = 8000.8; - FP_factors[9] = 9000.9; - - INTEGER_factors[0] = 0x0000; - INTEGER_factors[1] = 0x1000; - INTEGER_factors[2] = 0x2000; - INTEGER_factors[3] = 0x3000; - INTEGER_factors[4] = 0x4000; - INTEGER_factors[5] = 0x5000; - INTEGER_factors[6] = 0x6000; - INTEGER_factors[7] = 0x7000; - INTEGER_factors[8] = 0x8000; - INTEGER_factors[9] = 0x9000; - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA1" ); -} diff --git a/c/src/tests/sptests/sp19/inttest.h b/c/src/tests/sptests/sp19/inttest.h deleted file mode 100644 index 5dfb0af636..0000000000 --- a/c/src/tests/sptests/sp19/inttest.h +++ /dev/null @@ -1,149 +0,0 @@ -/* inttest.h - * - * XXX: ??? - * This include file contains the CPU dependent implementation - * of the following routines needed to test RTEMS floating - * point support: - * INTEGER_load( &context ) - * INTEGER_check( &context ) - * - * INTEGER_load - loads the specified floating point context - * INTEGER_check - checks the specified floating point context - * - * NOTE: These routines are VERY CPU dependent and are thus - * located in in the CPU dependent include file - * inttest.h. These routines form the core of the - * floating point context switch test. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#ifndef __INTEGER_TEST_h -#define __INTEGER_TEST_h - -#include -#define REG_VARIABLE rtems_unsigned32 - -#define INTEGER_DECLARE \ - REG_VARIABLE int01 = 1; \ - REG_VARIABLE int02 = 2; \ - REG_VARIABLE int03 = 3; \ - REG_VARIABLE int04 = 4; \ - REG_VARIABLE int05 = 5; \ - REG_VARIABLE int06 = 6; \ - REG_VARIABLE int07 = 7; \ - REG_VARIABLE int08 = 8; \ - REG_VARIABLE int09 = 9; \ - REG_VARIABLE int10 = 10; \ - REG_VARIABLE int11 = 11; \ - REG_VARIABLE int12 = 12; \ - REG_VARIABLE int13 = 13; \ - REG_VARIABLE int14 = 14; \ - REG_VARIABLE int15 = 15; \ - REG_VARIABLE int16 = 16; \ - REG_VARIABLE int17 = 17; \ - REG_VARIABLE int18 = 18; \ - REG_VARIABLE int19 = 19; \ - REG_VARIABLE int20 = 20; \ - REG_VARIABLE int21 = 21; \ - REG_VARIABLE int22 = 22; \ - REG_VARIABLE int23 = 23; \ - REG_VARIABLE int24 = 24; \ - REG_VARIABLE int25 = 25; \ - REG_VARIABLE int26 = 26; \ - REG_VARIABLE int27 = 27; \ - REG_VARIABLE int28 = 28; \ - REG_VARIABLE int29 = 29; \ - REG_VARIABLE int30 = 30; \ - REG_VARIABLE int31 = 31; \ - REG_VARIABLE int32 = 32 - -#define INTEGER_LOAD( _factor ) \ - do { \ - int01 += _factor; \ - int02 += _factor; \ - int03 += _factor; \ - int04 += _factor; \ - int05 += _factor; \ - int06 += _factor; \ - int07 += _factor; \ - int08 += _factor; \ - int09 += _factor; \ - int10 += _factor; \ - int11 += _factor; \ - int12 += _factor; \ - int13 += _factor; \ - int14 += _factor; \ - int15 += _factor; \ - int16 += _factor; \ - int17 += _factor; \ - int18 += _factor; \ - int19 += _factor; \ - int20 += _factor; \ - int21 += _factor; \ - int22 += _factor; \ - int23 += _factor; \ - int24 += _factor; \ - int25 += _factor; \ - int26 += _factor; \ - int27 += _factor; \ - int28 += _factor; \ - int29 += _factor; \ - int30 += _factor; \ - int31 += _factor; \ - int32 += _factor; \ - } while (0) - -#define INTEGER_CHECK_ONE( _v, _base, _factor ) \ - if ( (_v) != ((_base) + (_factor)) ) { \ - printf("%d: " #_v " wrong -- (0x%x not 0x%x)\n", \ - task_index, (_v), (_base + _factor)); \ - } - - -#define INTEGER_CHECK( _factor ) \ - do { \ - INTEGER_CHECK_ONE( int01, 1, (_factor) ); \ - INTEGER_CHECK_ONE( int02, 2, (_factor) ); \ - INTEGER_CHECK_ONE( int03, 3, (_factor) ); \ - INTEGER_CHECK_ONE( int04, 4, (_factor) ); \ - INTEGER_CHECK_ONE( int05, 5, (_factor) ); \ - INTEGER_CHECK_ONE( int06, 6, (_factor) ); \ - INTEGER_CHECK_ONE( int07, 7, (_factor) ); \ - INTEGER_CHECK_ONE( int08, 8, (_factor) ); \ - INTEGER_CHECK_ONE( int09, 9, (_factor) ); \ - INTEGER_CHECK_ONE( int10, 10, (_factor) ); \ - INTEGER_CHECK_ONE( int11, 11, (_factor) ); \ - INTEGER_CHECK_ONE( int12, 12, (_factor) ); \ - INTEGER_CHECK_ONE( int13, 13, (_factor) ); \ - INTEGER_CHECK_ONE( int14, 14, (_factor) ); \ - INTEGER_CHECK_ONE( int15, 15, (_factor) ); \ - INTEGER_CHECK_ONE( int16, 16, (_factor) ); \ - INTEGER_CHECK_ONE( int17, 17, (_factor) ); \ - INTEGER_CHECK_ONE( int18, 18, (_factor) ); \ - INTEGER_CHECK_ONE( int19, 19, (_factor) ); \ - INTEGER_CHECK_ONE( int20, 20, (_factor) ); \ - INTEGER_CHECK_ONE( int21, 21, (_factor) ); \ - INTEGER_CHECK_ONE( int22, 22, (_factor) ); \ - INTEGER_CHECK_ONE( int23, 23, (_factor) ); \ - INTEGER_CHECK_ONE( int24, 24, (_factor) ); \ - INTEGER_CHECK_ONE( int25, 25, (_factor) ); \ - INTEGER_CHECK_ONE( int26, 26, (_factor) ); \ - INTEGER_CHECK_ONE( int27, 27, (_factor) ); \ - INTEGER_CHECK_ONE( int28, 28, (_factor) ); \ - INTEGER_CHECK_ONE( int29, 29, (_factor) ); \ - INTEGER_CHECK_ONE( int30, 30, (_factor) ); \ - INTEGER_CHECK_ONE( int31, 31, (_factor) ); \ - INTEGER_CHECK_ONE( int32, 32, (_factor) ); \ - } while (0) - -#endif diff --git a/c/src/tests/sptests/sp19/sp19.doc b/c/src/tests/sptests/sp19/sp19.doc deleted file mode 100644 index 78ac463c9f..0000000000 --- a/c/src/tests/sptests/sp19/sp19.doc +++ /dev/null @@ -1,23 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test19 - -directives: - -concepts: - - a. Verifies system can dispatch a mixture of floating point and - non-floating point tasks. diff --git a/c/src/tests/sptests/sp19/sp19.scn b/c/src/tests/sptests/sp19/sp19.scn deleted file mode 100644 index 76ded9f7d0..0000000000 --- a/c/src/tests/sptests/sp19/sp19.scn +++ /dev/null @@ -1,55 +0,0 @@ -*** TEST 19 *** -FP1 - integer base = (0x6000) -FP1 - float base = (6000.6) -FP1 - integer base = (0x6000) -FP1 - float base = (6000.6) -TA1 - integer base = (0x1000) -TA1 - rtems_clock_get - 09:00:00 12/31/1988 -TA2 - integer base = (0x2000) -TA2 - rtems_clock_get - 09:00:00 12/31/1988 -TA3 - integer base = (0x3000) -TA3 - rtems_clock_get - 09:00:00 12/31/1988 -TA4 - integer base = (0x4000) -TA4 - float base = (4000.4) -TA4 - rtems_clock_get - 09:00:00 12/31/1988 -TA5 - integer base = (0x5000) -TA5 - float base = (5000.5) -TA5 - rtems_clock_get - 09:00:00 12/31/1988 -TA4 - rtems_clock_get - 09:00:01 12/31/1988 -TA5 - rtems_clock_get - 09:00:01 12/31/1988 -TA4 - rtems_clock_get - 09:00:02 12/31/1988 -TA5 - rtems_clock_get - 09:00:02 12/31/1988 -TA4 - rtems_clock_get - 09:00:03 12/31/1988 -TA5 - rtems_clock_get - 09:00:03 12/31/1988 -TA4 - rtems_clock_get - 09:00:04 12/31/1988 -TA5 - rtems_clock_get - 09:00:04 12/31/1988 -TA1 - rtems_clock_get - 09:00:05 12/31/1988 -TA4 - rtems_clock_get - 09:00:05 12/31/1988 -TA5 - rtems_clock_get - 09:00:05 12/31/1988 -TA4 - rtems_clock_get - 09:00:06 12/31/1988 -TA5 - rtems_clock_get - 09:00:06 12/31/1988 -TA4 - rtems_clock_get - 09:00:07 12/31/1988 -TA5 - rtems_clock_get - 09:00:07 12/31/1988 -TA4 - rtems_clock_get - 09:00:08 12/31/1988 -TA5 - rtems_clock_get - 09:00:08 12/31/1988 -TA4 - rtems_clock_get - 09:00:09 12/31/1988 -TA5 - rtems_clock_get - 09:00:09 12/31/1988 -TA1 - rtems_clock_get - 09:00:10 12/31/1988 -TA2 - rtems_clock_get - 09:00:10 12/31/1988 -TA4 - rtems_clock_get - 09:00:10 12/31/1988 -TA5 - rtems_clock_get - 09:00:10 12/31/1988 -TA4 - rtems_clock_get - 09:00:11 12/31/1988 -TA5 - rtems_clock_get - 09:00:11 12/31/1988 -TA4 - rtems_clock_get - 09:00:12 12/31/1988 -TA5 - rtems_clock_get - 09:00:12 12/31/1988 -TA4 - rtems_clock_get - 09:00:13 12/31/1988 -TA5 - rtems_clock_get - 09:00:13 12/31/1988 -TA4 - rtems_clock_get - 09:00:14 12/31/1988 -TA5 - rtems_clock_get - 09:00:14 12/31/1988 -TA1 - rtems_clock_get - 09:00:15 12/31/1988 -TA3 - rtems_clock_get - 09:00:15 12/31/1988 -TA4 - rtems_clock_get - 09:00:15 12/31/1988 -TA5 - rtems_clock_get - 09:00:15 12/31/1988 -TA4 - rtems_task_delete - self -TA5 - rtems_task_delete - TA3 -*** END OF TEST 19 *** diff --git a/c/src/tests/sptests/sp19/system.h b/c/src/tests/sptests/sp19/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp19/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp19/task1.c b/c/src/tests/sptests/sp19/task1.c deleted file mode 100644 index 874fbcc614..0000000000 --- a/c/src/tests/sptests/sp19/task1.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the basic task - * switching capabilities of the executive. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "inttest.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id tid; - rtems_time_of_day time; - rtems_unsigned32 task_index; - INTEGER_DECLARE; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - task_index = task_number( tid ); - - INTEGER_LOAD( INTEGER_factors[ task_index ] ); - - put_name( Task_name[ task_index ], FALSE ); - printf( " - integer base = (0x%x)\n", INTEGER_factors[ task_index ] ); - - while( FOREVER ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - INTEGER_CHECK( INTEGER_factors[ task_index ] ); - - status = rtems_task_wake_after( - ( task_number( tid ) ) * 5 * TICKS_PER_SECOND - ); - directive_failed( status, "rtems_task_wake_after" ); - } -} diff --git a/c/src/tests/sptests/sp20/getall.c b/c/src/tests/sptests/sp20/getall.c deleted file mode 100644 index cff3841dff..0000000000 --- a/c/src/tests/sptests/sp20/getall.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Get_all_counters - * - * This routine allows TA5 to atomically obtain the iteration counters. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Get_all_counters() -{ - rtems_mode previous_mode; - rtems_status_code status; - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode to RTEMS_NO_PREEMPT" ); - - Temporary_count = Count; - Count.count[ 1 ] = 0; - Count.count[ 2 ] = 0; - Count.count[ 3 ] = 0; - Count.count[ 4 ] = 0; - Count.count[ 5 ] = 0; - - status = rtems_task_mode( RTEMS_PREEMPT, RTEMS_PREEMPT_MASK, &previous_mode ); - directive_failed( status, "rtems_task_mode to RTEMS_PREEMPT" ); -} diff --git a/c/src/tests/sptests/sp20/init.c b/c/src/tests/sptests/sp20/init.c deleted file mode 100644 index 95bdc3e728..0000000000 --- a/c/src/tests/sptests/sp20/init.c +++ /dev/null @@ -1,71 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TEST 20 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' ); - - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_create( - Task_name[ index ], - Priorities[ index ], - 4096, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - } - - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_start( Task_id[ index ], Task_1_through_5, index ); - directive_failed( status, "rtems_task_start loop" ); - } - - Count.count[ 1 ] = 0; - Count.count[ 2 ] = 0; - Count.count[ 3 ] = 0; - Count.count[ 4 ] = 0; - Count.count[ 5 ] = 0; - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp20/sp20.doc b/c/src/tests/sptests/sp20/sp20.doc deleted file mode 100644 index 4a029a4b89..0000000000 --- a/c/src/tests/sptests/sp20/sp20.doc +++ /dev/null @@ -1,24 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test20 - -directives: - - rm_create, rm_period - -concepts: - - a. Verifies Rate Monotonic Manager behavior. diff --git a/c/src/tests/sptests/sp20/sp20.scn b/c/src/tests/sptests/sp20/sp20.scn deleted file mode 100644 index 1de3c18db8..0000000000 --- a/c/src/tests/sptests/sp20/sp20.scn +++ /dev/null @@ -1,27 +0,0 @@ -*** TEST 20 *** -TA1 - rtems_rate_monotonic_create id = 0x00010001 -TA1 - rtems_rate_monotonic_ident id = 0x00010001 -TA1 - (0x00010001) period 2 -TA2 - rtems_rate_monotonic_create id = 0x00010002 -TA2 - rtems_rate_monotonic_ident id = 0x00010002 -TA2 - (0x00010002) period 2 -TA3 - rtems_rate_monotonic_create id = 0x00010003 -TA3 - rtems_rate_monotonic_ident id = 0x00010003 -TA3 - (0x00010003) period 2 -TA4 - rtems_rate_monotonic_create id = 0x00010004 -TA4 - rtems_rate_monotonic_ident id = 0x00010004 -TA4 - (0x00010004) period 2 -TA5 - rtems_rate_monotonic_create id = 0x00010005 -TA5 - rtems_rate_monotonic_ident id = 0x00010005 -TA5 - (0x00010005) period 50 -TA5 - PERIODS CHECK OK (1) -TA5 - PERIODS CHECK OK (2) -TA5 - PERIODS CHECK OK (3) -TA5 - PERIODS CHECK OK (4) -TA5 - PERIODS CHECK OK (5) -TA5 - PERIODS CHECK OK (6) -TA5 - PERIODS CHECK OK (7) -TA5 - PERIODS CHECK OK (8) -TA5 - PERIODS CHECK OK (9) -TA5 - PERIODS CHECK OK (10) -*** END OF TEST 20 *** diff --git a/c/src/tests/sptests/sp20/system.h b/c/src/tests/sptests/sp20/system.h deleted file mode 100644 index 98d52a20cc..0000000000 --- a/c/src/tests/sptests/sp20/system.h +++ /dev/null @@ -1,34 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -struct counters { - rtems_unsigned32 count[6]; -}; - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp20/task1.c b/c/src/tests/sptests/sp20/task1.c deleted file mode 100644 index c5eda1a9ae..0000000000 --- a/c/src/tests/sptests/sp20/task1.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Task_1_through_5 - * - * This routine serves as a test task for the period capabilities of the - * Rate Monotonic Manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_unsigned32 Periods[6] = { 0, 2, 2, 2, 2, 100 }; -rtems_unsigned32 Iterations[6] = { 0, 50, 50, 50, 50, 1 }; -rtems_task_priority Priorities[6] = { 0, 1, 1, 3, 4, 5 }; - -rtems_task Task_1_through_5( - rtems_unsigned32 argument -) -{ - rtems_id rmid; - rtems_id test_rmid; - rtems_unsigned32 index; - rtems_unsigned32 pass; - rtems_unsigned32 failed; - rtems_status_code status; - - status = rtems_rate_monotonic_create( argument, &rmid ); - directive_failed( status, "rtems_rate_monotonic_create" ); - put_name( Task_name[ argument ], FALSE ); - printf( "- rtems_rate_monotonic_create id = 0x%08x\n", rmid ); - - status = rtems_rate_monotonic_ident( argument, &test_rmid ); - directive_failed( status, "rtems_rate_monotonic_ident" ); - put_name( Task_name[ argument ], FALSE ); - printf( "- rtems_rate_monotonic_ident id = 0x%08x\n", test_rmid ); - - if ( rmid != test_rmid ) { - printf( "RMID's DO NOT MATCH (0x%x and 0x%x)\n", rmid, test_rmid ); - exit( 0 ); - } - - put_name( Task_name[ argument ], FALSE ); - printf( "- (0x%08x) period %d\n", rmid, Periods[ argument ] ); - - status = rtems_task_wake_after( 2 ); - directive_failed( status, "rtems_task_wake_after" ); - - switch ( argument ) { - case 1: - case 2: - case 3: - case 4: - while ( FOREVER ) { - status = rtems_rate_monotonic_period( rmid, Periods[ argument ] ); - directive_failed( status, "rtems_rate_monotonic_period" ); - Count.count[ argument ]++; - } - break; - case 5: - pass = 0; - failed = 0; - - status = rtems_rate_monotonic_period( rmid, Periods[ argument ] ); - directive_failed( status, "rtems_rate_monotonic_period 1 of TA5" ); - - Get_all_counters(); - - while ( FOREVER ) { - - status = rtems_rate_monotonic_period( rmid, Periods[ argument ] ); - directive_failed( status, "rtems_rate_monotonic_period 2 of TA5" ); - - Get_all_counters(); - - for( index = 1 ; index <= 4 ; index++ ) { - if ( Temporary_count.count[ index ] != Iterations[ index ] ) { - puts_nocr( "FAIL -- " ); - put_name ( Task_name[ index ], FALSE ); - printf ( " Actual=%d, Expected=%d\n", - Temporary_count.count[ index ], - Iterations[ index ] - ); - failed += 1; - } - } - - if ( failed == 5 ) - exit( 0 ); - - pass += 1; - - printf( "TA5 - PERIODS CHECK OK (%d)\n", pass ); - - fflush( stdout ); - - if ( pass == 10 ) { - puts( "*** END OF TEST 20 ***" ); - exit( 0 ); - } - - } - break; - } -} diff --git a/c/src/tests/sptests/sp21/init.c b/c/src/tests/sptests/sp21/init.c deleted file mode 100644 index bee9b931fc..0000000000 --- a/c/src/tests/sptests/sp21/init.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 21 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp21/sp21.doc b/c/src/tests/sptests/sp21/sp21.doc deleted file mode 100644 index 55ed6282bc..0000000000 --- a/c/src/tests/sptests/sp21/sp21.doc +++ /dev/null @@ -1,28 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test21 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_delete - de_init, de_open, de_close, de_read, de_write, de_cntrl - -concepts: - - a. Verifies all I/O manager directives always return successful for - null drivers. - - b. Verifies all I/O manager directives call and return from the driver - entry points in the driver address table. diff --git a/c/src/tests/sptests/sp21/sp21.scn b/c/src/tests/sptests/sp21/sp21.scn deleted file mode 100644 index c6392e3ea3..0000000000 --- a/c/src/tests/sptests/sp21/sp21.scn +++ /dev/null @@ -1,19 +0,0 @@ -*** TEST 21 *** ------ TESTING THE NULL DRIVER CHECKS ----- -TA1 - rtems_io_initialize - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_open - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_close - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_read - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_write - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_control - NULL DRIVER RTEMS_SUCCESSFUL ------ TESTING THE I/O MANAGER DIRECTIVES ----- -TA1 - rtems_io_initialize - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_open - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_close - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_read - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_write - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_control - STUB DRIVER RTEMS_SUCCESSFUL ------ RETURNING INVALID MAJOR NUMBER ----- -TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER -TA1 - rtems_io_open - RTEMS_INVALID_NUMBER -*** END OF TEST 21 *** diff --git a/c/src/tests/sptests/sp21/system.h b/c/src/tests/sptests/sp21/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp21/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp21/task1.c b/c/src/tests/sptests/sp21/task1.c deleted file mode 100644 index 3c4b284a97..0000000000 --- a/c/src/tests/sptests/sp21/task1.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It tests the I/O manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#define STUB_DRIVER_MAJOR 0x2 -#define NO_DRIVER_MAJOR 0x1 -#define INVALID_DRIVER_MAJOR 0x5 - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_status_code return_value; - - puts( "----- TESTING THE NULL DRIVER CHECKS -----" ); - - status = rtems_io_initialize( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_initialize" ); - puts( "TA1 - rtems_io_initialize - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_open( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_open" ); - puts( "TA1 - rtems_io_open - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_close( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_close" ); - puts( "TA1 - rtems_io_close - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_read( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_read" ); - puts( "TA1 - rtems_io_read - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_write( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_write" ); - puts( "TA1 - rtems_io_write - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_control( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_control" ); - puts( "TA1 - rtems_io_control - NULL DRIVER RTEMS_SUCCESSFUL" ); - - puts( "----- TESTING THE I/O MANAGER DIRECTIVES -----" ); - - status = rtems_io_initialize( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_initialize" ); - puts( "TA1 - rtems_io_initialize - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_open( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_open" ); - puts( "TA1 - rtems_io_open - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_close( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_close" ); - puts( "TA1 - rtems_io_close - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_read( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_read" ); - puts( "TA1 - rtems_io_read - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_write( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_write" ); - puts( "TA1 - rtems_io_write - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_control( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_control" ); - puts( "TA1 - rtems_io_control - STUB DRIVER RTEMS_SUCCESSFUL" ); - - puts( "----- RETURNING INVALID MAJOR NUMBER -----" ); - - status = rtems_io_initialize( INVALID_DRIVER_MAJOR, 0, NULL, &return_value ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_initialize" - ); - puts( "TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER" ); - - status = rtems_io_open( INVALID_DRIVER_MAJOR, 0, NULL, &return_value ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_open" - ); - puts( "TA1 - rtems_io_open - RTEMS_INVALID_NUMBER" ); - - puts( "*** END OF TEST 21 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp22/delay.c b/c/src/tests/sptests/sp22/delay.c deleted file mode 100644 index bcf9e014a7..0000000000 --- a/c/src/tests/sptests/sp22/delay.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Delayed_resume - * - * This routine is scheduled to be fired as a timer service routine. - * When fired this subprogram resumes Task_1. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Delayed_resume( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_task_resume( Task_id[ 1 ] ); - directive_failed( status, "rtems_task_resume of self" ); -} diff --git a/c/src/tests/sptests/sp22/init.c b/c/src/tests/sptests/sp22/init.c deleted file mode 100644 index 820fac81e3..0000000000 --- a/c/src/tests/sptests/sp22/init.c +++ /dev/null @@ -1,69 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_time_of_day time; - rtems_status_code status; - - puts( "\n\n*** TEST 22 ***" ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - puts( "INIT - rtems_timer_create - creating timer 1" ); - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - printf( "INIT - timer 1 has id (0x%x)\n", Timer_id[ 1 ] ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp22/prtime.c b/c/src/tests/sptests/sp22/prtime.c deleted file mode 100644 index f3871eb9fd..0000000000 --- a/c/src/tests/sptests/sp22/prtime.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Print_time - * - * This routine prints the name of Task_1 and the current time of day. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Print_time( void ) -{ - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - put_name( Task_name[ 1 ], FALSE ); - print_time( "- rtems_clock_get - ", &time, "\n" ); -} diff --git a/c/src/tests/sptests/sp22/sp22.doc b/c/src/tests/sptests/sp22/sp22.doc deleted file mode 100644 index 9208d7a695..0000000000 --- a/c/src/tests/sptests/sp22/sp22.doc +++ /dev/null @@ -1,20 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test22 - -directives: - -concepts: diff --git a/c/src/tests/sptests/sp22/sp22.scn b/c/src/tests/sptests/sp22/sp22.scn deleted file mode 100644 index 6402ab4482..0000000000 --- a/c/src/tests/sptests/sp22/sp22.scn +++ /dev/null @@ -1,29 +0,0 @@ -*** TEST 22 *** -INIT - rtems_timer_create - creating timer 1 -INIT - timer 1 has id (0x10001) -TA1 - rtems_timer_ident - identing timer 1 -TA1 - timer 1 has id (0x10001) -TA1 - rtems_clock_get - 09:00:00 12/31/1988 -TA1 - rtems_timer_fire_after - timer 1 in 3 seconds -TA1 - rtems_task_suspend( RTEMS_SELF ) -TA1 - rtems_clock_get - 09:00:03 12/31/1988 -TA1 - rtems_timer_fire_after - timer 1 in 3 seconds -TA1 - rtems_task_wake_after - 1 second -TA1 - rtems_clock_get - 09:00:04 12/31/1988 -TA1 - rtems_timer_reset - timer 1 -TA1 - rtems_task_suspend( RTEMS_SELF ) -TA1 - rtems_clock_get - 09:00:07 12/31/1988 - -TA1 - rtems_timer_fire_after - timer 1 in 3 seconds -TA1 - rtems_timer_cancel - timer 1 -TA1 - rtems_clock_get - 09:00:07 12/31/1988 -TA1 - rtems_timer_fire_when - timer 1 in 3 seconds -TA1 - rtems_task_suspend( RTEMS_SELF ) -TA1 - rtems_clock_get - 09:00:10 12/31/1988 -TA1 - rtems_timer_fire_when - timer 1 in 3 seconds -TA1 - rtems_task_wake_after - 1 second -TA1 - rtems_clock_get - 09:00:11 12/31/1988 -TA1 - rtems_timer_cancel - timer 1 -TA1 - rtems_task_wake_after - YIELD (only task at priority) -TA1 - timer_deleting - timer 1 -*** END OF TEST 22 *** diff --git a/c/src/tests/sptests/sp22/system.h b/c/src/tests/sptests/sp22/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp22/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp22/task1.c b/c/src/tests/sptests/sp22/task1.c deleted file mode 100644 index 240a1972cc..0000000000 --- a/c/src/tests/sptests/sp22/task1.c +++ /dev/null @@ -1,164 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the basic task - * switching capabilities of the executive. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id tmid; - rtems_time_of_day time; - rtems_status_code status; - -/* Get id */ - - puts( "TA1 - rtems_timer_ident - identing timer 1" ); - status = rtems_timer_ident( Timer_name[ 1 ], &tmid ); - directive_failed( status, "rtems_timer_ident" ); - printf( "TA1 - timer 1 has id (0x%x)\n", tmid ); - -/* after which is allowed to fire */ - - Print_time(); - - puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" ); - status = rtems_timer_fire_after( - tmid, - 3 * TICKS_PER_SECOND, - Delayed_resume, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend" ); - - Print_time(); - -/* after which is reset and allowed to fire */ - - puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" ); - status = rtems_timer_fire_after( - tmid, - 3 * TICKS_PER_SECOND, - Delayed_resume, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - puts( "TA1 - rtems_task_wake_after - 1 second" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - Print_time(); - - puts( "TA1 - rtems_timer_reset - timer 1" ); - status = rtems_timer_reset( tmid ); - directive_failed( status, "rtems_timer_reset" ); - - puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend" ); - - Print_time(); - - pause(); - - /* - * Reset the time since we do not know how long the user waited - * before pressing at the pause. This insures that the - * actual output matches the screen. - */ - - build_time( &time, 12, 31, 1988, 9, 0, 7, 0 ); - - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - -/* after which is canceled */ - - puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" ); - status = rtems_timer_fire_after( - tmid, - 3 * TICKS_PER_SECOND, - Delayed_resume, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - puts( "TA1 - rtems_timer_cancel - timer 1" ); - status = rtems_timer_cancel( tmid ); - directive_failed( status, "rtems_timer_cancel" ); - -/* when which is allowed to fire */ - - Print_time(); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - time.second += 3; - - puts( "TA1 - rtems_timer_fire_when - timer 1 in 3 seconds" ); - status = rtems_timer_fire_when( tmid, &time, Delayed_resume, NULL ); - directive_failed( status, "rtems_timer_fire_when" ); - - puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend" ); - - Print_time(); - -/* when which is canceled */ - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - time.second += 3; - - puts( "TA1 - rtems_timer_fire_when - timer 1 in 3 seconds" ); - status = rtems_timer_fire_when( tmid, &time, Delayed_resume, NULL ); - directive_failed( status, "rtems_timer_fire_when" ); - - puts( "TA1 - rtems_task_wake_after - 1 second" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - Print_time(); - - puts( "TA1 - rtems_timer_cancel - timer 1" ); - status = rtems_timer_cancel( tmid ); - directive_failed( status, "rtems_timer_cancel" ); - -/* delete */ - puts( "TA1 - rtems_task_wake_after - YIELD (only task at priority)" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - timer_deleting - timer 1" ); - status = rtems_timer_delete( tmid ); - directive_failed( status, "rtems_timer_delete" ); - - puts( "*** END OF TEST 22 *** " ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp23/init.c b/c/src/tests/sptests/sp23/init.c deleted file mode 100644 index 5acaf67e42..0000000000 --- a/c/src/tests/sptests/sp23/init.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 23 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - Port_name[ 1 ] = rtems_build_name( 'D', 'P', '1', ' ' ); - - status = rtems_port_create( - Port_name[ 1 ], - Internal_port_area, - External_port_area, - 0xff, - &Port_id[ 1 ] - ); - directive_failed( status, "rtems_port_create of DP1" ); - - printf( "INIT - rtems_port_create - DP1 - int = %p ext = %p\n", - Internal_port_area, - External_port_area - ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp23/sp23.doc b/c/src/tests/sptests/sp23/sp23.doc deleted file mode 100644 index 485a4ec466..0000000000 --- a/c/src/tests/sptests/sp23/sp23.doc +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test23 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_delete, - m_ext2int, m_int2ext - -concepts: - - a. Verifies the dual ported RAM directives work correctly. - -output: diff --git a/c/src/tests/sptests/sp23/sp23.scn b/c/src/tests/sptests/sp23/sp23.scn deleted file mode 100644 index 7529abd4c4..0000000000 --- a/c/src/tests/sptests/sp23/sp23.scn +++ /dev/null @@ -1,9 +0,0 @@ -*** TEST 23 *** -INIT - rtems_port_create - DP1 - int = 0x00001000 ext = 0x00002000 -TA1 - rtems_port_ident - 00010001 -TA1 - rtems_port_external_to_internal - 0x0000200e => 0x0000100e -TA1 - rtems_port_internal_to_external - 0x0000100e => 0x0000200e -TA1 - rtems_port_external_to_internal - 0x0000300e => 0x0000300e -TA1 - rtems_port_internal_to_external - 0x0000050e => 0x0000050e -TA1 - rtems_port_delete - DP1 -*** END OF TEST 23 *** diff --git a/c/src/tests/sptests/sp23/system.h b/c/src/tests/sptests/sp23/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp23/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp23/task1.c b/c/src/tests/sptests/sp23/task1.c deleted file mode 100644 index 5012616131..0000000000 --- a/c/src/tests/sptests/sp23/task1.c +++ /dev/null @@ -1,96 +0,0 @@ -/* Task_1 - * - * This task verifies that the dual ported RAM directives work - * correctly by converting external addresses to internal addresses and - * internal addresses to external addresses. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id dpid; - void *to_be_converted; - void *converted; - rtems_status_code status; - - status = rtems_port_ident( Port_name[ 1 ], &dpid ); - directive_failed( status, "rtems_port_ident" ); - printf( "TA1 - rtems_port_ident - %08x\n", dpid ); - - to_be_converted = &External_port_area[ 0xe ]; - status = rtems_port_external_to_internal( - Port_id[ 1 ], - to_be_converted, - &converted - ); - directive_failed( status, "rtems_port_external_to_internal" ); - printf( - "TA1 - rtems_port_external_to_internal - %p => %p\n", - to_be_converted, - converted - ); - - to_be_converted = &Internal_port_area[ 0xe ]; - status = rtems_port_internal_to_external( - Port_id[ 1 ], - to_be_converted, - &converted - ); - directive_failed( status, "rtems_port_internal_to_external" ); - printf( - "TA1 - rtems_port_internal_to_external - %p => %p\n", - to_be_converted, - converted - ); - - to_be_converted = &Above_port_area[ 0xe ]; - status = rtems_port_external_to_internal( - Port_id[ 1 ], - to_be_converted, - &converted - ); - directive_failed( status, "rtems_port_external_to_internal" ); - printf( - "TA1 - rtems_port_external_to_internal - %p => %p\n", - to_be_converted, - converted - ); - - to_be_converted = &Below_port_area[ 0xe ]; - status = rtems_port_internal_to_external( - Port_id[ 1 ], - to_be_converted, - &converted - ); - directive_failed( status, "rtems_port_internal_to_external" ); - printf( - "TA1 - rtems_port_internal_to_external - %p => %p\n", - to_be_converted, - converted - ); - - status = rtems_port_delete( Port_id[ 1 ] ); - directive_failed( status, "rtems_port_delete" ); - puts( "TA1 - rtems_port_delete - DP1" ); - - puts( "*** END OF TEST 23 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/sp24/init.c b/c/src/tests/sptests/sp24/init.c deleted file mode 100644 index c73830a6df..0000000000 --- a/c/src/tests/sptests/sp24/init.c +++ /dev/null @@ -1,79 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_time_of_day time; - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TEST 24 ***" ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - Timer_name[ 2 ] = rtems_build_name( 'T', 'M', '2', ' ' ); - Timer_name[ 3 ] = rtems_build_name( 'T', 'M', '3', ' ' ); - - for ( index = 1 ; index <= 3 ; index++ ) { - status = rtems_task_create( - Task_name[ index ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - status = rtems_timer_create( - Timer_name[ index ], - &Timer_id[ index ] - ); - directive_failed( status, "rtems_timer_create loop" ); - } - - for ( index = 1 ; index <= 3 ; index++ ) { - status = rtems_task_start( Task_id[ index ], Task_1_through_3, index ); - directive_failed( status, "rtems_task_start loop" ); - } - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp24/resume.c b/c/src/tests/sptests/sp24/resume.c deleted file mode 100644 index c73696c109..0000000000 --- a/c/src/tests/sptests/sp24/resume.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Resume_task - * - * This subprogram is scheduled as a timer service routine. When - * it fires it resumes the task which is mapped to this timer. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Resume_task( - rtems_id timer_id, - void *ignored_address -) -{ - rtems_id task_to_resume; - rtems_status_code status; - - task_to_resume = Task_id[ rtems_get_index( timer_id ) ]; - status = rtems_task_resume( task_to_resume ); - directive_failed( status, "rtems_task_resume" ); -} diff --git a/c/src/tests/sptests/sp24/sp24.doc b/c/src/tests/sptests/sp24/sp24.doc deleted file mode 100644 index 14b743d588..0000000000 --- a/c/src/tests/sptests/sp24/sp24.doc +++ /dev/null @@ -1,51 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test24 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - ev_receive - -concepts: - - a. This test is a cyclic version of test1. The times printed by - each test should not skew as in test1 (see output section). - - b. Verifies system can create and start both the executive's system - initialization and idle task. - - c. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - d. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - e. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - f. Verifies executive initialization performed correctly. - - g. Verifies the executive trap handler except for the halt function. - - h. Verifies that a task can get the task identification number of itself. - -output: - "TA1" is printed once every 5 seconds. "TA2" is printed once - every 10 seconds. "TA3" is printed once every 15 seconds. - - The times printed should be multiples of 5 seconds for TA1, 10 seconds - for TA2, and 15 seconds for TA3. If this does not happen, the calendar - time does not correspond correctly to the number of ticks. diff --git a/c/src/tests/sptests/sp24/system.h b/c/src/tests/sptests/sp24/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/sp24/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp24/task1.c b/c/src/tests/sptests/sp24/task1.c deleted file mode 100644 index bb3540acee..0000000000 --- a/c/src/tests/sptests/sp24/task1.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Task_1_through_3 - * - * This task is a cyclic version of test1 to asssure that the times - * displayed are not skewed as in test1. "TA1" is printed once every - * 5 seconds, "TA2" is printed once every 10 seconds, and "TA3" is - * printed once every 15 seconds. The times displayed should be - * in multiples of 5, 10, and 15 for TA1, TA2, and TA3 respectively. - * If the times are skewed from these values, then the calendar time - * does not correspond correctly with the number of ticks. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1_through_3( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident of self" ); - - while ( FOREVER ) { - status = rtems_timer_fire_after( - Timer_id[ argument ], - task_number( tid ) * 5 * TICKS_PER_SECOND, - Resume_task, - NULL - ); - directive_failed( status, "tm_fire_after failed" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get failed" ); - - if ( time.second >= 35 ) { - puts( "*** END OF TEST 24 ***" ); - exit( 0 ); - } - - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend" ); - } -} diff --git a/c/src/tests/sptests/sp25/init.c b/c/src/tests/sptests/sp25/init.c deleted file mode 100644 index fcd5b3dfd6..0000000000 --- a/c/src/tests/sptests/sp25/init.c +++ /dev/null @@ -1,69 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 25 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - Region_name[ 1 ] = rtems_build_name('R', 'N', '0', '1'); - - - status = rtems_region_create( - Region_name[ 1 ], - Area_1, - sizeof( Area_1 ), - 64, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id[ 1 ] - ); - directive_failed( status, "rtems_region_create of RN1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/sp25/sp25.doc b/c/src/tests/sptests/sp25/sp25.doc deleted file mode 100644 index 98684f53b3..0000000000 --- a/c/src/tests/sptests/sp25/sp25.doc +++ /dev/null @@ -1,32 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test25 - -directives: - task_create - task_start - task_delete - region_create - region_ident - region_get_segment - region_return_segment - region_delete - -concepts: - - a. Verifies that the heap maintains it's integrity trhough a series - on region_get_segments and region_return_segments. - diff --git a/c/src/tests/sptests/sp25/sp25.scn b/c/src/tests/sptests/sp25/sp25.scn deleted file mode 100644 index 1944f18f4b..0000000000 --- a/c/src/tests/sptests/sp25/sp25.scn +++ /dev/null @@ -1,29 +0,0 @@ -*** TEST 25 *** -TA1 - rtems_region_ident - 00010002 -TA1 - rtems_region_get_segment - wait on 64 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000f9b8 -TA1 - rtems_region_get_segment - wait on 128 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000f930 -TA1 - rtems_region_get_segment - wait on 256 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000f828 -TA1 - rtems_region_get_segment - wait on 512 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000f620 -TA1 - rtems_region_get_segment - wait on 1024 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000f218 -TA1 - rtems_region_get_segment - wait on 2048 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000ea10 -TA1 - rtems_region_get_segment - wait on 4096 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000da08 -TA1 - rtems_region_get_segment - wait on 8192 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000ba00 - -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000f828 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000f620 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000f9b8 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000f930 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000da08 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000ea10 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000ba00 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000f218 -TA1 - rtems_region_delete - walks heap if debug enabled -*** END OF TEST 25 *** diff --git a/c/src/tests/sptests/sp25/system.h b/c/src/tests/sptests/sp25/system.h deleted file mode 100644 index 9e2b748a85..0000000000 --- a/c/src/tests/sptests/sp25/system.h +++ /dev/null @@ -1,32 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -#define BASE_PRIORITY 140 /* all tasks priority */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/sp25/task1.c b/c/src/tests/sptests/sp25/task1.c deleted file mode 100644 index 6222c4e734..0000000000 --- a/c/src/tests/sptests/sp25/task1.c +++ /dev/null @@ -1,241 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It tests the region manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - void *address_1; - void *address_2; - void *address_3; - void *address_4; - void *address_5; - void *address_6; - void *address_7; - void *address_8; - rtems_status_code status; - rtems_id region_id; - - status = rtems_region_ident(Region_name[ 1 ], ®ion_id); - printf( "TA1 - rtems_region_ident - %08x\n", region_id ); - directive_failed(status, "rtems_region_ident of RN01"); - - puts( - "TA1 - rtems_region_get_segment - wait on 64 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 64, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_1 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 128 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 128, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_2 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 256 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 256, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_3 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_3 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 512 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 512, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_4 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_4 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 1024 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 1024, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_5 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_5 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 2048 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 2048, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_6 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_6 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 4096 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 4096, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_7 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_7 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 8192 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 8192, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_8 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_8 ); - new_line; - -pause(); - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_3 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_3 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_3 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_4 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_4 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_4 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_1 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_1 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_2 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_2 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_2 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_7 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_7 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_7 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_6 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_6 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_6 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_8 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_8 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_8 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_5 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_5 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_5 = 0; - - puts( "TA1 - rtems_region_delete - walks heap if debug enabled" ); - rtems_region_delete(Region_id[ 1 ]); - - puts( "*** END OF TEST 25 ***" ); - exit( 0 ); -} diff --git a/c/src/tests/sptests/spfatal/fatal.c b/c/src/tests/sptests/spfatal/fatal.c deleted file mode 100644 index 3b2228bffd..0000000000 --- a/c/src/tests/sptests/spfatal/fatal.c +++ /dev/null @@ -1,134 +0,0 @@ -/* Fatal Error Test - * - * NOTE: - * - * This test actually modifies the Configuration table and restarts - * the executive. It is very carefully constructed to do this and - * uses the Configuration very carefully. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#include - -char Workspace[ 64 * 1024 ] CPU_STRUCTURE_ALIGNMENT; - -typedef enum { - FATAL_WORKSPACE_OF_ZERO, - FATAL_NULL_WORKSPACE, - FATAL_WORKSPACE_TOO_SMALL, - FATAL_TASK_CREATE, - FATAL_TASK_START -} Fatal_errors_t; - -#define FATAL_LAST FATAL_TASK_START - -volatile Fatal_errors_t Case_in_switch; - -rtems_status_code Expected_Errors[] = { - RTEMS_UNSATISFIED, - RTEMS_INVALID_ADDRESS, - RTEMS_UNSATISFIED, - RTEMS_INVALID_PRIORITY, - RTEMS_TASK_EXITTED -}; - -rtems_status_code Error_Happened[ FATAL_LAST + 1]; - -jmp_buf Restart_Context; - -/* - * We depend on this being zeroed during initialization. This - * occurs automatically because this is part of the BSS. - */ - -rtems_unsigned32 First_Time_Through; - -void Process_case(); - -rtems_extension Fatal_extension( - rtems_unsigned32 error -) -{ - int index; - - Error_Happened[ Case_in_switch ] = error; - - if ( First_Time_Through == 0 ) { - Case_in_switch = FATAL_WORKSPACE_OF_ZERO; - First_Time_Through = 1; - setjmp( Restart_Context ); - } else if ( Case_in_switch == FATAL_LAST ) { - - /* - * Depending on the C library we use, we cannot get the - * task exitted error so do not check for it. - */ - - puts( "*** TEST FATAL ***" ); - for ( index=0 ; index< FATAL_LAST ; index++ ) - put_error( Error_Happened[ index ], Expected_Errors[ index ] ); - puts( "NOT TESTING FATAL ERROR WHEN TASK EXITS -- C LIBRARY CATCHES THIS" ); - puts( "*** END OF TEST FATAL ***" ); - - /* - * returns to the default fatal error handler instead of - * calling rtems_shutdown_executive - */ - return; - - } else { - - longjmp( Restart_Context, 1 ); - } - - Process_case(); -} - - - -void Process_case() -{ - switch ( Case_in_switch ) { - case FATAL_WORKSPACE_OF_ZERO: - New_Configuration = BSP_Configuration; - New_Configuration.work_space_start = NULL; - Case_in_switch = FATAL_NULL_WORKSPACE; - break; - - case FATAL_NULL_WORKSPACE: - New_Configuration.work_space_start = Workspace; - New_Configuration.work_space_size = 256; - Case_in_switch = FATAL_WORKSPACE_TOO_SMALL; - break; - - case FATAL_WORKSPACE_TOO_SMALL: - Initialization_tasks[ 0 ].initial_priority = RTEMS_CURRENT_PRIORITY; - New_Configuration.work_space_size = sizeof( Workspace ); - Case_in_switch = FATAL_TASK_CREATE; - break; - - case FATAL_TASK_CREATE: - Initialization_tasks[ 0 ].initial_priority = 1; - Initialization_tasks[ 0 ].entry_point = NULL; - Case_in_switch = FATAL_TASK_START; - break; - - case FATAL_TASK_START: - /* this extension exits the test */ - Initialization_tasks[ 0 ].entry_point = Init; - break; - } - rtems_initialize_executive( &New_Configuration, &Cpu_table ); -} - diff --git a/c/src/tests/sptests/spfatal/init.c b/c/src/tests/sptests/spfatal/init.c deleted file mode 100644 index a50c6101f5..0000000000 --- a/c/src/tests/sptests/spfatal/init.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/sptests/spfatal/puterr.c b/c/src/tests/sptests/spfatal/puterr.c deleted file mode 100644 index f7d79e5f34..0000000000 --- a/c/src/tests/sptests/spfatal/puterr.c +++ /dev/null @@ -1,68 +0,0 @@ -/* put_error - * - * This routine verifies that the given error is the expected error. - * - * Input parameters: - * error - actual error code - * expected - expected error code - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -char *Errors[] = { - "RTEMS_SUCCESSFUL", /* successful completion */ - "RTEMS_TASK_EXITTED", /* returned from a task */ - "RTEMS_MP_NOT_CONFIGURED", /* multiprocessing not configured */ - "RTEMS_INVALID_NAME", /* invalid object name */ - "RTEMS_INVALID_ID", /* invalid object id */ - "RTEMS_TOO_MANY", /* too many */ - "RTEMS_TIMEOUT", /* timed out waiting */ - "RTEMS_OBJECT_WAS_DELETED", /* object was deleted while waiting */ - "RTEMS_INVALID_SIZE", /* specified size was invalid */ - "RTEMS_INVALID_ADDRESS", /* address specified is invalid */ - "RTEMS_INVALID_NUMBER", /* number was invalid */ - "RTEMS_NOT_DEFINED", /* item has not been initialized */ - "RTEMS_RESOURCE_IN_USE", /* resources still outstanding */ - "RTEMS_UNSATISFIED", /* request not satisfied */ - "RTEMS_INCORRECT_STATE", /* task is in wrong state */ - "RTEMS_ALREADY_SUSPENDED", /* task already in state */ - "RTEMS_ILLEGAL_ON_SELF", /* illegal operation on calling task */ - "RTEMS_ILLEGAL_ON_REMOTE_OBJECT", /* illegal operation for remote object */ - "RTEMS_CALLED_FROM_ISR", /* called from ISR */ - "RTEMS_INVALID_PRIORITY", /* invalid task priority */ - "RTEMS_INVALID_CLOCK", /* invalid date/time */ - "RTEMS_INVALID_NODE", /* invalid node id */ - "RTEMS_NOT_OWNER_OF_RESOURCE", /* not owner of resource */ - "RTEMS_NOT_CONFIGURED", /* directive not configured */ - "RTEMS_NOT_IMPLEMENTED" /* directive not implemented */ -}; - -/* Task states */ - -void put_error( - rtems_unsigned32 error, - rtems_status_code expected -) -{ - - if ( error <= RTEMS_NOT_IMPLEMENTED ) - printf( "EXPECTED FATAL - error code is correctly %s\n", Errors[ error ] ); - else - printf( "ERROR - out of range error code is %d\n", error ); - - if ( error != expected ) { - printf( "ERROR - did not get expected code of %d\n", expected ); - } -} diff --git a/c/src/tests/sptests/spfatal/spfatal.doc b/c/src/tests/sptests/spfatal/spfatal.doc deleted file mode 100644 index 501f278670..0000000000 --- a/c/src/tests/sptests/spfatal/spfatal.doc +++ /dev/null @@ -1,28 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: testfatal - -directives: none - -concepts: - - a. Verifies that the proper error is reported by k_fatal when a task - exits. - - b. Verifies that the task exitted extension works correctly. - - c. Verifies that the fatal error extension works corectly. - diff --git a/c/src/tests/sptests/spfatal/spfatal.scn b/c/src/tests/sptests/spfatal/spfatal.scn deleted file mode 100644 index ecb9f63597..0000000000 --- a/c/src/tests/sptests/spfatal/spfatal.scn +++ /dev/null @@ -1,8 +0,0 @@ -*** TEST FATAL *** -EXPECTED FATAL - error code is correctly RTEMS_UNSATISFIED -EXPECTED FATAL - error code is correctly RTEMS_INVALID_ADDRESS -EXPECTED FATAL - error code is correctly RTEMS_UNSATISFIED -EXPECTED FATAL - error code is correctly RTEMS_INVALID_PRIORITY -EXPECTED FATAL - error code is correctly RTEMS_TASK_EXITTED -NOT TESTING FATAL ERROR WHEN TASK EXITS -- C LIBRARY CATCHES THIS -*** END OF TEST FATAL *** diff --git a/c/src/tests/sptests/spfatal/system.h b/c/src/tests/sptests/spfatal/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/c/src/tests/sptests/spfatal/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/c/src/tests/sptests/spfatal/task1.c b/c/src/tests/sptests/spfatal/task1.c deleted file mode 100644 index d06d25e690..0000000000 --- a/c/src/tests/sptests/spfatal/task1.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the task manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - puts( "\n\n*** TEST FATAL ***" ); - puts( "TA1 - exitting task" ); -} diff --git a/c/src/tests/sptests/spsize/getint.c b/c/src/tests/sptests/spsize/getint.c deleted file mode 100644 index 43d1f695c9..0000000000 --- a/c/src/tests/sptests/spsize/getint.c +++ /dev/null @@ -1,32 +0,0 @@ -/* getint - * - * This routine reads and returns an integer. - * It assumes decimal. - * - * Input parameters: NONE - * - * Output parameters: - * returns - number read - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -int getint( void ) -{ - char buff[16]; - - gets(buff); - return atoi(buff); -} diff --git a/c/src/tests/sptests/spsize/init.c b/c/src/tests/sptests/spsize/init.c deleted file mode 100644 index e15e7b40fb..0000000000 --- a/c/src/tests/sptests/spsize/init.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "apps.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Test_task(); -void size_rtems( int mode ); - -rtems_task Init( - rtems_task_argument argument -) -{ - int choice; - - setvbuf(stdout, 0, _IONBF, 0); - - do { - puts( "\n*** RTEMS SIZE PROGRAM ***" ); - printf( "\n\nPlease select program mode:\n" ); - printf( " 1) Print Formulas\n" ); - printf( " 2) Determine Workspace Size\n" ); - printf( " 3) Exit\n" ); - printf( "Enter number of choice (1,2,3) : " ); - - choice = getint(); - switch( choice ) { - case 1: size_rtems( 1 ); break; - case 2: size_rtems( 0 ); break; - case 3: exit( 0 ); - default: continue; - } - } while ( FOREVER ); -} diff --git a/c/src/tests/sptests/spsize/size.c b/c/src/tests/sptests/spsize/size.c deleted file mode 100644 index 52404272fd..0000000000 --- a/c/src/tests/sptests/spsize/size.c +++ /dev/null @@ -1,601 +0,0 @@ -/* main - * - * This program is run to determine the data space and work space - * requirements of the current version of RTEMS. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* These are always defined by the executive. - * - * #include - * #include - * #include - */ -#define HEAP_OVHD 16 /* wasted heap space per task stack */ -#define NAME_PTR_SIZE 8 /* size of name and pointer table entries */ -#define READYCHAINS_SIZE \ - ((RTEMS_MAXIMUM_PRIORITY + 1) * sizeof(Chain_Control )) - -#define PER_TASK \ - (sizeof (Thread_Control) + NAME_PTR_SIZE + HEAP_OVHD) -#define PER_SEMAPHORE \ - (sizeof (Semaphore_Control) + NAME_PTR_SIZE) -#define PER_TIMER \ - (sizeof (Timer_Control) + NAME_PTR_SIZE) -#define PER_MSGQ \ - (sizeof (Message_queue_Control) + NAME_PTR_SIZE) -#define PER_MSG \ - (sizeof (Message_queue_Buffer_control)) -#define PER_REGN \ - (sizeof (Region_Control) + NAME_PTR_SIZE) -#define PER_PART \ - (sizeof (Partition_Control) + NAME_PTR_SIZE) -#define PER_PERIOD \ - (sizeof (Rate_monotonic_Control) + NAME_PTR_SIZE) -#define PER_PORT \ - (sizeof (Dual_ported_memory_Control) + NAME_PTR_SIZE) -#define PER_EXTENSION \ - (sizeof (Extension_Control) + NAME_PTR_SIZE) - -#define PER_DRV (0) -#define PER_FPTASK (CONTEXT_FP_SIZE) -#define PER_GOBTBL (sizeof (Chain_Control)*4) -#define PER_NODE PER_GOBTBL -#define PER_GOBJECT (sizeof (Objects_MP_Control)) -#define PER_PROXY (sizeof (Thread_Proxy_control)) - -#if (CPU_ALL_TASKS_ARE_FP == TRUE) -#define SYSTEM_INITIALIZATION_FP (sizeof( Context_Control_fp )) -#else -#define SYSTEM_INITIALIZATION_FP 0 -#endif - -#if (CPU_IDLE_TASK_IS_FP == TRUE) -#define SYSTEM_IDLE_FP (sizeof( Context_Control_fp )) -#else -#define SYSTEM_IDLE_FP 0 -#endif - -#define SYSTEM_TASKS \ - (INTERNAL_THREADS_IDLE_THREAD_STACK_SIZE + \ - INTERNAL_THREADS_SYSTEM_INITIALIZATION_THREAD_STACK_SIZE + \ - (2*sizeof(Thread_Control))) + \ - SYSTEM_INITIALIZATION_FP + \ - SYSTEM_IDLE_FP - -#define rtems_unsigned32 unsigned32 - -rtems_unsigned32 sys_req; - -/* to avoid warnings */ -int puts(); -int printf(); -int getint(); -#undef getchar -int getchar(); -void help_size(); -void print_formula(); - -void size_rtems( - int mode -) -{ -int uninitialized = 0; -int initialized = 0; - -/* - * The following data is allocated for each Manager: - * - * + Per Manager Object Information - * - local pointer table - * - local name table - * - the object's control blocks - * - global name chains - * - * The following is the data allocate from the RTEMS Workspace Area. - * The order indicates the order in which RTEMS allocates it. - * - * + Object MP - * - Global Object CB's - * + Thread - * - Ready Chain - * + Thread MP - * - Proxies Chain - * + Interrupt Manager - * - Interrupt Stack - * + Timer Manager - * - per Manager Object Data - * + Extension Manager - * - per Manager Object Data - * + Message Queue Manager - * - per Manager Object Data - * - Message Buffers - * + Semaphore Manager - * - per Manager Object Data - * + Partition Manager - * - per Manager Object Data - * + Region Manager - * - per Manager Object Data - * + Dual Ported Memory Manager - * - per Manager Object Data - * + Rate Monotonic Manager - * - per Manager Object Data - * + Internal Threads Handler - * - SYSI Thread TCB - * - IDLE Thread TCB - * - SYSI Thread stack - * - SYSI Thread FP area (if CPU requires this) - * - IDLE Thread stack - * - IDLE Thread FP area (if CPU requires this) - * - * This does not take into account any CPU dependent alignment requirements. - * - * The following calculates the overhead needed by RTEMS from the - * Workspace Area. - */ -sys_req = SYSTEM_TASKS + /* SYSI and IDLE */ - NAME_PTR_SIZE + /* Task Overhead */ - READYCHAINS_SIZE + /* Ready Chains */ - NAME_PTR_SIZE + /* Timer Overhead */ - NAME_PTR_SIZE + /* Semaphore Overhead */ - NAME_PTR_SIZE + /* Message Queue Overhead */ - NAME_PTR_SIZE + /* Region Overhead */ - NAME_PTR_SIZE + /* Partition Overhead */ - NAME_PTR_SIZE + /* Dual-Ported Memory Overhead */ - NAME_PTR_SIZE + /* Rate Monotonic Overhead */ - NAME_PTR_SIZE + /* Extension Overhead */ - PER_NODE; /* Extra Gobject Table */ - -uninitialized = -/*address.h*/ 0 + - -/*asr.h*/ 0 + - -/*attr.h*/ 0 + - -/*bitfield.h*/ 0 + - -/*chain.h*/ 0 + - -/*clock.h*/ 0 + - -/*config.h*/ (sizeof _Configuration_Table) + - (sizeof _Configuration_MP_table) + - (sizeof _Configuration_MPCI_table) + - -/*context.h*/ (sizeof _Context_Switch_necessary) + - -/*copyrt.h*/ 0 + - -/*dpmem.h*/ (sizeof _Dual_ported_memory_Information) + - -/*event.h*/ (sizeof _Event_Sync) + - -/*eventmp.h*/ 0 + - -/*eventset.h*/ 0 + - -/*extension.h*/ (sizeof _Extension_Information) + - -/*fatal.h*/ 0 + - -/*heap.h*/ 0 + - -/*init.h*/ 0 + - -/*inthrdmp.h*/ 0 + - -/*intr.h*/ 0 + - -/*intthrd.h*/ (sizeof _Internal_threads_System_initialization_thread) + - (sizeof _Internal_threads_Idle_thread) + - (sizeof _Internal_threads_MP_Receive_server_entry) + - -/*io.h*/ (sizeof _IO_Number_of_drivers) + - (sizeof _IO_Driver_address_table) + - -/*isr.h*/ (sizeof _ISR_Nest_level) + - (sizeof _ISR_Vector_table) + - (sizeof _ISR_Signals_to_thread_executing) + - -/*message.h*/ (sizeof _Message_queue_Inactive_messages) + - (sizeof _Message_queue_Information) + - -/*modes.h*/ 0 + - -/*mp.h*/ 0 + - -/*mpci.h*/ (sizeof _MPCI_Remote_blocked_threads) + - -/*mppkt.h*/ 0 + - -/*mptables.h*/ 0 + - -/*msgmp.h*/ 0 + - -/*object.h*/ (sizeof _Objects_Local_node) + - -/*objectmp.h*/ (sizeof _Objects_MP_Inactive_global_objects) + - -/*options.h*/ 0 + - -/*part.h*/ (sizeof _Partition_Information) + - -/*partmp.h*/ 0 + - -/*priority.h*/ (sizeof _Priority_Major_bit_map) + - (sizeof _Priority_Bit_map) + - -/*ratemon.h*/ (sizeof _Rate_monotonic_Information) + - -/*region.h*/ (sizeof _Region_Information) + - -/*regionmp.h*/ 0 + - -/*rtems.h*/ /* Not applicable */ - -/*sem.h*/ (sizeof _Semaphore_Information) + - -/*semmp.h*/ 0 + - -/*signal.h*/ 0 + - -/*signalmp.h*/ 0 + - -/*stack.h*/ 0 + - -/*states.h*/ 0 + - -/*status.h*/ 0 + - -/*system.h*/ (sizeof _CPU_Table) + - -/*sysstate.h*/ (sizeof _System_state_Current) + - -/*taskmp.h*/ 0 + - -/*tasks.h*/ 0 + - -/*thread.h*/ (sizeof _Thread_Dispatch_disable_level) + - (sizeof _Thread_Ticks_remaining_in_timeslice) + - (sizeof _Thread_Ticks_per_timeslice) + - (sizeof _Thread_Ready_chain) + - (sizeof _Thread_Executing) + - (sizeof _Thread_Heir) + - (sizeof _Thread_Allocated_fp) + - (sizeof _Thread_Information) + - (sizeof _Thread_BSP_context) + - -/*threadmp.h*/ (sizeof _Thread_MP_Receive) + - (sizeof _Thread_MP_Active_proxies) + - (sizeof _Thread_MP_Inactive_proxies) + - -/*threadq.h*/ 0 + - -/*timer.h*/ (sizeof _Timer_Information) + - -/*tod.h*/ (sizeof _TOD_Current) + - (sizeof _TOD_Seconds_since_epoch) + - (sizeof _TOD_Ticks_since_boot) + - (sizeof _TOD_Microseconds_per_tick) + - (sizeof _TOD_Ticks_per_second) + - (sizeof _TOD_Seconds_watchdog) + - -/*tqdata.h*/ 0 + - -/*types.h*/ 0 + - -/*userext.h*/ (sizeof _User_extensions_Initial) + - (sizeof _User_extensions_List) + - -/*watchdog.h*/ (sizeof _Watchdog_Ticks_chain) + - (sizeof _Watchdog_Seconds_chain) + - (sizeof _Watchdog_Sync) + - -/*wkspace.h*/ (sizeof _Workspace_Area); - -uninitialized = 0; - -#ifdef i386 - -/* cpu.h */ -uninitialized += (sizeof _CPU_Null_fp_context) + - (sizeof _CPU_Interrupt_stack_low) + - (sizeof _CPU_Interrupt_stack_high); - -#endif - -#ifdef i960 - -/* cpu.h */ -uninitialized += (sizeof _CPU_Interrupt_stack_low) + - (sizeof _CPU_Interrupt_stack_high); - -#endif - -#ifdef hppa1_1 - -/* cpu.h */ -uninitialized += (sizeof _CPU_Null_fp_context) + - (sizeof _CPU_Default_gr27) + - (sizeof _CPU_Interrupt_stack_low) + - (sizeof _CPU_Interrupt_stack_high); -#endif - -#ifdef m68k - -/* cpu.h */ -uninitialized += (sizeof _CPU_Interrupt_stack_low) + - (sizeof _CPU_Interrupt_stack_high); - -#endif - -#ifdef no_cpu - -/* cpu.h */ -uninitialized += (sizeof _CPU_Null_fp_context) + - (sizeof _CPU_Interrupt_stack_low) + - (sizeof _CPU_Interrupt_stack_high) + - (sizeof _CPU_Thread_dispatch_pointer); - -#endif - -initialized += -/*copyrt.h*/ (strlen(_Copyright_Notice)+1) + - -/*sptables.h*/ (sizeof _Configuration_Default_multiprocessing_table) + - (strlen(_RTEMS_version)+1) + - (sizeof _Entry_points) + - - -/*tod.h*/ (sizeof _TOD_Days_per_month) + - (sizeof _TOD_Days_to_date) + - (sizeof _TOD_Days_since_last_leap_year); - -puts( "" ); -#ifdef i960CA - print_formula(); -#else - if ( mode == 0 ) help_size(); - else print_formula(); -#endif - -printf( "\n" ); -printf( "RTEMS uninitialized data consumes %d bytes\n", uninitialized ); -printf( "RTEMS intialized data consumes %d bytes\n", initialized ); - -} - -void help_size() -{ -int c = '\0'; -int break_loop; -int total_size; -int task_stacks; -int interrupt_stack; -int maximum_tasks, size_tasks; -int maximum_sems, size_sems; -int maximum_timers, size_timers; -int maximum_msgqs, size_msgqs; -int maximum_msgs, size_msgs; -int maximum_regns, size_regns; -int maximum_parts, size_parts; -int maximum_ports, size_ports; -int maximum_periods, size_periods; -int maximum_extensions, size_extensions; -int maximum_drvs, size_drvs; -int maximum_fps, size_fps; -int maximum_nodes, size_nodes; -int maximum_gobjs, size_gobjs; -int maximum_proxies, size_proxies; - -total_size = sys_req; /* Fixed Overhead */ -printf( "What is maximum_tasks? " ); -maximum_tasks = getint(); -size_tasks = PER_TASK * maximum_tasks; -total_size += size_tasks; - -printf( "What is maximum_semaphores? " ); -maximum_sems = getint(); -size_sems = PER_SEMAPHORE * maximum_sems; -total_size += size_sems; - -printf( "What is maximum_timers? " ); -maximum_timers = getint(); -size_timers = PER_TIMER * maximum_timers; -total_size += size_timers; - -printf( "What is maximum_message_queues? " ); -maximum_msgqs = getint(); -size_msgqs = PER_MSGQ * maximum_msgqs; -total_size += size_msgqs; - -printf( "What is maximum_messages? " ); -maximum_msgs = getint(); -size_msgs = PER_MSG * maximum_msgs; -total_size += size_msgs; - -printf( "What is maximum_regions? " ); -maximum_regns = getint(); -size_regns = PER_REGN * maximum_regns; -total_size += size_regns; - -printf( "What is maximum_partitions? " ); -maximum_parts = getint(); -size_parts = PER_PART * maximum_parts; -total_size += size_parts; - -printf( "What is maximum_ports? " ); -maximum_ports = getint(); -size_ports = PER_PORT * maximum_ports; -total_size += size_ports; - -printf( "What is maximum_periods? " ); -maximum_periods = getint(); -size_periods = PER_PORT * maximum_periods; -total_size += size_periods; - -printf( "What is maximum_extensions? " ); -maximum_extensions = getint(); -size_extensions = PER_EXTENSION * maximum_extensions; -total_size += size_extensions; - -printf( "What is number_of_device_drivers? " ); -maximum_drvs = getint(); -size_drvs = PER_DRV * maximum_drvs; -total_size += size_drvs; - -printf( "What will be total stack requirement for all tasks? " ); -task_stacks = getint(); -total_size += task_stacks; - -printf( "What is the size of the interrupt stack? " ); -interrupt_stack = getint(); -total_size += interrupt_stack; - -printf( "How many tasks will be created with the FP flag? " ); -maximum_fps = getint(); -size_fps = PER_FPTASK * maximum_fps; -total_size += size_fps; - -printf( "Is this a single processor system? " ); -for ( break_loop=0 ; !break_loop; c = getchar() ) { - switch ( c ) { - case 'Y': case 'y': - case 'N': case 'n': - break_loop = 1; - break; - } -} -printf( "%c\n", c ); -if ( c == 'n' || c == 'N' ) { - printf( "What is maximum_nodes? " ); - maximum_nodes = getint(); - size_nodes = PER_NODE * maximum_nodes; - total_size += size_nodes; - printf( "What is maximum_global_objects? " ); - maximum_gobjs = getint(); - size_gobjs = PER_GOBJECT * maximum_gobjs; - total_size += size_gobjs; - printf( "What is maximum_proxies? " ); - maximum_proxies = getint(); - size_proxies = PER_PROXY * maximum_proxies; - total_size += size_proxies; -} else { - maximum_nodes = 0; - size_nodes = PER_NODE * 0; - maximum_gobjs = 0; - size_gobjs = PER_GOBJECT * 0; - maximum_proxies = 0; - size_proxies = PER_PROXY * 0; -} - -printf( "\n\n" ); -printf( " ************** EXECUTIVE WORK SPACE REQUIRED **************\n" ); -printf( " Tasks - %03d * %03d = %d\n", - maximum_tasks, PER_TASK, size_tasks ); -printf( " Semaphores - %03d * %03d = %d\n", - maximum_sems, PER_SEMAPHORE, size_sems ); -printf( " Timers - %03d * %03d = %d\n", - maximum_timers, PER_TIMER, size_timers ); -printf( " Msg Queues - %03d * %03d = %d\n", - maximum_msgqs, PER_MSGQ, size_msgqs ); -printf( " Messages - %03d * %03d = %d\n", - maximum_msgs, PER_MSG, size_msgs ); -printf( " Regions - %03d * %03d = %d\n", - maximum_regns, PER_REGN, size_regns); -printf( " Partitions - %03d * %03d = %d\n", - maximum_parts, PER_PART, size_parts ); -printf( " Periods - %03d * %03d = %d\n", - maximum_periods, PER_PERIOD, size_periods ); -printf( " Extensions - %03d * %03d = %d\n", - maximum_extensions, PER_EXTENSION, size_extensions ); -printf( " Device Drivers - %03d * %03d = %d\n", - maximum_drvs, PER_DRV, size_drvs ); - -printf( " System Requirements - %04d = %d\n", - sys_req, sys_req ); - -printf( " Floating Point Tasks - %03d * %03d = %d\n", - maximum_fps, PER_FPTASK, size_fps ); -printf( " Application Task Stacks - = %d\n", - task_stacks ); -printf( " Interrupt Stacks - = %d\n", - task_stacks ); -printf( " \n" ); -printf( " Global object tables - %03d * %03d = %d\n", - maximum_nodes, PER_NODE, size_nodes ); -printf( " Global objects - %03d * %03d = %d\n", - maximum_gobjs, PER_GOBJECT, size_gobjs ); -printf( " Proxies - %03d * %03d = %d\n", - maximum_proxies, PER_PROXY, size_proxies ); -printf( "\n\n" ); -printf( " TOTAL = %d bytes\n", - total_size ); -} - -void print_formula() -{ -printf( " ************** EXECUTIVE WORK SPACE FORMULA **************\n" ); -printf( " Tasks - maximum_tasks * %d\n", PER_TASK ); -printf( " Timers - maximum_timers * %d\n", PER_TIMER ); -printf( " Semaphores - maximum_semaphores * %d\n", PER_SEMAPHORE); -printf( " Message Queues - maximum_message_queues * %d\n", PER_MSGQ ); -printf( " Messages - maximum_messages * %d\n", PER_MSG ); -printf( " Regions - maximum_regions * %d\n", PER_REGN ); -printf( " Partitions - maximum_partitions * %d\n", PER_PART ); -printf( " Ports - maximum_ports * %d\n", PER_PORT ); -printf( " Periods - maximum_periods * %d\n", PER_PORT ); -printf( " Extensions - maximum_extensions * %d\n", PER_EXTENSION ); -printf( " Device Drivers - number_of_device_drivers * %d\n", PER_DRV); -printf( " System Requirements - %d\n", sys_req ); -printf( " Floating Point Tasks - FPMASK Tasks * %d\n", CONTEXT_FP_SIZE ); -printf( " User's Tasks' Stacks -\n" ); -printf( " Interrupt Stack -\n" ); -printf( " \n" ); -printf( " Global object tables - maximum_nodes * %d\n", PER_NODE ); -printf( " Global objects - maximum_global_objects * %d\n", PER_GOBJECT ); -printf( " Proxies - maximum_proxies * %d\n", PER_PROXY ); -} diff --git a/c/src/tests/support/include/tmacros.h b/c/src/tests/support/include/tmacros.h deleted file mode 100644 index 8a5fad37c8..0000000000 --- a/c/src/tests/support/include/tmacros.h +++ /dev/null @@ -1,116 +0,0 @@ -/* tmacros.h - * - * This include file contains macros which are useful in the RTEMS - * test suites. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TMACROS_h -#define __TMACROS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include "bsp.h" -#include "stdio.h" -#include "stdlib.h" -#include "libcsupport.h" - -#define FOREVER 1 /* infinite loop */ - -#define directive_failed( dirstat, failmsg ) \ - fatal_directive_status( dirstat, RTEMS_SUCCESSFUL, failmsg ) - -#define fatal_directive_status( stat, desired, msg ) \ - { \ - if ( (stat) != (desired) ) { \ - printf( "\n%s FAILED -- expected (%d) got (%d)\n", \ - (msg), (desired), (stat) ); \ - exit( stat ); \ - } \ - } - -#define sprint_time(str,s1,tb,s2) \ - sprintf( (str), "%s%02d:%02d:%02d %02d/%02d/%04d%s", \ - s1, (tb)->hour, (tb)->minute, (tb)->second, \ - (tb)->month, (tb)->day, (tb)->year, s2 ); - -#define print_time(s1,tb,s2) \ - printf( "%s%02d:%02d:%02d %02d/%02d/%04d%s", \ - s1, (tb)->hour, (tb)->minute, (tb)->second, \ - (tb)->month, (tb)->day, (tb)->year, s2 ); - -#define put_dot( c ) putchar( c ); fflush( stdout ) - -#define new_line puts( "" ) - -#define puts_nocr printf - -#define pause() \ - do { \ - char buffer[ 80 ]; \ - printf( " " ); fflush( stdout ); \ - gets( buffer ); \ - puts( "" ); \ - } while ( 0 ) - -#define pause_and_screen_number( _screen ) \ - do { \ - char buffer[ 80 ]; \ - printf( " ", (_screen) ); fflush( stdout ); \ - gets( buffer ); \ - puts( "" ); \ - } while ( 0 ) - -#define put_name( name, crlf ) \ -{ rtems_unsigned32 c0, c1, c2, c3; \ - c0 = (name >> 24) & 0xff; \ - c1 = (name >> 16) & 0xff; \ - c2 = (name >> 8) & 0xff; \ - c3 = name & 0xff; \ - putchar( (char)c0 ); \ - if ( c1 ) putchar( (char)c1 ); \ - if ( c2 ) putchar( (char)c2 ); \ - if ( c3 ) putchar( (char)c3 ); \ - if ( crlf ) \ - putchar( '\n' ); \ -} - -#define put_buffer( _buffer ) XYZ( _buffer ) - -#define build_time( TB, MON, DAY, YR, HR, MIN, SEC, TK ) \ - { (TB)->year = YR; \ - (TB)->month = MON; \ - (TB)->day = DAY; \ - (TB)->hour = HR; \ - (TB)->minute = MIN; \ - (TB)->second = SEC; \ - (TB)->ticks = TK; } - -#define task_number( tid ) \ - ( rtems_get_index( tid ) - BSP_Configuration.number_of_initialization_tasks ) - -static inline rtems_unsigned32 get_ticks_per_second( void ) -{ - rtems_interval ticks_per_second; - (void) rtems_clock_get( RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticks_per_second ); - return ticks_per_second; -} - -#define TICKS_PER_SECOND get_ticks_per_second() - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/c/src/tests/support/stubdr/close.c b/c/src/tests/support/stubdr/close.c deleted file mode 100644 index 7fb24ede56..0000000000 --- a/c/src/tests/support/stubdr/close.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Stub_close - * - * This routine is the terminal driver close routine. - * - * Input parameters: - * major - device major number - * minor - device minor number - * pargb - pointer to close parameter block - * tid - calling task's id - * rval - address of the return value - * - * Output parameters: - * rval - STUB_SUCCESSFUL - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stubdrv.h" - -rtems_device_driver Stub_close( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - *rval = STUB_SUCCESSFUL; -} diff --git a/c/src/tests/support/stubdr/cntrl.c b/c/src/tests/support/stubdr/cntrl.c deleted file mode 100644 index 8d1d904583..0000000000 --- a/c/src/tests/support/stubdr/cntrl.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Stub_control - * - * This routine is the terminal driver control routine. - * - * Input parameters: - * major - device major number - * minor - device minor number - * pargp - pointer to cntrl parameter block - * tid - calling task's id - * rval - address of the return value - * - * Output parameters: - * rval - STUB_SUCCESSFUL - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stubdrv.h" - -rtems_device_driver Stub_control( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - *rval = STUB_SUCCESSFUL; -} diff --git a/c/src/tests/support/stubdr/init.c b/c/src/tests/support/stubdr/init.c deleted file mode 100644 index 35ec5f8f37..0000000000 --- a/c/src/tests/support/stubdr/init.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Stub_initialize - * - * This routine is the terminal driver init routine. - * - * Input parameters: - * major - device major number - * minor - device minor number - * pargp - pointer to parameter block - * tid - calling task's id - * rval - pointer to return value - * - * Output parameters: - * rval - STUB_SUCCESSFUL - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stubdrv.h" - -rtems_unsigned32 STUB_major; - -rtems_device_driver Stub_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - STUB_major = major; - *rval = STUB_SUCCESSFUL; -} diff --git a/c/src/tests/support/stubdr/open.c b/c/src/tests/support/stubdr/open.c deleted file mode 100644 index cf4a5c4ffb..0000000000 --- a/c/src/tests/support/stubdr/open.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Stub_open - * - * This routine is the terminal driver open routine. - * - * Input parameters: - * major - device major number - * minor - device minor number - * pargb - pointer to open parameter block - * tid - calling task's id - * rval - address of the return value - * - * Output parameters: - * rval - STUB_SUCCESSFUL - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stubdrv.h" - -rtems_device_driver Stub_open( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - *rval = STUB_SUCCESSFUL; -} diff --git a/c/src/tests/support/stubdr/read.c b/c/src/tests/support/stubdr/read.c deleted file mode 100644 index 7244d34cc8..0000000000 --- a/c/src/tests/support/stubdr/read.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Stub_read - * - * This routine is the terminal driver read routine. - * - * Input parameters: - * major - device major number - * minor - device minor number - * pargp - pointer to read parameter block - * tid - calling task's id - * rval - address of the return value - * - * Output parameters: - * rval - STUB_SUCCESSFUL - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stubdrv.h" - -rtems_device_driver Stub_read( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - *rval = STUB_SUCCESSFUL; -} diff --git a/c/src/tests/support/stubdr/stubdrv.h b/c/src/tests/support/stubdr/stubdrv.h deleted file mode 100644 index 34c571b6d6..0000000000 --- a/c/src/tests/support/stubdr/stubdrv.h +++ /dev/null @@ -1,81 +0,0 @@ -/* stubdrv.h - * - * This file describes the Stub Driver for all boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STUB_DRIVER_h -#define __STUB_DRIVER_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define STUB_DRIVER_TABLE_ENTRY \ - { Stub_initialize, NULL, NULL, NULL, NULL, NULL } - -#define STUB_SUCCESSFUL RTEMS_SUCCESSFUL - -rtems_device_driver Stub_initialize( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -rtems_device_driver Stub_open( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -rtems_device_driver Stub_close( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -rtems_device_driver Stub_read( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -rtems_device_driver Stub_write( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -rtems_device_driver Stub_control( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/tests/support/stubdr/write.c b/c/src/tests/support/stubdr/write.c deleted file mode 100644 index c6b5ce770a..0000000000 --- a/c/src/tests/support/stubdr/write.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Stub_write - * - * This routine is the terminal driver write routine. - * - * Input parameters: - * major - device major number - * minor - device minor number - * pargp - pointer to write parameter block - * tid - calling task's id - * rval - address of the return value - * - * Output parameters: - * rval - STUB_SUCCESSFUL - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stubdrv.h" - -rtems_device_driver Stub_write( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *pargp, - rtems_id tid, - rtems_unsigned32 *rval -) -{ - *rval = STUB_SUCCESSFUL; -} diff --git a/c/src/tests/tmtests/README b/c/src/tests/tmtests/README deleted file mode 100644 index c27617d5a3..0000000000 --- a/c/src/tests/tmtests/README +++ /dev/null @@ -1,21 +0,0 @@ -# -# $Id$ -# - -This directory contains the RTEMS Timing Test Suite. -The tests in this directory are used to measure the execution -time of RTEMS directive and some critical internal functions. -The results of these test are reported in the Fact Sheets -and Supplental Manuals. - -These tests attempt to benchmark RTEMS as the user would. They measure -the execution time for a directive (under various circumstances) -from the time RTEMS is entered until it is executed. Where possible, -the time is the average of at least 100 invocations of the directive. - -The accuracy of the times reported by these benchmarks is very dependent -on the resolution of the timer being used. It is also important to -insure that all sources of hardware interrupts are disabled during -execution of the tests. This insures that the directive time reported -does not include any interrupt time. - diff --git a/c/src/tests/tmtests/include/timesys.h b/c/src/tests/tmtests/include/timesys.h deleted file mode 100644 index 3b61d7b42d..0000000000 --- a/c/src/tests/tmtests/include/timesys.h +++ /dev/null @@ -1,30 +0,0 @@ -/* timesystem.h - * - * This include file contains information that is included in every - * function in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -/* constants */ - -#define OPERATION_COUNT 100 -#define IT_COUNT 100 - -/* Miscellaneous */ - -#define FOREVER 1 /* infinite loop */ -#define EXTERN extern /* external definition */ - -/* structures */ - -/* end of include file */ diff --git a/c/src/tests/tmtests/tm01/system.h b/c/src/tests/tmtests/tm01/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm01/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm01/task1.c b/c/src/tests/tmtests/tm01/task1.c deleted file mode 100644 index 2463722320..0000000000 --- a/c/src/tests/tmtests/tm01/task1.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Test_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 1 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 128, - 4096, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); - -} - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 semaphore_obtain_time; - rtems_unsigned32 semaphore_release_time; - rtems_unsigned32 semaphore_obtain_no_wait_time; - rtems_unsigned32 semaphore_obtain_loop_time; - rtems_unsigned32 semaphore_release_loop_time; - rtems_unsigned32 index; - rtems_unsigned32 iterations; - rtems_name name; - rtems_id smid; - rtems_status_code status; - - name = rtems_build_name( 'S', 'M', '1', ' ' ); - - semaphore_obtain_time = 0; - semaphore_release_time = 0; - semaphore_obtain_no_wait_time = 0; - semaphore_obtain_loop_time = 0; - semaphore_release_loop_time = 0; - - - /* Time one invocation of rtems_semaphore_create */ - - Timer_initialize(); - (void) rtems_semaphore_create( - name, - OPERATION_COUNT, - RTEMS_DEFAULT_MODES, - &smid - ); - end_time = Read_timer(); - put_time( - "rtems_semaphore_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_SEMAPHORE_CREATE - ); - - /* Time one invocation of rtems_semaphore_delete */ - - Timer_initialize(); - (void) rtems_semaphore_delete( smid ); - end_time = Read_timer(); - put_time( - "rtems_semaphore_delete", - end_time, - 1, - 0, - CALLING_OVERHEAD_SEMAPHORE_CREATE - ); - - status = rtems_semaphore_create( - name, - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &smid - ); - - for ( iterations=OPERATION_COUNT ; iterations ; iterations-- ) { - - Timer_initialize(); - for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) - (void) Empty_function(); - end_time = Read_timer(); - - semaphore_obtain_loop_time += end_time; - semaphore_release_loop_time += end_time; - - /* rtems_semaphore_obtain (available) */ - - Timer_initialize(); - for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) - (void) rtems_semaphore_obtain( - smid, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - end_time = Read_timer(); - - semaphore_obtain_time += end_time; - - /* rtems_semaphore_release */ - - Timer_initialize(); - for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) - (void) rtems_semaphore_release( smid ); - end_time = Read_timer(); - - semaphore_release_time += end_time; - - /* semaphore obtain (RTEMS_NO_WAIT) */ - Timer_initialize(); - for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) - rtems_semaphore_obtain( smid, RTEMS_NO_WAIT, RTEMS_NO_TIMEOUT ); - semaphore_obtain_no_wait_time += Read_timer(); - - Timer_initialize(); - for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) - rtems_semaphore_release( smid ); - end_time = Read_timer(); - - semaphore_release_time += end_time; - } - - put_time( - "rtems_semaphore_obtain", - semaphore_obtain_time, - OPERATION_COUNT * OPERATION_COUNT, - semaphore_obtain_loop_time, - CALLING_OVERHEAD_SEMAPHORE_OBTAIN - ); - - put_time( - "rtems_semaphore_obtain (RTEMS_NO_WAIT)", - semaphore_obtain_no_wait_time, - OPERATION_COUNT * OPERATION_COUNT, - semaphore_obtain_loop_time, - CALLING_OVERHEAD_SEMAPHORE_OBTAIN - ); - - put_time( - "rtems_semaphore_release", - semaphore_release_time, - OPERATION_COUNT * OPERATION_COUNT * 2, - semaphore_release_loop_time * 2, - CALLING_OVERHEAD_SEMAPHORE_RELEASE - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm01/tm01.doc b/c/src/tests/tmtests/tm01/tm01.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm01/tm01.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm02/system.h b/c/src/tests/tmtests/tm02/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm02/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm02/task1.c b/c/src/tests/tmtests/tm02/task1.c deleted file mode 100644 index e86ed6af65..0000000000 --- a/c/src/tests/tmtests/tm02/task1.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id High_id; -rtems_id Low_id; -rtems_id Semaphore_id; - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 2 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete" ); -} - -void test_init() -{ - rtems_status_code status; - rtems_unsigned32 index; - rtems_task_priority priority; - - priority = 5; - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &High_id - ); - directive_failed( status, "rtems_task_create of high task" ); - - priority++; - - status = rtems_task_start( High_id, High_task, 0 ); - directive_failed( status, "rtems_task_start of high task" ); - - for ( index=2 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'M', 'I', 'D', ' ' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Low_id - ); - directive_failed( status, "rtems_task_create middle" ); - - priority++; - - status = rtems_task_start( Low_id, Middle_tasks, 0 ); - directive_failed( status, "rtems_task_start middle" ); - } - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - priority, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Low_id - ); - directive_failed( status, "rtems_task_create low" ); - - status = rtems_task_start( Low_id, Low_task, 0 ); - directive_failed( status, "rtems_task_start low" ); - - status = rtems_semaphore_create( - rtems_build_name( 'S', 'M', '1', ' '), - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id - ); - directive_failed( status, "rtems_semaphore_create of SM1" ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - - Timer_initialize(); /* start blocking rtems_semaphore_obtain time */ - status = rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - end_time = Read_timer(); - - put_time( - "rtems_semaphore_obtain (blocking)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_SEMAPHORE_OBTAIN - ); - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm02/tm02.doc b/c/src/tests/tmtests/tm02/tm02.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm02/tm02.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm03/system.h b/c/src/tests/tmtests/tm03/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm03/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm03/task1.c b/c/src/tests/tmtests/tm03/task1.c deleted file mode 100644 index 0ee82005d7..0000000000 --- a/c/src/tests/tmtests/tm03/task1.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Semaphore_id; -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id task_id; - - puts( "\n\n*** TIME TEST 3 ***" ); - status = rtems_task_create( - rtems_build_name( 'T', 'A', '1', ' ' ), - 252, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create of test_init" ); - - status = rtems_task_start( task_id, test_init, 0 ); - directive_failed( status, "rtems_task_start of test_init" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 index; - rtems_id task_id; - rtems_task_priority priority; - - priority = 250; - - status = rtems_semaphore_create( - rtems_build_name( 'S', 'M', '1', '\0'), - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id - ); - directive_failed( status, "rtems_semaphore_create of SM1" ); - - for ( index = 2 ; index <= OPERATION_COUNT ; index ++ ) { - rtems_task_create( - rtems_build_name( 'M', 'I', 'D', ' ' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create middle" ); - - priority--; - - rtems_task_start( task_id, Middle_tasks, 0 ); - directive_failed( status, "rtems_task_start middle" ); - } - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create of high task" ); - - status = rtems_task_start( task_id, High_task, 0 ); - directive_failed( status, "rtems_task_start of high task" ); - - Timer_initialize(); /* start the timer */ - status = rtems_semaphore_release( Semaphore_id ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - status = rtems_semaphore_release( Semaphore_id ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - end_time = Read_timer(); - - put_time( - "rtems_semaphore_release (preemptive)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_SEMAPHORE_RELEASE - ); - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm03/tm03.doc b/c/src/tests/tmtests/tm03/tm03.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm03/tm03.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm04/system.h b/c/src/tests/tmtests/tm04/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm04/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm04/task1.c b/c/src/tests/tmtests/tm04/task1.c deleted file mode 100644 index 0014d02dd3..0000000000 --- a/c/src/tests/tmtests/tm04/task1.c +++ /dev/null @@ -1,387 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Semaphore_id; -rtems_id Task_id[OPERATION_COUNT+1]; -rtems_unsigned32 task_count; -rtems_id Highest_id; - -rtems_task Low_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Restart_task( - rtems_task_argument argument -); - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 4 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_status_code status; - rtems_unsigned32 index; - - task_count = OPERATION_COUNT; - - for ( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 10, - 1024, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - status = rtems_task_start( Task_id[ index ], Low_tasks, 0 ); - directive_failed( status, "rtems_task_start loop" ); - } - - status = rtems_semaphore_create( - rtems_build_name( 'S', 'M', '1', ' ' ), - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id - ); - directive_failed( status, "rtems_semaphore_create of SM1" ); -} - -rtems_task Highest_task( - rtems_task_argument argument -) -{ - rtems_task_priority old_priority; - rtems_status_code status; - - if ( argument == 1 ) { - - end_time = Read_timer(); - - put_time( - "rtems_task_restart (blocked, preempt)", - end_time, - 1, - 0, - CALLING_OVERHEAD_TASK_RESTART - ); - - status = rtems_task_set_priority( - RTEMS_CURRENT_PRIORITY, - 254, - &old_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - - } else if ( argument == 2 ) { - - end_time = Read_timer(); - - put_time( - "rtems_task_restart (ready, preempt)", - end_time, - 1, - 0, - CALLING_OVERHEAD_TASK_RESTART - ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); - - } else - (void) rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 index; - rtems_name name; - rtems_task_priority old_priority; - - Timer_initialize(); - (void) rtems_task_restart( Highest_id, 1 ); - /* preempted by Higher_task */ - - Timer_initialize(); - (void) rtems_task_restart( Highest_id, 2 ); - /* preempted by Higher_task */ - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - rtems_semaphore_release( Semaphore_id ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_release (readying)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_SEMAPHORE_RELEASE - ); - - name = rtems_build_name( 'T', 'I', 'M', 'E' ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_delete( Task_id[index] ); - directive_failed( status, "rtems_task_delete" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - rtems_task_create( - name, - 10, - 1024, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - end_time = Read_timer(); - - put_time( - "rtems_task_create", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_CREATE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - rtems_task_start( Task_id[ index ], Low_tasks, 0 ); - - end_time = Read_timer(); - - put_time( - "rtems_task_start", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_START - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_delete( Task_id[ index ] ); - directive_failed( status, "rtems_task_delete" ); - } - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - name, - 250, - 1024, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( Task_id[ index ], Restart_task, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - - status = rtems_task_suspend( Task_id[ index ] ); - directive_failed( status, "rtems_task_suspend LOOP" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_restart( Task_id[ index ], 0 ); - end_time = Read_timer(); - - put_time( - "rtems_task_restart (suspended)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_RESTART - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_suspend( Task_id[ index ] ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_delete( Task_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_task_delete (suspended)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_DELETE - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - name, - 250, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( Task_id[ index ], Restart_task, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_restart( Task_id[ index ], 1 ); - end_time = Read_timer(); - - put_time( - "rtems_task_restart (ready)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_RESTART - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_set_priority( Task_id[ index ], 5, &old_priority ); - directive_failed( status, "rtems_task_set_priority loop" ); - } - - /* yield processor -- tasks block */ - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_restart( Task_id[ index ], 1 ); - end_time = Read_timer(); - - put_time( - "rtems_task_restart (blocked, no preempt)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_RESTART - ); - - /* yield processor -- tasks block */ - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_delete( Task_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_task_delete (blocked)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_DELETE - ); - - exit( 0 ); -} - -rtems_task Low_tasks( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - task_count--; - - if ( task_count == 0 ) { - status = rtems_task_create( - rtems_build_name( 'H', 'I', ' ', ' ' ), - 5, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create HI" ); - - status = rtems_task_start( id, High_task, 0 ); - directive_failed( status, "rtems_task_start HI" ); - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Highest_id - ); - directive_failed( status, "rtems_task_create HIGH" ); - - status = rtems_task_start( Highest_id, Highest_task, 0 ); - directive_failed( status, "rtems_task_start HIGH" ); - - } - (void) rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} - -rtems_task Restart_task( - rtems_task_argument argument -) -{ - if ( argument == 1 ) - (void) rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} diff --git a/c/src/tests/tmtests/tm04/tm04.doc b/c/src/tests/tmtests/tm04/tm04.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm04/tm04.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm05/system.h b/c/src/tests/tmtests/tm05/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm05/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm05/task1.c b/c/src/tests/tmtests/tm05/task1.c deleted file mode 100644 index 624a87114a..0000000000 --- a/c/src/tests/tmtests/tm05/task1.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Task_id[OPERATION_COUNT+1]; -rtems_unsigned32 Task_index; - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 5 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_status_code status; - rtems_task_entry task_entry; - rtems_task_priority priority; - rtems_unsigned32 index; - - priority = 250; - - for( index = 0; index <= OPERATION_COUNT ; index++ ) { - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - priority--; - - if ( index==0 ) task_entry = Low_task; - else if ( index==OPERATION_COUNT ) task_entry = High_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( Task_id[ index ], task_entry, 0 ); - directive_failed( status, "rtems_task_start loop" ); - } -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - Timer_initialize(); - - (void) rtems_task_suspend( RTEMS_SELF ); - - end_time = Read_timer(); - - put_time( - "rtems_task_resume (causing preempt)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_RESUME - ); - - exit( 0 ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - (void) rtems_task_suspend( RTEMS_SELF ); - - Task_index++; - (void) rtems_task_resume( Task_id[ Task_index ] ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - - end_time = Read_timer(); - - put_time( - "rtems_task_resume self", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_SUSPEND - ); - - Task_index = 1; - Timer_initialize(); - (void) rtems_task_resume( Task_id[ Task_index ] ); -} diff --git a/c/src/tests/tmtests/tm05/tm05.doc b/c/src/tests/tmtests/tm05/tm05.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm05/tm05.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm06/system.h b/c/src/tests/tmtests/tm06/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm06/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm06/task1.c b/c/src/tests/tmtests/tm06/task1.c deleted file mode 100644 index c6a6af6c63..0000000000 --- a/c/src/tests/tmtests/tm06/task1.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Task_id[ OPERATION_COUNT + 1 ]; - -rtems_unsigned32 Task_restarted; - -rtems_task null_task( - rtems_task_argument argument -); - -rtems_task Task_1( - rtems_task_argument argument -); - -void test_init( void ); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 6 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init( void ) -{ - rtems_status_code status; - rtems_id id; - - Task_restarted = OPERATION_COUNT; - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( id, Task_1, 0 ); - directive_failed( status, "rtems_task_start" ); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 index; - - if ( Task_restarted == OPERATION_COUNT ) - Timer_initialize(); - - Task_restarted--; - - if ( Task_restarted != 0 ) - (void) rtems_task_restart( RTEMS_SELF, 0 ); - - end_time = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - put_time( - "rtems_task_restart self", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_RESTART - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - status = rtems_task_start( Task_id[ index ], null_task, 0 ); - directive_failed( status, "rtems_task_start loop" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_suspend( Task_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_task_suspend (no preempt)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_SUSPEND - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_resume( Task_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_task_resume (no preempt)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_RESUME - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_delete( Task_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_task_delete (others)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_RESUME - ); - - exit( 0 ); -} - -rtems_task null_task( - rtems_task_argument argument -) -{ - while ( FOREVER ) - ; -} diff --git a/c/src/tests/tmtests/tm06/tm06.doc b/c/src/tests/tmtests/tm06/tm06.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm06/tm06.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm07/system.h b/c/src/tests/tmtests/tm07/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm07/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm07/task1.c b/c/src/tests/tmtests/tm07/task1.c deleted file mode 100644 index fcd545bbc4..0000000000 --- a/c/src/tests/tmtests/tm07/task1.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Task_id[OPERATION_COUNT+1], task_index; - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 7 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_status_code status; - rtems_task_priority priority; - rtems_task_entry task_entry; - rtems_unsigned32 index; - - priority = 250; - - for( index=0 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[index] - ); - directive_failed( status, "rtems_task_create" ); - priority--; - - if ( index == 0 ) task_entry = Low_task; - else if ( index == OPERATION_COUNT ) task_entry = High_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( Task_id[index], task_entry, 0 ); - directive_failed( status, "rtems_task_start" ); - } -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - if ( argument != 0 ) { - end_time = Read_timer(); - - put_time( - "rtems_task_restart suspended/preempt", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_RESTART - ); - } else - (void) rtems_task_suspend( RTEMS_SELF ); - - exit( 0 ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - task_index++; - - if ( argument != 0 ) - (void) rtems_task_restart( Task_id[ task_index ], 0xffffffff ); - else - (void) rtems_task_suspend( RTEMS_SELF ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - task_index = 1; - - Timer_initialize(); - (void) rtems_task_restart( Task_id[ task_index ], 0xffffffff ); -} diff --git a/c/src/tests/tmtests/tm07/tm07.doc b/c/src/tests/tmtests/tm07/tm07.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm07/tm07.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm08/system.h b/c/src/tests/tmtests/tm08/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm08/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm08/task1.c b/c/src/tests/tmtests/tm08/task1.c deleted file mode 100644 index 36312ff4b7..0000000000 --- a/c/src/tests/tmtests/tm08/task1.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Test_task_id; - -rtems_task test_task( - rtems_task_argument argument -); -rtems_task test_task1( - rtems_task_argument argument -); -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 8 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_status_code status; - - status = rtems_task_create( - 1, - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Test_task_id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( Test_task_id, test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_create( - 1, - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Test_task_id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( Test_task_id, test_task1, 0 ); - directive_failed( status, "rtems_task_start" ); -} - -rtems_task test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 index; - rtems_task_priority old_priority; - rtems_time_of_day time; - rtems_unsigned32 old_note; - rtems_unsigned32 old_mode; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_set_priority( - Test_task_id, - RTEMS_CURRENT_PRIORITY, - &old_priority - ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_priority current priority", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_SET_PRIORITY - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_set_priority( Test_task_id, 253, &old_priority ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_priority no preempt", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_SET_PRIORITY - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_mode( - RTEMS_CURRENT_MODE, - RTEMS_CURRENT_MODE, - &old_mode - ); - end_time = Read_timer(); - - put_time( - "rtems_task_mode (current)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_MODE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - (void) rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(1), - RTEMS_INTERRUPT_MASK, - &old_mode - ); - (void) rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(0), - RTEMS_INTERRUPT_MASK, - &old_mode - ); - } - end_time = Read_timer(); - - put_time( - "rtems_task_mode (no reschedule)", - end_time, - OPERATION_COUNT * 2, - overhead, - CALLING_OVERHEAD_TASK_MODE - ); - - Timer_initialize(); /* must be one host */ - (void) rtems_task_mode( RTEMS_NO_ASR, RTEMS_ASR_MASK, &old_mode ); - end_time = Read_timer(); - - put_time( - "rtems_task_mode (reschedule)", - end_time, - 1, - 0, - CALLING_OVERHEAD_TASK_MODE - ); - - status = rtems_task_mode( RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &old_mode ); - directive_failed( status, "rtems_task_mode" ); - - status = rtems_task_set_priority( Test_task_id, 1, &old_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - /* preempted by test_task1 */ - Timer_initialize(); - (void) rtems_task_mode( RTEMS_PREEMPT, RTEMS_PREEMPT_MASK, &old_mode ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_set_note( Test_task_id, 8, 10 ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_note", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_SET_NOTE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_get_note( Test_task_id, 8, &old_note ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_note", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_GET_NOTE - ); - - build_time( &time, 1, 1, 1988, 0, 0, 0, 0 ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_clock_set( &time ); - end_time = Read_timer(); - - put_time( - "rtems_clock_set", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_CLOCK_SET - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - end_time = Read_timer(); - - put_time( - "rtems_clock_get", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_CLOCK_GET - ); - - exit( 0 ); -} - -rtems_task test_task1( - rtems_task_argument argument -) -{ - end_time = Read_timer(); - - put_time( - "rtems_task_mode (preemptive)", - end_time, - 1, - 0, - CALLING_OVERHEAD_TASK_MODE - ); - - (void) rtems_task_suspend( RTEMS_SELF ); -} diff --git a/c/src/tests/tmtests/tm08/tm08.doc b/c/src/tests/tmtests/tm08/tm08.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm08/tm08.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm09/system.h b/c/src/tests/tmtests/tm09/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm09/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm09/task1.c b/c/src/tests/tmtests/tm09/task1.c deleted file mode 100644 index 9126ee8a1d..0000000000 --- a/c/src/tests/tmtests/tm09/task1.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -rtems_task Test_task( - rtems_task_argument argument -); -void queue_test(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 9 ***" ); - - status = rtems_task_create( - 1, - 128, - 4096, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Test_task ( - rtems_task_argument argument -) -{ - Timer_initialize(); - rtems_message_queue_create( - 1, - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE - ); - - queue_test(); - - Timer_initialize(); - rtems_message_queue_delete( Queue_id ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_delete", - end_time, - 1, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE - ); - - exit( 0 ); -} - -void queue_test() -{ - rtems_unsigned32 send_loop_time; - rtems_unsigned32 urgent_loop_time; - rtems_unsigned32 receive_loop_time; - rtems_unsigned32 send_time; - rtems_unsigned32 urgent_time; - rtems_unsigned32 receive_time; - rtems_unsigned32 empty_flush_time; - rtems_unsigned32 flush_time; - rtems_unsigned32 empty_flush_count; - rtems_unsigned32 flush_count; - rtems_unsigned32 index; - rtems_unsigned32 iterations; - long buffer[4]; - rtems_status_code status; - - send_loop_time = 0; - urgent_loop_time = 0; - receive_loop_time = 0; - send_time = 0; - urgent_time = 0; - receive_time = 0; - empty_flush_time = 0; - flush_time = 0; - flush_count = 0; - empty_flush_count = 0; - - for ( iterations = 1 ; iterations <= OPERATION_COUNT ; iterations++ ) { - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - send_loop_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - urgent_loop_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - receive_loop_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_send( Queue_id, (long (*)[4])buffer ); - send_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - receive_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_urgent( Queue_id, (long (*)[4])buffer ); - urgent_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - receive_time += Read_timer(); - - Timer_initialize(); - rtems_message_queue_flush( Queue_id, &empty_flush_count ); - empty_flush_time += Read_timer(); - - /* send one message to flush */ - status = rtems_message_queue_send( - Queue_id, - (long (*)[4])buffer - ); - directive_failed( status, "rtems_message_queue_send" ); - - Timer_initialize(); - rtems_message_queue_flush( Queue_id, &flush_count ); - flush_time += Read_timer(); - } - - put_time( - "rtems_message_queue_send (no tasks waiting)", - send_time, - OPERATION_COUNT * OPERATION_COUNT, - send_loop_time, - CALLING_OVERHEAD_MESSAGE_QUEUE_SEND - ); - - put_time( - "rtems_message_queue_urgent (no tasks waiting)", - urgent_time, - OPERATION_COUNT * OPERATION_COUNT, - urgent_loop_time, - CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT - ); - - put_time( - "rtems_message_queue_receive (messages available)", - receive_time, - OPERATION_COUNT * OPERATION_COUNT * 2, - receive_loop_time * 2, - CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE - ); - - put_time( - "rtems_message_queue_flush (empty queue)", - empty_flush_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH - ); - - put_time( - "rtems_message_queue_flush (messages flushed)", - flush_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH - ); - -} diff --git a/c/src/tests/tmtests/tm09/tm09.doc b/c/src/tests/tmtests/tm09/tm09.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm09/tm09.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm10/system.h b/c/src/tests/tmtests/tm10/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm10/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm10/task1.c b/c/src/tests/tmtests/tm10/task1.c deleted file mode 100644 index 788c2cd1f7..0000000000 --- a/c/src/tests/tmtests/tm10/task1.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; -long Buffer[4]; - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 10 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_unsigned32 index; - rtems_task_entry task_entry; - rtems_status_code status; - rtems_task_priority priority; - rtems_id task_id; - - priority = 5; - - for( index = 0; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - priority++; - - if ( index==0 ) task_entry = High_task; - else if ( index==OPERATION_COUNT ) task_entry = Low_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( task_id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - status = rtems_message_queue_create( - 1, - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_receive (RTEMS_NO_WAIT)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE - ); - -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - Timer_initialize(); - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} - - -rtems_task Low_task( - rtems_task_argument argument -) -{ - end_time = Read_timer(); - - put_time( - "rtems_message_queue_receive (blocking)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm10/tm10.doc b/c/src/tests/tmtests/tm10/tm10.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm10/tm10.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm11/system.h b/c/src/tests/tmtests/tm11/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm11/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm11/task1.c b/c/src/tests/tmtests/tm11/task1.c deleted file mode 100644 index 9bf45442dc..0000000000 --- a/c/src/tests/tmtests/tm11/task1.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -long Buffer[4]; - -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - - -void Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id id; - - puts( "\n\n*** TIME TEST 11 ***" ); - - status = rtems_task_create( - 1, - 251, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( id, test_init, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_task_entry task_entry; - rtems_task_priority priority; - rtems_id task_id; - rtems_status_code status; - -/* As each task is started, it preempts this task and - * performs a blocking rtems_message_queue_receive. Upon completion of - * this loop all created tasks are blocked. - */ - - status = rtems_message_queue_create( - rtems_build_name( 'M', 'Q', '1', ' ' ), - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - priority = 250; - - for( index = 0; index < OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - priority--; - - if ( index==OPERATION_COUNT-1 ) task_entry = High_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( task_id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - Timer_initialize(); - (void) rtems_message_queue_send( Queue_id, (long (*)[4]) Buffer ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - (void) rtems_message_queue_send( Queue_id, (long (*)[4]) Buffer ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - end_time = Read_timer(); - - put_time( - "rtems_message_queue_send (preemptive)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_SEND - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm11/tm11.doc b/c/src/tests/tmtests/tm11/tm11.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm11/tm11.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm12/system.h b/c/src/tests/tmtests/tm12/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm12/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm12/task1.c b/c/src/tests/tmtests/tm12/task1.c deleted file mode 100644 index 8735cc601f..0000000000 --- a/c/src/tests/tmtests/tm12/task1.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -long Buffer[4]; - -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Low_tasks( - rtems_task_argument argument -); - - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id task_id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 12 ***" ); - - status = rtems_task_create( - 1, - 251, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( task_id, test_init, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_task_entry task_entry; - rtems_task_priority priority; - rtems_id task_id; - rtems_status_code status; - - - status = rtems_message_queue_create( - rtems_build_name( 'M', 'Q', '1', ' ' ), - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - priority = 250; - - for( index = 0; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - priority--; - - if ( index==OPERATION_COUNT ) task_entry = High_task; - else task_entry = Low_tasks; - - status = rtems_task_start( task_id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_send( Queue_id, (long (*)[4]) Buffer ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_send (readying)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_MESSAGE_QUEUE_SEND - ); - - exit( 0 ); -} - -rtems_task Low_tasks( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} diff --git a/c/src/tests/tmtests/tm12/tm12.doc b/c/src/tests/tmtests/tm12/tm12.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm12/tm12.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm13/system.h b/c/src/tests/tmtests/tm13/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm13/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm13/task1.c b/c/src/tests/tmtests/tm13/task1.c deleted file mode 100644 index 28ff2bf149..0000000000 --- a/c/src/tests/tmtests/tm13/task1.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -long Buffer[4]; - -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -void Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id id; - - puts( "\n\n*** TIME TEST 13 ***" ); - - status = rtems_task_create( - 1, - 251, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( id, test_init, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_task_entry task_entry; - rtems_task_priority priority; - rtems_id task_id; - rtems_status_code status; - -/* As each task is started, it preempts this task and - * performs a blocking rtems_message_queue_receive. Upon completion of - * this loop all created tasks are blocked. - */ - - status = rtems_message_queue_create( - rtems_build_name( 'M', 'Q', '1', ' ' ), - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - priority = 250; - - for( index = 0; index < OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - priority--; - - if ( index==OPERATION_COUNT-1 ) task_entry = High_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( task_id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - Timer_initialize(); - (void) rtems_message_queue_urgent( Queue_id, (long (*)[4]) Buffer ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - (void) rtems_message_queue_urgent( Queue_id, (long (*)[4]) Buffer ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - end_time = Read_timer(); - - put_time( - "rtems_message_queue_urgent (preemptive)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm13/tm13.doc b/c/src/tests/tmtests/tm13/tm13.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm13/tm13.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm14/system.h b/c/src/tests/tmtests/tm14/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm14/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm14/task1.c b/c/src/tests/tmtests/tm14/task1.c deleted file mode 100644 index 3020fa66e9..0000000000 --- a/c/src/tests/tmtests/tm14/task1.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -long Buffer[4]; - -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Low_tasks( - rtems_task_argument argument -); - - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id task_id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 14 ***" ); - - status = rtems_task_create( - 1, - 251, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( task_id, test_init, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_task_entry task_entry; - rtems_task_priority priority; - rtems_id task_id; - rtems_status_code status; - - - status = rtems_message_queue_create( - rtems_build_name( 'M', 'Q', '1', ' ' ), - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - priority = 250; - - for( index = 0; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - priority--; - - if ( index==OPERATION_COUNT ) task_entry = High_task; - else task_entry = Low_tasks; - - status = rtems_task_start( task_id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_urgent( Queue_id, (long (*)[4]) Buffer ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_urgent (readying)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT - ); - - exit( 0 ); -} - -rtems_task Low_tasks( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} diff --git a/c/src/tests/tmtests/tm14/tm14.doc b/c/src/tests/tmtests/tm14/tm14.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm14/tm14.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm15/system.h b/c/src/tests/tmtests/tm15/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm15/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm15/task1.c b/c/src/tests/tmtests/tm15/task1.c deleted file mode 100644 index 05fb29461b..0000000000 --- a/c/src/tests/tmtests/tm15/task1.c +++ /dev/null @@ -1,222 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned32 time_set, eventout; - -rtems_task High_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 15 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_id id; - rtems_unsigned32 index; - rtems_event_set event_out; - rtems_status_code status; - - time_set = FALSE; - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - 10, - 1024, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create LOW" ); - - status = rtems_task_start( id, Low_task, 0 ); - directive_failed( status, "rtems_task_start LOW" ); - - for ( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - 5, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( Task_id[ index ], High_tasks, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - { - (void) rtems_event_receive( - RTEMS_PENDING_EVENTS, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - } - - end_time = Read_timer(); - - put_time( - "rtems_event_receive (current)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_EVENT_RECEIVE - ); - - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - { - (void) rtems_event_receive( - RTEMS_ALL_EVENTS, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &event_out - ); - } - end_time = Read_timer(); - - put_time( - "rtems_event_receive (RTEMS_NO_WAIT)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_EVENT_RECEIVE - ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_event_set event_out; - - end_time = Read_timer(); - - put_time( - "rtems_event_receive (blocking)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_EVENT_RECEIVE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_event_send( RTEMS_SELF, RTEMS_EVENT_16 ); - end_time = Read_timer(); - - put_time( - "rtems_event_send (non-blocking)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_EVENT_SEND - ); - - Timer_initialize(); - (void) rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - end_time = Read_timer(); - - put_time( - "rtems_event_receive (available)", - end_time, - 1, - 0, - CALLING_OVERHEAD_EVENT_RECEIVE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_event_send( Task_id[ index ], RTEMS_EVENT_16 ); - end_time = Read_timer(); - - put_time( - "rtems_event_send (readying)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_EVENT_SEND - ); - - exit( 0 ); -} - -rtems_task High_tasks( - rtems_task_argument argument -) -{ - rtems_status_code status; - - if ( time_set ) - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - else { - time_set = 1; - Timer_initialize(); /* start blocking rtems_event_receive time */ - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - } -} diff --git a/c/src/tests/tmtests/tm15/tm15.doc b/c/src/tests/tmtests/tm15/tm15.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm15/tm15.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm16/system.h b/c/src/tests/tmtests/tm16/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm16/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm16/task1.c b/c/src/tests/tmtests/tm16/task1.c deleted file mode 100644 index a837c72014..0000000000 --- a/c/src/tests/tmtests/tm16/task1.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned32 Task_count; - -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 16 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'E', 'S', 'T' ), - 251, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create of test_init" ); - - status = rtems_task_start( id, test_init, 0 ); - directive_failed( status, "rtems_task_start of test_init" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_task_priority priority; - rtems_status_code status; - rtems_unsigned32 index; - rtems_task_entry task_entry; - -/* As each task is started, it preempts this task and - * performs a blocking rtems_event_receive. Upon completion of - * this loop all created tasks are blocked. - */ - - priority = 250; - - for( index = 0 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'M', 'I', 'D', ' ' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create LOOP" ); - - if ( index == OPERATION_COUNT ) task_entry = High_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( Task_id[ index ], task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - - priority--; - } - - Task_count = 0; - - Timer_initialize(); - (void) rtems_event_send( Task_id[ Task_count ], RTEMS_EVENT_16 ); - /* preempts task */ -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - rtems_event_set event_out; - - (void) rtems_event_receive( /* task blocks */ - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - - Task_count++; - - (void) rtems_event_send( /* preempts task */ - Task_id[ Task_count ], - RTEMS_EVENT_16 - ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_event_set event_out; - - (void) rtems_event_receive( /* task blocks */ - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - - end_time = Read_timer(); - - put_time( - "rtems_event_send (preemptive)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_EVENT_SEND - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm16/tm16.doc b/c/src/tests/tmtests/tm16/tm16.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm16/tm16.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm17/system.h b/c/src/tests/tmtests/tm17/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm17/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm17/task1.c b/c/src/tests/tmtests/tm17/task1.c deleted file mode 100644 index fbf658799b..0000000000 --- a/c/src/tests/tmtests/tm17/task1.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned32 Task_count; -rtems_task_priority Task_priority; - -rtems_task First_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Last_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_task_entry task_entry; - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 17 ***" ); - - Task_priority = 254; - - for( index = 0; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - Task_priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - if ( index == OPERATION_COUNT ) task_entry = Last_task; - else if ( index == 0 ) task_entry = First_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( Task_id[ index ], task_entry, 0 ); - directive_failed( status, "rtems_task_start loop" ); - } - - Task_count = 1; - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task First_task( - rtems_task_argument argument -) -{ - rtems_task_priority previous_priority; - - Timer_initialize(); - - Task_priority--; - Task_count++; - - (void) rtems_task_set_priority( - Task_id[ Task_count ], - Task_priority, - &previous_priority - ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - rtems_task_priority previous_priority; - - Task_priority--; - Task_count++; - - (void) rtems_task_set_priority( - Task_id[ Task_count ], - Task_priority, - &previous_priority - ); -} - -rtems_task Last_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - - end_time = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - put_time( - "rtems_task_set_priority (preemptive)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_SET_PRIORITY - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm17/tm17.doc b/c/src/tests/tmtests/tm17/tm17.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm17/tm17.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm18/system.h b/c/src/tests/tmtests/tm18/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm18/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm18/task1.c b/c/src/tests/tmtests/tm18/task1.c deleted file mode 100644 index c5b529f988..0000000000 --- a/c/src/tests/tmtests/tm18/task1.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned32 taskcount; -rtems_task_priority taskpri; - -rtems_task First_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Last_task( - rtems_task_argument argument -); - - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 18 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_id id; - rtems_task_entry task_entry; - rtems_unsigned32 index; - rtems_status_code status; - - for ( index = 0 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create loop" ); - - if ( index == OPERATION_COUNT ) task_entry = Last_task; - else if ( index == 0 ) task_entry = First_task; - else task_entry = Middle_tasks; - - - status = rtems_task_start( id, task_entry, 0 ); - directive_failed( status, "rtems_task_start loop" ); - } - -} - -rtems_task First_task( - rtems_task_argument argument -) -{ - Timer_initialize(); - - (void) rtems_task_delete( RTEMS_SELF ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - (void) rtems_task_delete( RTEMS_SELF ); -} - -rtems_task Last_task( - rtems_task_argument argument -) -{ - end_time = Read_timer(); - - put_time( - "rtems_task_delete self", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_DELETE - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm18/tm18.doc b/c/src/tests/tmtests/tm18/tm18.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm18/tm18.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm19/system.h b/c/src/tests/tmtests/tm19/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm19/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm19/task1.c b/c/src/tests/tmtests/tm19/task1.c deleted file mode 100644 index 7c491b7572..0000000000 --- a/c/src/tests/tmtests/tm19/task1.c +++ /dev/null @@ -1,212 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_asr Process_asr_for_pass_1( - rtems_signal_set signals -); - -rtems_asr Process_asr_for_pass_2( - rtems_signal_set signals -); - -rtems_task Task_1( - rtems_task_argument argument -); - -rtems_task Task_2( - rtems_task_argument argument -); - -rtems_task Task_3( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 19 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TASK1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TASK1" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 127, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TASK2" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TASK2" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 126, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TASK3" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TASK3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_asr Process_asr_for_pass_1( - rtems_signal_set signals -) -{ - end_time = Read_timer(); - - put_time( - "rtems_signal_send (self)", - end_time, - 1, - 0, - CALLING_OVERHEAD_SIGNAL_SEND - ); - - puts( "SIGNAL_ENTER (non-preemptive) na" ); - - Timer_initialize(); -} - -rtems_asr Process_asr_for_pass_2( - rtems_signal_set signals -) -{ - rtems_status_code status; - - puts( "SIGNAL_ENTER (preemptive) na" ); - - status = rtems_task_resume( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_resume" ); - - Timer_initialize(); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - - Timer_initialize(); - (void) rtems_signal_catch( Process_asr_for_pass_1, RTEMS_DEFAULT_MODES ); - end_time = Read_timer(); - - put_time( - "rtems_signal_catch", - end_time, - 1, - 0, - CALLING_OVERHEAD_SIGNAL_CATCH - ); - - Timer_initialize(); - rtems_signal_send( Task_id[ 2 ], 1 ); - end_time = Read_timer(); - - put_time( - "rtems_signal_send (non-preemptive)", - end_time, - 1, - 0, - CALLING_OVERHEAD_SIGNAL_SEND - ); - - Timer_initialize(); - (void) rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_1 ); - - /* end time is done is RTEMS_ASR */ - - end_time = Read_timer(); - - put_time( - "SIGNAL_RETURN (non-preemptive)", - end_time, - 1, - 0, - 0 - ); - - status = rtems_signal_catch( Process_asr_for_pass_2, RTEMS_NO_PREEMPT ); - directive_failed( status, "rtems_signal_catch" ); - - Timer_initialize(); - (void) rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_1 ); -} - -rtems_asr Process_asr_for_task_2( - rtems_signal_set signals -) -{ - ; -} - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_signal_catch( Process_asr_for_task_2, RTEMS_DEFAULT_MODES ); - directive_failed( status, "rtems_signal_catch" ); - - (void) rtems_task_suspend( RTEMS_SELF ); -} - -rtems_task Task_3( - rtems_task_argument argument -) -{ - (void) rtems_task_suspend( RTEMS_SELF ); - - end_time = Read_timer(); - - put_time( - "SIGNAL_RETURN (preemptive)", - end_time, - 1, - 0, - 0 - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm19/tm19.doc b/c/src/tests/tmtests/tm19/tm19.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm19/tm19.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm20/system.h b/c/src/tests/tmtests/tm20/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm20/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm20/task1.c b/c/src/tests/tmtests/tm20/task1.c deleted file mode 100644 index 6cfcb3d0c1..0000000000 --- a/c/src/tests/tmtests/tm20/task1.c +++ /dev/null @@ -1,467 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_device_major_number _STUB_major = 0; - -rtems_id Region_id; -rtems_name Region_name; -rtems_unsigned8 Region_area[ 2048 ] CPU_STRUCTURE_ALIGNMENT; - -rtems_id Partition_id; -rtems_name Partition_name; -rtems_unsigned8 Partition_area[ 2048 ] CPU_STRUCTURE_ALIGNMENT; - -void *Buffer_address_1; -void *Buffer_address_2; -void *Buffer_address_3; -void *Buffer_address_4; - -rtems_unsigned32 buffer_count; - -void *Buffer_addresses[ OPERATION_COUNT+1 ]; - -rtems_task Task_1( - rtems_task_argument argument -); - -rtems_task Task_2( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 20 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', '1' ), - 128, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TASK1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TASK1" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', '2' ), - 129, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TASK2" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TASK2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_mode previous_mode; - rtems_task_priority previous_priority; - rtems_unsigned32 return_value; - rtems_status_code status; - - Partition_name = rtems_build_name( 'P', 'A', 'R', 'T' ); - - Timer_initialize(); - rtems_partition_create( - Partition_name, - Partition_area, - 2048, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Partition_id - ); - end_time = Read_timer(); - - put_time( - "rtems_partition_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_PARTITION_CREATE - ); - - Region_name = rtems_build_name( 'R', 'E', 'G', 'N' ); - - Timer_initialize(); - rtems_region_create( - Region_name, - Region_area, - 2048, - 16, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id - ); - end_time = Read_timer(); - - put_time( - "rtems_region_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_CREATE - ); - - Timer_initialize(); - (void) rtems_partition_get_buffer( Partition_id, &Buffer_address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_partition_get_buffer (available)", - end_time, - 1, - 0, - CALLING_OVERHEAD_PARTITION_GET_BUFFER - ); - - buffer_count = 0; - while ( FOREVER ) { - - status = rtems_partition_get_buffer( - Partition_id, - &Buffer_addresses[ buffer_count ] - ); - - if ( status == RTEMS_UNSATISFIED ) break; - - buffer_count++; - } - - Timer_initialize(); - (void) rtems_partition_get_buffer( Partition_id, &Buffer_address_2 ); - end_time = Read_timer(); - - put_time( - "rtems_partition_get_buffer (not available)", - end_time, - 1, - 0, - CALLING_OVERHEAD_PARTITION_GET_BUFFER - ); - - Timer_initialize(); - (void) rtems_partition_return_buffer( Partition_id, Buffer_address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_partition_return_buffer", - end_time, - 1, - 0, - CALLING_OVERHEAD_PARTITION_RETURN_BUFFER - ); - - for ( index = 0 ; index < buffer_count ; index++ ) { - - status = rtems_partition_return_buffer( - Partition_id, - Buffer_addresses[ index ] - ); - directive_failed( status, "rtems_partition_return_buffer" ); - - } - - Timer_initialize(); - (void) rtems_partition_delete( Partition_id ); - end_time = Read_timer(); - - put_time( - "rtems_partition_delete", - end_time, - 1, - 0, - CALLING_OVERHEAD_PARTITION_DELETE - ); - - status = rtems_region_get_segment( - Region_id, - 400, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_2 - ); - directive_failed( status, "region_get_semgent" ); - - Timer_initialize(); - (void) rtems_region_get_segment( - Region_id, - 400, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_3 - ); - end_time = Read_timer(); - - put_time( - "rtems_region_get_segment (available)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_GET_SEGMENT - ); - - Timer_initialize(); - (void) rtems_region_get_segment( - Region_id, - 1998, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &Buffer_address_4 - ); - end_time = Read_timer(); - - put_time( - "rtems_region_get_segment (RTEMS_NO_WAIT)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_GET_SEGMENT - ); - - status = rtems_region_return_segment( Region_id, Buffer_address_3 ); - directive_failed( status, "rtems_region_return_segment" ); - - Timer_initialize(); - (void) rtems_region_return_segment( Region_id, Buffer_address_2 ); - end_time = Read_timer(); - - put_time( - "rtems_region_return_segment (no tasks waiting)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_RETURN_SEGMENT - ); - - status = rtems_region_get_segment( - Region_id, - 400, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - - Timer_initialize(); - (void) rtems_region_get_segment( - Region_id, - 1998, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_2 - ); - - /* execute Task_2 */ - - end_time = Read_timer(); - - put_time( - "rtems_region_return_segment (preempt)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_RETURN_SEGMENT - ); - - status = rtems_region_return_segment( Region_id, Buffer_address_2 ); - directive_failed( status, "rtems_region_return_segment" ); - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - - status = rtems_task_set_priority( RTEMS_SELF, 254, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - status = rtems_region_get_segment( - Region_id, - 400, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_1 - ); - directive_failed( status, "rtems_region_return_segment" ); - - status = rtems_region_get_segment( - Region_id, - 1998, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); - - /* execute Task_2 */ - - status = rtems_region_return_segment( Region_id, Buffer_address_2 ); - directive_failed( status, "rtems_region_return_segment" ); - - Timer_initialize(); - (void) rtems_region_delete( Region_id ); - end_time = Read_timer(); - - put_time( - "rtems_region_delete", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_DELETE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_initialize( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_initialize", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_INITIALIZE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_open( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_open", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_OPEN - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_close( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_close", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_CLOSE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_read( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_read", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_READ - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_write( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_write", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_WRITE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_control( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_control", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_CONTROL - ); - - exit( 0 ); -} - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - end_time = Read_timer(); - - put_time( - "rtems_region_get_segment (blocking)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_GET_SEGMENT - ); - - Timer_initialize(); - (void) rtems_region_return_segment( Region_id, Buffer_address_1 ); - - /* preempt back to Task_1 */ - - Timer_initialize(); - (void) rtems_region_return_segment( Region_id, Buffer_address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_region_return_segment (ready -- return)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_RETURN_SEGMENT - ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/c/src/tests/tmtests/tm20/tm20.doc b/c/src/tests/tmtests/tm20/tm20.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm20/tm20.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm21/system.h b/c/src/tests/tmtests/tm21/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm21/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm21/task1.c b/c/src/tests/tmtests/tm21/task1.c deleted file mode 100644 index 0f31e08485..0000000000 --- a/c/src/tests/tmtests/tm21/task1.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned8 Region_area[ 2048 ] CPU_STRUCTURE_ALIGNMENT; -rtems_unsigned8 Partition_area[ 2048 ] CPU_STRUCTURE_ALIGNMENT; - -rtems_task Task_1( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 21 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 250, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create of TASK1" ); - - status = rtems_task_start( id, Task_1, 0 ); - directive_failed( status, "rtems_task_start of TASK1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_id id; - rtems_status_code status; - - for( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create ( - index, - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_message_queue_create( - index, - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_message_queue_create" ); - - status = rtems_semaphore_create( - index, - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_semaphore_create" ); - - status = rtems_region_create( - index, - Region_area, - 2048, - 16, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_region_create" ); - - status = rtems_partition_create( - index, - Partition_area, - 2048, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_partition_create" ); - - status = rtems_port_create( - index, - Partition_area, - Region_area, - 0xff, - &id - ); - directive_failed( status, "rtems_port_create" ); - - status = rtems_timer_create( index, &id ); - directive_failed( status, "rtems_timer_create" ); - - status = rtems_rate_monotonic_create( index, &id ); - directive_failed( status, "rtems_rate_monotonic_create" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_ident( index, RTEMS_SEARCH_ALL_NODES, &id ); - end_time = Read_timer(); - - put_time( - "rtems_task_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_ident( index, RTEMS_SEARCH_ALL_NODES, &id ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_semaphore_ident( index, RTEMS_SEARCH_ALL_NODES, &id ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_SEMAPHORE_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_partition_ident( index, RTEMS_SEARCH_ALL_NODES, &id ); - end_time = Read_timer(); - - put_time( - "rtems_partition_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_PARTITION_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_region_ident( index, &id ); - end_time = Read_timer(); - - put_time( - "rtems_region_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_REGION_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_port_ident( index, &id ); - end_time = Read_timer(); - - put_time( - "rtems_port_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_PORT_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_timer_ident( index, &id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TIMER_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_rate_monotonic_ident( index, &id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_RATE_MONOTONIC_IDENT - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm21/tm21.doc b/c/src/tests/tmtests/tm21/tm21.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm21/tm21.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm22/system.h b/c/src/tests/tmtests/tm22/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm22/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm22/task1.c b/c/src/tests/tmtests/tm22/task1.c deleted file mode 100644 index 450466ea54..0000000000 --- a/c/src/tests/tmtests/tm22/task1.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -long Buffer[4]; - -rtems_task Low_task( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Preempt_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 22 ***" ); - - status = rtems_message_queue_create( - rtems_build_name( 'M', 'Q', '1', ' '), - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - 10, - 2048, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( id, Low_task, 0 ); - directive_failed( status, "rtems_task_start LOW" ); - - status = rtems_task_create( - 1, - 11, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create RTEMS_PREEMPT" ); - - status = rtems_task_start( id, Preempt_task, 0 ); - directive_failed( status, "rtems_task_start RTEMS_PREEMPT" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - rtems_status_code status; - - Timer_initialize(); - (void) rtems_message_queue_broadcast( - Queue_id, - (long (*)[4]) Buffer, - &count - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_broadcast (readying)", - end_time, - 1, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST - ); - - status = rtems_task_suspend(RTEMS_SELF); - directive_failed( status, "rtems_task_suspend" ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_unsigned32 index; - rtems_unsigned32 count; - rtems_status_code status; - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - 5, - 2048, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( id, High_task, 0 ); - directive_failed( status, "rtems_task_start HIGH" ); - - status = rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "message_queu_receive" ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_broadcast( - Queue_id, - (long (*)[4]) Buffer, - &count - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_broadcast (no waiting tasks)", - end_time, - OPERATION_COUNT, - 1, - CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST - ); - - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - /* should go to Preempt_task here */ - - end_time = Read_timer(); - - put_time( - "rtems_message_queue_broadcast (preempt)", - end_time, - 1, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST - ); - - exit( 0 ); -} - -rtems_task Preempt_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - - Timer_initialize(); - (void) rtems_message_queue_broadcast( - Queue_id, - (long (*)[4]) Buffer, - &count - ); - - /* should be preempted by low task */ -} diff --git a/c/src/tests/tmtests/tm22/tm22.doc b/c/src/tests/tmtests/tm22/tm22.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm22/tm22.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm23/system.h b/c/src/tests/tmtests/tm23/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm23/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm23/task1.c b/c/src/tests/tmtests/tm23/task1.c deleted file mode 100644 index 8b3e6dbccc..0000000000 --- a/c/src/tests/tmtests/tm23/task1.c +++ /dev/null @@ -1,302 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Timer_id[ OPERATION_COUNT+1 ]; - -rtems_time_of_day time_of_day; - -void null_delay( - rtems_id ignored_id, - void *ignored_address -); - -rtems_task Low_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - - -rtems_task Init( - rtems_task_argument argument -) -{ - - rtems_task_priority priority; - rtems_unsigned32 index; - rtems_id id; - rtems_task_entry task_entry; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 23 ***" ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - priority = 5; - - for( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - if ( index == 1 ) task_entry = High_task; - else if ( index == OPERATION_COUNT ) task_entry = Low_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - - priority++; - } - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void null_delay( - rtems_id ignored_id, - void *ignored_address -) -{ -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_status_code status; - int i; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_timer_create( index, &Timer_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_timer_create", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TIMER_CREATE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_timer_fire_after( Timer_id[ index ], 500, null_delay, NULL ); - end_time = Read_timer(); - - put_time( - "rtems_timer_fire_after (inactive)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TIMER_FIRE_AFTER - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_timer_fire_after( Timer_id[ index ], 500, null_delay, NULL ); - end_time = Read_timer(); - - put_time( - "rtems_timer_fire_after (active)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TIMER_FIRE_AFTER - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_timer_cancel( Timer_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_timer_cancel (active)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TIMER_CANCEL - ); - - for ( Timer_initialize(), i=0 ; i - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm24/task1.c b/c/src/tests/tmtests/tm24/task1.c deleted file mode 100644 index 160116ca16..0000000000 --- a/c/src/tests/tmtests/tm24/task1.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned32 Task_count; - -rtems_task Tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 24 ***" ); - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - 10, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create HIGH" ); - - status = rtems_task_start( id, High_task, 0 ); - directive_failed( status, "rtems_task_create HIGH" ); - - for ( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'R', 'E', 'S', 'T' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( id, Tasks, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 index; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - end_time = Read_timer(); - - put_time( - "rtems_task_wake_after (no context switch)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_WAKE_AFTER - ); - - Task_count = 0; - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Tasks( - rtems_task_argument argument -) -{ - Task_count++; - - if ( Task_count == 1 ) - Timer_initialize(); - else if ( Task_count == OPERATION_COUNT ) { - end_time = Read_timer(); - - put_time( - "rtems_task_wake_after (context switch)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_WAKE_AFTER - ); - - exit( 0 ); - } - (void) rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); -} diff --git a/c/src/tests/tmtests/tm24/tm24.doc b/c/src/tests/tmtests/tm24/tm24.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm24/tm24.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm25/system.h b/c/src/tests/tmtests/tm25/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm25/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm25/task1.c b/c/src/tests/tmtests/tm25/task1.c deleted file mode 100644 index 1959b668e3..0000000000 --- a/c/src/tests/tmtests/tm25/task1.c +++ /dev/null @@ -1,108 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Semaphore_id; - -rtems_task High_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id task_id; - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 25 ***" ); - - status = rtems_semaphore_create( - rtems_build_name( 'S', 'M', '1', ' ') , - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id - ); - directive_failed( status, "rtems_semaphore_create of SM1" ); - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOW" ); - - status = rtems_task_start( task_id, Low_task, 0 ); - directive_failed( status, "rtems_task_start LOW" ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( task_id, High_tasks, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task High_tasks( - rtems_task_argument argument -) -{ - (void) rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - 0xffffffff - ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - Timer_initialize(); - (void) rtems_clock_tick(); - end_time = Read_timer(); - - put_time( - "rtems_clock_tick", - end_time, - 1, - 0, - CALLING_OVERHEAD_CLOCK_TICK - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm25/tm25.doc b/c/src/tests/tmtests/tm25/tm25.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm25/tm25.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm26/fptest.h b/c/src/tests/tmtests/tm26/fptest.h deleted file mode 100644 index 39b8438ef9..0000000000 --- a/c/src/tests/tmtests/tm26/fptest.h +++ /dev/null @@ -1,165 +0,0 @@ -/* fptest.h - * - * This include file contains the CPU dependent implementation - * of the following routines needed to test RTEMS floating - * point support: - * FP_load( &context ) - * FP_check( &context ) - * - * FP_load - loads the specified floating point context - * FP_check - checks the specified floating point context - * - * NOTE: These routines are VERY CPU dependent and are thus - * located in in the CPU dependent include file - * fptest.h. These routines form the core of the - * floating point context switch test. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#ifndef __FPTEST_h -#define __FPTEST_h - -#include - -#ifndef CPU_HARDWARE_FP -#error "This CPU does not have CPU_HARDWARE_FP defined" -#endif - -#if ( CPU_HARDWARE_FP == FALSE ) - -#define FP_DECLARE -#define FP_LOAD( _factor ) -#define FP_CHECK( _factor ) 0 - -#else - -#define FP_DECLARE \ - double fp01 = 1.0; \ - double fp02 = 2.0; \ - double fp03 = 3.0; \ - double fp04 = 4.0; \ - double fp05 = 5.0; \ - double fp06 = 6.0; \ - double fp07 = 7.0; \ - double fp08 = 8.0; \ - double fp09 = 9.0; \ - double fp10 = 10.0; \ - double fp11 = 11.0; \ - double fp12 = 12.0; \ - double fp13 = 13.0; \ - double fp14 = 14.0; \ - double fp15 = 15.0; \ - double fp16 = 16.0; \ - double fp17 = 17.0; \ - double fp18 = 18.0; \ - double fp19 = 19.0; \ - double fp20 = 20.0; \ - double fp21 = 21.0; \ - double fp22 = 22.0; \ - double fp23 = 23.0; \ - double fp24 = 24.0; \ - double fp25 = 25.0; \ - double fp26 = 26.0; \ - double fp27 = 27.0; \ - double fp28 = 28.0; \ - double fp29 = 29.0; \ - double fp30 = 30.0; \ - double fp31 = 31.0; \ - double fp32 = 32.0 - -#define FP_LOAD( _factor ) \ - do { \ - fp01 += _factor; \ - fp02 += _factor; \ - fp03 += _factor; \ - fp04 += _factor; \ - fp05 += _factor; \ - fp06 += _factor; \ - fp07 += _factor; \ - fp08 += _factor; \ - fp09 += _factor; \ - fp10 += _factor; \ - fp11 += _factor; \ - fp12 += _factor; \ - fp13 += _factor; \ - fp14 += _factor; \ - fp15 += _factor; \ - fp16 += _factor; \ - fp17 += _factor; \ - fp18 += _factor; \ - fp19 += _factor; \ - fp20 += _factor; \ - fp21 += _factor; \ - fp22 += _factor; \ - fp23 += _factor; \ - fp24 += _factor; \ - fp25 += _factor; \ - fp26 += _factor; \ - fp27 += _factor; \ - fp28 += _factor; \ - fp29 += _factor; \ - fp30 += _factor; \ - fp31 += _factor; \ - fp32 += _factor; \ - } while (0) - -#define EPSILON (0.0005) -#define FPABS(d) (((d) < 0.0) ? -(d) : (d)) -#define FPNEQ(a,b) (FPABS((a)-(b)) > EPSILON) - -#define FP_CHECK_ONE( _v, _base, _factor ) \ - if ( FPNEQ( (_v), ((_base) + (_factor)) ) ) { \ - printf("%d: " #_v " wrong -- (%g not %g)\n", \ - task_index, (_v), (_base + _factor)); \ - } - - -#define FP_CHECK( _factor ) \ - do { \ - FP_CHECK_ONE( fp01, 1.0, (_factor) ); \ - FP_CHECK_ONE( fp02, 2.0, (_factor) ); \ - FP_CHECK_ONE( fp03, 3.0, (_factor) ); \ - FP_CHECK_ONE( fp04, 4.0, (_factor) ); \ - FP_CHECK_ONE( fp05, 5.0, (_factor) ); \ - FP_CHECK_ONE( fp06, 6.0, (_factor) ); \ - FP_CHECK_ONE( fp07, 7.0, (_factor) ); \ - FP_CHECK_ONE( fp08, 8.0, (_factor) ); \ - FP_CHECK_ONE( fp09, 9.0, (_factor) ); \ - FP_CHECK_ONE( fp10, 10.0, (_factor) ); \ - FP_CHECK_ONE( fp11, 11.0, (_factor) ); \ - FP_CHECK_ONE( fp12, 12.0, (_factor) ); \ - FP_CHECK_ONE( fp13, 13.0, (_factor) ); \ - FP_CHECK_ONE( fp14, 14.0, (_factor) ); \ - FP_CHECK_ONE( fp15, 15.0, (_factor) ); \ - FP_CHECK_ONE( fp16, 16.0, (_factor) ); \ - FP_CHECK_ONE( fp17, 17.0, (_factor) ); \ - FP_CHECK_ONE( fp18, 18.0, (_factor) ); \ - FP_CHECK_ONE( fp19, 19.0, (_factor) ); \ - FP_CHECK_ONE( fp20, 20.0, (_factor) ); \ - FP_CHECK_ONE( fp21, 21.0, (_factor) ); \ - FP_CHECK_ONE( fp22, 22.0, (_factor) ); \ - FP_CHECK_ONE( fp23, 23.0, (_factor) ); \ - FP_CHECK_ONE( fp24, 24.0, (_factor) ); \ - FP_CHECK_ONE( fp25, 25.0, (_factor) ); \ - FP_CHECK_ONE( fp26, 26.0, (_factor) ); \ - FP_CHECK_ONE( fp27, 27.0, (_factor) ); \ - FP_CHECK_ONE( fp28, 28.0, (_factor) ); \ - FP_CHECK_ONE( fp29, 29.0, (_factor) ); \ - FP_CHECK_ONE( fp30, 30.0, (_factor) ); \ - FP_CHECK_ONE( fp31, 31.0, (_factor) ); \ - FP_CHECK_ONE( fp32, 32.0, (_factor) ); \ - } while (0) - -#endif - -#endif diff --git a/c/src/tests/tmtests/tm26/system.h b/c/src/tests/tmtests/tm26/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm26/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm26/task1.c b/c/src/tests/tmtests/tm26/task1.c deleted file mode 100644 index b3544741bc..0000000000 --- a/c/src/tests/tmtests/tm26/task1.c +++ /dev/null @@ -1,470 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "system.h" -#include "fptest.h" -#include "coverhd.h" -#include "tmacros.h" -#include "timesys.h" - -#undef EXTERN -#define EXTERN -#include "gvar.h" -#include "conftbl.h" -#undef EXTERN -#define EXTERN extern - -/* TEST DATA */ -rtems_id Semaphore_id; - -Objects_Locations location; /* uses internal RTEMS type */ - -Thread_Control *Middle_tcb; /* uses internal RTEMS type */ - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Middle_task( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -rtems_task Floating_point_task_1( - rtems_task_argument argument -); - -rtems_task Floating_point_task_2( - rtems_task_argument argument -); - -void complete_test( void ); - -rtems_task null_task( - rtems_task_argument argument -) -{ -} - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_id task_id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 26 ***" ); - - status = rtems_task_create( - rtems_build_name( 'F', 'P', '1', ' ' ), - 201, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &task_id - ); - directive_failed( status, "rtems_task_create of FP1" ); - - status = rtems_task_start( task_id, Floating_point_task_1, 0 ); - directive_failed( status, "rtems_task_start of FP1" ); - - status = rtems_task_create( - rtems_build_name( 'F', 'P', '2', ' ' ), - 202, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &task_id - ); - directive_failed( status, "rtems_task_create of FP2" ); - - status = rtems_task_start( task_id, Floating_point_task_2, 0 ); - directive_failed( status, "rtems_task_start of FP2" ); - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - 200, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create of LOW" ); - - status = rtems_task_start( task_id, Low_task, 0 ); - directive_failed( status, "rtems_task_start of LOW" ); - - status = rtems_task_create( - rtems_build_name( 'M', 'I', 'D', ' ' ), - 128, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create of MIDDLE" ); - - status = rtems_task_start( task_id, Middle_task, 0 ); - directive_failed( status, "rtems_task_start of MIDDLE" ); - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - 5, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create of HIGH" ); - - status = rtems_task_start( task_id, High_task, 0 ); - directive_failed( status, "rtems_task_start of HIGH" ); - - status = rtems_semaphore_create( - rtems_build_name( 'S', 'E', 'M', '1' ), - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id - ); - directive_failed( status, "rtems_semaphore_create" ); - - for ( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'N', 'U', 'L', 'L' ), - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( task_id, null_task, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - Timer_initialize(); - _Thread_Disable_dispatch(); - end_time = Read_timer(); - - put_time( - "THREAD_DISABLE_DISPATCH", - end_time, - 1, - 0, - 0 - ); - - - Timer_initialize(); - _Thread_Enable_dispatch(); - end_time = Read_timer(); - - put_time( - "THREAD_ENABLE_DISPATCH", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - _Thread_Set_state( _Thread_Executing, STATES_SUSPENDED ); - end_time = Read_timer(); - - put_time( - "THREAD_SET_STATE", - end_time, - 1, - 0, - 0 - ); - - _Context_Switch_necessary = TRUE; - - Timer_initialize(); - _Thread_Dispatch(); /* dispatches Middle_task */ -} - -rtems_task Middle_task( - rtems_task_argument argument -) -{ - end_time = Read_timer(); - - put_time( - "THREAD_DISPATCH (NO FP)", - end_time, - 1, - 0, - 0 - ); - - _Thread_Set_state( _Thread_Executing, STATES_SUSPENDED ); - - Middle_tcb = _Thread_Executing; - - _Thread_Executing = - (Thread_Control *) _Thread_Ready_chain[200].first; - - /* do not force context switch */ - - _Context_Switch_necessary = FALSE; - - Timer_initialize(); - _Context_Switch( &Middle_tcb->Registers, &_Thread_Executing->Registers ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - Thread_Control *executing; - - end_time = Read_timer(); - - put_time( - "CONTEXT_SWITCH (NO FP)", - end_time, - 1, - 0, - 0 - ); - - executing = _Thread_Executing; - - _Thread_Executing = - (Thread_Control *) _Thread_Ready_chain[201].first; - - /* do not force context switch */ - - _Context_Switch_necessary = FALSE; - - Timer_initialize(); - _Context_Restore_fp( &_Thread_Executing->fp_context ); - _Context_Switch( &executing->Registers, &_Thread_Executing->Registers ); -} - -rtems_task Floating_point_task_1( - rtems_task_argument argument -) -{ - Thread_Control *executing; - FP_DECLARE; - - end_time = Read_timer(); - - put_time( - "CONTEXT_SWITCH (restore 1st FP)", - end_time, - 1, - 0, - 0 - ); - - executing = _Thread_Executing; - - _Thread_Executing = - (Thread_Control *) _Thread_Ready_chain[202].first; - - /* do not force context switch */ - - _Context_Switch_necessary = FALSE; - - Timer_initialize(); - _Context_Save_fp( &executing->fp_context ); - _Context_Restore_fp( &_Thread_Executing->fp_context ); - _Context_Switch( &executing->Registers, &_Thread_Executing->Registers ); - /* switch to Floating_point_task_2 */ - - end_time = Read_timer(); - - put_time( - "CONTEXT_SWITCH (used->init FP)", - end_time, - 1, - 0, - 0 - ); - - FP_LOAD( 1.0 ); - - executing = _Thread_Executing; - - _Thread_Executing = - (Thread_Control *) _Thread_Ready_chain[202].first; - - /* do not force context switch */ - - _Context_Switch_necessary = FALSE; - - Timer_initialize(); - _Context_Save_fp( &executing->fp_context ); - _Context_Restore_fp( &_Thread_Executing->fp_context ); - _Context_Switch( &executing->Registers, &_Thread_Executing->Registers ); - /* switch to Floating_point_task_2 */ -} - -rtems_task Floating_point_task_2( - rtems_task_argument argument -) -{ - Thread_Control *executing; - FP_DECLARE; - - end_time = Read_timer(); - - put_time( - "CONTEXT_SWITCH (init->init FP)", - end_time, - 1, - 0, - 0 - ); - - executing = _Thread_Executing; - - _Thread_Executing = - (Thread_Control *) _Thread_Ready_chain[201].first; - - FP_LOAD( 1.0 ); - - /* do not force context switch */ - - _Context_Switch_necessary = FALSE; - - Timer_initialize(); - _Context_Save_fp( &executing->fp_context ); - _Context_Restore_fp( &_Thread_Executing->fp_context ); - _Context_Switch( &executing->Registers, &_Thread_Executing->Registers ); - /* switch to Floating_point_task_1 */ - - end_time = Read_timer(); - - put_time( - "CONTEXT_SWITCH (used->used FP)", - end_time, - 1, - 0, - 0 - ); - - complete_test(); -} - -void complete_test( void ) -{ - rtems_unsigned32 index; - rtems_id task_id; - - Timer_initialize(); - _Thread_Resume( Middle_tcb ); - end_time = Read_timer(); - - put_time( - "THREAD_RESUME", - end_time, - 1, - 0, - 0 - ); - - _Thread_Set_state( Middle_tcb, STATES_WAITING_FOR_MESSAGE ); - - Timer_initialize(); - _Thread_Unblock( Middle_tcb ); - end_time = Read_timer(); - - put_time( - "THREAD_UNBLOCK", - end_time, - 1, - 0, - 0 - ); - - _Thread_Set_state( Middle_tcb, STATES_WAITING_FOR_MESSAGE ); - - Timer_initialize(); - _Thread_Ready( Middle_tcb ); - end_time = Read_timer(); - - put_time( - "THREAD_READY", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - task_id = Middle_tcb->Object.id; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) _Thread_Get( task_id, &location ); - end_time = Read_timer(); - - put_time( - "THREAD_GET", - end_time, - OPERATION_COUNT, - 0, - 0 - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) _Semaphore_Get( Semaphore_id, &location ); - end_time = Read_timer(); - - put_time( - "SEMAPHORE_GET", - end_time, - OPERATION_COUNT, - 0, - 0 - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) _Thread_Get( 0x3, &location ); - end_time = Read_timer(); - - put_time( - "THREAD_GET invalid id", - end_time, - OPERATION_COUNT, - 0, - 0 - ); - exit( 0 ); -} - diff --git a/c/src/tests/tmtests/tm26/tm26.doc b/c/src/tests/tmtests/tm26/tm26.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm26/tm26.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm27/system.h b/c/src/tests/tmtests/tm27/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm27/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm27/task1.c b/c/src/tests/tmtests/tm27/task1.c deleted file mode 100644 index edd657b40c..0000000000 --- a/c/src/tests/tmtests/tm27/task1.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -#include - -rtems_task Task_1( - rtems_task_argument argument -); - -rtems_task Task_2( - rtems_task_argument argument -); - -volatile rtems_unsigned32 Interrupt_occurred; -volatile rtems_unsigned32 Interrupt_enter_time, Interrupt_enter_nested_time; -volatile rtems_unsigned32 Interrupt_return_time, Interrupt_return_nested_time; -rtems_unsigned32 Interrupt_nest; - -rtems_isr Isr_handler( - rtems_vector_number vector -); - -/* - * INTERNAL RTEMS VARIABLES!!! - */ - -extern rtems_unsigned32 _Thread_Dispatch_disable_level; -extern rtems_unsigned32 _Context_Switch_necessary; -extern Chain_Control *_Thread_Ready_chain; -extern rtems_tcb *_Thread_Heir; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 27 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'A', '1', ' ' ), - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create Task_1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start Task_1" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'A', '2', ' ' ), - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of Task_2" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of Task_2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - _Thread_Dispatch_disable_level = 1; - - Interrupt_nest = 1; - - Install_tm27_vector( Isr_handler ); - - Interrupt_occurred = 0; - Timer_initialize(); - Cause_tm27_intr(); - /* goes to Isr_handler */ - -#if (MUST_WAIT_FOR_INTERRUPT == 1) - while ( Interrupt_occurred == 0 ); -#endif - Interrupt_return_time = Read_timer(); - - put_time( - "INTERRUPT_ENTER (nested interrupt)", - Interrupt_enter_nested_time, - 1, - 0, - 0 - ); - - put_time( - "INTERRUPT_RETURN (nested interrupt)", - Interrupt_return_nested_time, - 1, - 0, - 0 - ); - - Interrupt_nest = 0; - - _Thread_Dispatch_disable_level = 0; - - Interrupt_occurred = 0; - Timer_initialize(); - Cause_tm27_intr(); - /* goes to Isr_handler */ - -#if (MUST_WAIT_FOR_INTERRUPT == 1) - while ( Interrupt_occurred == 0 ); -#endif - Interrupt_return_time = Read_timer(); - - put_time( - "INTERRUPT_ENTER (no preempt)", - Interrupt_enter_time, - 1, - 0, - 0 - ); - - put_time( - "INTERRUPT_RETURN (no preempt)", - Interrupt_return_time, - 1, - 0, - 0 - ); - - _Thread_Dispatch_disable_level = 0; - - _Thread_Heir = (rtems_tcb *) _Thread_Ready_chain[254].last; - - _Context_Switch_necessary = 1; - - Interrupt_occurred = 0; - Timer_initialize(); - Cause_tm27_intr(); - /* goes to Isr_handler */ -} - -rtems_task Task_2( - rtems_task_argument argument -) -{ -#if (MUST_WAIT_FOR_INTERRUPT == 1) - while ( Interrupt_occurred == 0 ); -#endif - end_time = Read_timer(); - - put_time( - "INTERRUPT_ENTER (preempt)", - Interrupt_enter_time, - 1, - 0, - 0 - ); - - put_time( - "INTERRUPT_RETURN (preempt)", - end_time, - 1, - 0, - 0 - ); - - exit( 0 ); -} - -/* The Isr_handler() and Isr_handler_inner() routines are structured - * so that there will be as little entry overhead as possible included - * in the interrupt entry time. - */ - -void Isr_handler_inner( void ); - -rtems_isr Isr_handler( - rtems_vector_number vector -) -{ - end_time = Read_timer(); - - Interrupt_occurred = 1; - Isr_handler_inner(); -} - -void Isr_handler_inner( void ) -{ - - /*enable_tracing();*/ - Clear_tm27_intr(); - switch ( Interrupt_nest ) { - case 0: - Interrupt_enter_time = end_time; - break; - case 1: - Interrupt_enter_time = end_time; - Interrupt_nest = 2; - Interrupt_occurred = 0; - Lower_tm27_intr(); - Timer_initialize(); - Cause_tm27_intr(); - /* goes to a nested copy of Isr_handler */ -#if (MUST_WAIT_FOR_INTERRUPT == 1) - while ( Interrupt_occurred == 0 ); -#endif - Interrupt_return_nested_time = Read_timer(); - break; - case 2: - Interrupt_enter_nested_time = end_time; - break; - } - - Timer_initialize(); -} diff --git a/c/src/tests/tmtests/tm27/tm27.doc b/c/src/tests/tmtests/tm27/tm27.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm27/tm27.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm28/system.h b/c/src/tests/tmtests/tm28/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm28/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm28/task1.c b/c/src/tests/tmtests/tm28/task1.c deleted file mode 100644 index c6af6fb03f..0000000000 --- a/c/src/tests/tmtests/tm28/task1.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Port_id; - -rtems_unsigned8 Internal_area[ 256 ]; -rtems_unsigned8 External_area[ 256 ]; - -rtems_task Test_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 28 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 128, - 4096, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Test_task ( - rtems_task_argument argument -) -{ - rtems_name name; - rtems_unsigned32 index; - void *converted; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - name = rtems_build_name( 'P', 'O', 'R', 'T' ), - - Timer_initialize(); - rtems_port_create( - name, - Internal_area, - External_area, - 0xff, - &Port_id - ); - end_time = Read_timer(); - - put_time( - "rtems_port_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_PORT_CREATE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_port_external_to_internal( - Port_id, - &External_area[ 0xf ], - &converted - ); - end_time = Read_timer(); - - put_time( - "rtems_port_external_to_internal", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_port_internal_to_external( - Port_id, - &Internal_area[ 0xf ], - &converted - ); - end_time = Read_timer(); - - put_time( - "rtems_port_internal_to_external", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL - ); - - Timer_initialize(); - rtems_port_delete( Port_id ); - end_time = Read_timer(); - - put_time( - "rtems_port_delete", - end_time, - 1, - 0, - CALLING_OVERHEAD_PORT_DELETE - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm28/tm28.doc b/c/src/tests/tmtests/tm28/tm28.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm28/tm28.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tm29/system.h b/c/src/tests/tmtests/tm29/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tm29/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tm29/task1.c b/c/src/tests/tmtests/tm29/task1.c deleted file mode 100644 index a38e9567c8..0000000000 --- a/c/src/tests/tmtests/tm29/task1.c +++ /dev/null @@ -1,207 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_name Period_name; - -rtems_task Tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -rtems_unsigned32 Task_count; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 29 ***" ); - - Period_name = rtems_build_name( 'P', 'R', 'D', ' ' ); - - Timer_initialize(); - (void) rtems_rate_monotonic_create( Period_name, &id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_CREATE - ); - - Timer_initialize(); - (void) rtems_rate_monotonic_period( id, 10 ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_period (initial)", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD - ); - - Timer_initialize(); - (void) rtems_rate_monotonic_period( id, RTEMS_PERIOD_STATUS ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_period (STATUS)", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD - ); - - Timer_initialize(); - (void) rtems_rate_monotonic_cancel( id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_cancel", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL - ); - - Timer_initialize(); - (void) rtems_rate_monotonic_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_delete (cancelled)", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_DELETE - ); - - status = rtems_rate_monotonic_create( Period_name, &id ); - directive_failed( status, "rtems_rate_monotonic_create" ); - - status = rtems_rate_monotonic_period( id, 10 ); - directive_failed( status, "rtems_rate_monotonic_period" ); - - Timer_initialize(); - rtems_rate_monotonic_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_delete (active)", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_DELETE - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'E', 'S', 'T' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( id, Tasks, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - 200, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create LOW" ); - - status = rtems_task_start( id, Low_task, 0 ); - directive_failed( status, "rtems_task_start LOW" ); - - Task_count = 0; - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Tasks( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - status = rtems_rate_monotonic_create( 1, &id ); - directive_failed( status, "rtems_rate_monotonic_create" ); - - status = rtems_rate_monotonic_period( id, 100 ); - directive_failed( status, "rtems_rate_monotonic_period" ); - - /* - * Give up the processor to allow all tasks to actually - * create and start their period timer before the benchmark - * timer is initialized. - */ - - (void) rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - - Task_count++; - - if ( Task_count == 1 ) - Timer_initialize(); - - (void) rtems_rate_monotonic_period( id, 100 ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - - end_time = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - put_time( - "rtems_rate_monotonic_period (blocking)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD - ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tm29/tm29.doc b/c/src/tests/tmtests/tm29/tm29.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tm29/tm29.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tmtests/tmck/system.h b/c/src/tests/tmtests/tmck/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tmck/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tmck/task1.c b/c/src/tests/tmtests/tmck/task1.c deleted file mode 100644 index c151475505..0000000000 --- a/c/src/tests/tmtests/tmck/task1.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -#define MAXIMUM_DISTRIBUTION 10000 - -#undef OPERATION_COUNT -#define OPERATION_COUNT 100000 - -int Distribution[ MAXIMUM_DISTRIBUTION + 1 ]; - -rtems_task Task_1( - rtems_task_argument argument -); - -void check_read_timer( void ); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - /* - * Tell the Timer Driver what we are doing - */ - - Set_find_average_overhead( 1 ); - - puts( "\n\n*** TIME CHECKER ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ), - - status = rtems_task_create( - 1, - 5, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( id, Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - - check_read_timer(); -pause(); - - Timer_initialize(); - end_time = Read_timer(); - - put_time( - "NULL timer stopped at", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - for ( index = 1 ; index <= 1000 ; index++ ) - (void) Empty_function(); - end_time = Read_timer(); - - put_time( - "LOOP (1000) timer stopped at", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - for ( index = 1 ; index <= 10000 ; index++ ) - (void) Empty_function(); - end_time = Read_timer(); - - put_time( - "LOOP (10000) timer stopped at", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - for ( index = 1 ; index <= 50000 ; index++ ) - (void) Empty_function(); - end_time = Read_timer(); - - put_time( - "LOOP (50000) timer stopped at", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - for ( index = 1 ; index <= 100000 ; index++ ) - (void) Empty_function(); - end_time = Read_timer(); - - put_time( - "LOOP (100000) timer stopped at", - end_time, - 1, - 0, - 0 - ); - - exit( 0 ); -} - -void check_read_timer() -{ - rtems_unsigned32 index; - rtems_unsigned32 time; - - for ( index = 1 ; index <= MAXIMUM_DISTRIBUTION ; index++ ) - Distribution[ index ] = 0; - - for ( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - Timer_initialize(); - end_time = Read_timer(); - if ( end_time > MAXIMUM_DISTRIBUTION ) { - /* - * Under UNIX a simple process swap takes longer than we - * consider valid for our testing purposes. - */ - printf( "TOO LONG (%d) at %d!!!\n", end_time, index ); -#if defined(unix) - index--; - continue; -#else - exit( 1 ); -#endif - } - else - Distribution[ end_time ]++; - } - - printf( "Units may not be in microseconds for this test!!!\n" ); - time = 0; - for ( index = 0 ; index <= MAXIMUM_DISTRIBUTION ; index++ ) { - time += (Distribution[ index ] * index); - if ( Distribution[ index ] != 0 ) - printf( "%d %d\n", index, Distribution[ index ] ); - } - printf( "Total time = %d\n", time ); - printf( "Average time = %d\n", time / OPERATION_COUNT ); -} diff --git a/c/src/tests/tmtests/tmck/tmck.doc b/c/src/tests/tmtests/tmck/tmck.doc deleted file mode 100644 index 9ef6a57d99..0000000000 --- a/c/src/tests/tmtests/tmck/tmck.doc +++ /dev/null @@ -1,20 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives timed by this test. - -benchmark name: timecheck - -This becnchmark is used to calibrate the timer. It is only used to -when initial timing begins on a particular processor board. - diff --git a/c/src/tests/tmtests/tmoverhd/dumrtems.h b/c/src/tests/tmtests/tmoverhd/dumrtems.h deleted file mode 100644 index d0492c1014..0000000000 --- a/c/src/tests/tmtests/tmoverhd/dumrtems.h +++ /dev/null @@ -1,255 +0,0 @@ -/* dumrtems.h - * - * This include file contains phony macros to map - * executive calls to Empty_directive(). - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __DUMRTEMS_h -#define __DUMRTEMS_h - -/* RTEMS call redefinition macros */ - -#undef rtems_signal_catch -#undef rtems_signal_send -#undef rtems_io_close -#undef rtems_io_control -#undef rtems_io_initialize -#undef rtems_io_open -#undef rtems_io_read -#undef rtems_io_write -#undef rtems_port_internal_to_external -#undef rtems_port_external_to_internal -#undef rtems_port_create -#undef rtems_port_delete -#undef rtems_port_ident -#undef rtems_event_receive -#undef rtems_event_send -#undef rtems_initialize_executive -#undef rtems_shutdown_executive -#undef rtems_interrupt_catch -#undef rtems_partition_create -#undef rtems_partition_delete -#undef rtems_partition_get_buffer -#undef rtems_partition_ident -#undef rtems_partition_return_buffer -#undef rtems_message_queue_broadcast -#undef rtems_message_queue_create -#undef rtems_message_queue_delete -#undef rtems_message_queue_flush -#undef rtems_message_queue_ident -#undef rtems_message_queue_receive -#undef rtems_message_queue_send -#undef rtems_message_queue_urgent -#undef rtems_region_create -#undef rtems_region_delete -#undef rtems_region_get_segment -#undef rtems_region_ident -#undef rtems_region_return_segment -#undef rtems_semaphore_create -#undef rtems_semaphore_delete -#undef rtems_semaphore_ident -#undef rtems_semaphore_obtain -#undef rtems_semaphore_release -#undef rtems_task_create -#undef rtems_task_delete -#undef rtems_task_get_note -#undef rtems_task_ident -#undef rtems_task_mode -#undef rtems_task_restart -#undef rtems_task_resume -#undef rtems_task_set_note -#undef rtems_task_set_priority -#undef rtems_task_start -#undef rtems_task_suspend -#undef rtems_clock_get -#undef rtems_clock_set -#undef rtems_clock_tick -#undef rtems_task_wake_after -#undef rtems_task_wake_when -#undef rtems_fatal_error_occurred -#undef rtems_rate_monotonic_create -#undef rtems_rate_monotonic_ident -#undef rtems_rate_monotonic_delete -#undef rtems_rate_monotonic_cancel -#undef rtems_rate_monotonic_period -#undef rtems_multiprocessing_announce -#undef rtems_timer_create -#undef rtems_timer_ident -#undef rtems_timer_delete -#undef rtems_timer_cancel -#undef rtems_timer_fire_after -#undef rtems_timer_fire_when -#undef rtems_timer_reset - -#define rtems_signal_catch( asraddr, mode ) \ - Empty_directive( asraddr, mode ) -#define rtems_signal_send( tid, signal ) \ - Empty_directive( tid, signal ) - -#define rtems_io_close( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) -#define rtems_io_control( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) -#define rtems_io_initialize( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) -#define rtems_io_open( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) -#define rtems_io_read( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) -#define rtems_io_write( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) - -#define rtems_port_internal_to_external( dpid, internal, external ) \ - Empty_directive( dpid, internal, external ) -#define rtems_port_external_to_internal( dpid, external, internal ) \ - Empty_directive( dpid, external, internal ) -#define rtems_port_create( name, intaddr, extaddr, length, dpid ) \ - Empty_directive( name, intaddr, extaddr, length, dpid ) -#define rtems_port_delete( dpid ) \ - Empty_directive( dpid ) -#define rtems_port_ident( name, dpid ) \ - Empty_directive( name, dpid ) - -#define rtems_event_receive( eventin, options, timeout, eventout ) \ - Empty_directive( eventin, options, timeout, eventout ) -#define rtems_event_send( tid, event ) \ - Empty_directive( tid, event ) - -#define rtems_initialize_executive( conftbl, cputbl ) \ - Empty_directive( conftbl, cputbl ) -#define rtems_shutdown_executive( the_error ) \ - Empty_directive( the_error ) - -#define rtems_interrupt_catch( israddr, vector, oldisr ) \ - Empty_directive( israddr, vector, oldisr ) - -#define rtems_partition_create( name, paddr, length, bsize, attr, ptid ) \ - Empty_directive( name, paddr, length, bsize, attr, ptid ) -#define rtems_partition_delete( ptid ) \ - Empty_directive( ptid ) -#define rtems_partition_get_buffer( ptid, bufaddr ) \ - Empty_directive( ptid, bufaddr ) -#define rtems_partition_ident( name, node, ptid ) \ - Empty_directive( name, node, ptid ) -#define rtems_partition_return_buffer( ptid, bufaddr ) \ - Empty_directive( ptid, bufaddr ) - -#define rtems_message_queue_broadcast( qid, buffer, count ) \ - Empty_directive( qid, buffer, count ) -#define rtems_message_queue_create( name, count, attr, qid ) \ - Empty_directive( name, count, attr, qid ) -#define rtems_message_queue_delete( qid ) \ - Empty_directive( qid ) -#define rtems_message_queue_flush( qid, count ) \ - Empty_directive( qid, count ) -#define rtems_message_queue_ident( name, node, qid ) \ - Empty_directive( name, node, qid ) -#define rtems_message_queue_receive( qid, buffer, options, timeout ) \ - Empty_directive( qid, buffer, options, timeout ) -#define rtems_message_queue_send( qid, buffer ) \ - Empty_directive( qid, buffer ) -#define rtems_message_queue_urgent( qid, buffer ) \ - Empty_directive( qid, buffer ) - -#define rtems_region_create( name, paddr, length, pagesize, attr, rnid ) \ - Empty_directive( name, paddr, length, pagesize, attr, rnid ) -#define rtems_region_delete( rnid ) \ - Empty_directive( rnid ) -#define rtems_region_get_segment( rnid, size, options, timeout, segaddr ) \ - Empty_directive( rnid, size, options, timeout, segaddr ) -#define rtems_region_ident( name, rnid ) \ - Empty_directive( name, rnid ) -#define rtems_region_return_segment( rnid, segaddr ) \ - Empty_directive( rnid, segaddr ) - -#define rtems_semaphore_create( name, count, attr, smid ) \ - Empty_directive( name, count, attr, smid ) -#define rtems_semaphore_delete( smid ) \ - Empty_directive( smid ) -#define rtems_semaphore_ident( name, node, smid ) \ - Empty_directive( name, node, smid ) -#define rtems_semaphore_obtain( smid, options, timeout ) \ - Empty_directive( smid, options, timeout ) -#define rtems_semaphore_release( smid ) \ - Empty_directive( smid ) - -#define rtems_task_create( name, priority, stack_size, mode, attr, tid ) \ - Empty_directive( name, priority, stack_size, mode, attr, tid ) -#define rtems_task_delete( tid ) \ - Empty_directive( tid ) -#define rtems_task_get_note( tid, notepad, note ) \ - Empty_directive( tid, notepad, note ) -#define rtems_task_ident( name, node, tid ) \ - Empty_directive( name, node, tid ) -#define rtems_task_mode( mode, mask, pmode ) \ - Empty_directive( mode, mask, pmode ) -#define rtems_task_restart( tid, arg ) \ - Empty_directive( tid, arg ) -#define rtems_task_resume( tid ) \ - Empty_directive( tid ) -#define rtems_task_set_note( tid, notepad, note ) \ - Empty_directive( tid, notepad, note ) -#define rtems_task_set_priority( tid, priority, ppriority ) \ - Empty_directive( tid, priority, ppriority ) -#define rtems_task_start( tid, saddr, arg ) \ - Empty_directive( tid, saddr, arg ) -#define rtems_task_suspend( tid ) \ - Empty_directive( tid ) - -#define rtems_clock_get( options, time ) \ - Empty_directive( options, time ) -#define rtems_clock_set( time ) \ - Empty_directive( time ) -#define rtems_clock_tick() \ - Empty_directive() -#define rtems_task_wake_after( ticks ) \ - Empty_directive( ticks ) -#define rtems_task_wake_when( time ) \ - Empty_directive( time ) - -#define rtems_fatal_error_occurred( errcode ) \ - Empty_directive( errcode ) - -#define rtems_rate_monotonic_create( name, id ) \ - Empty_directive( name, id ) -#define rtems_rate_monotonic_ident( name, id ) \ - Empty_directive( name, id ) -#define rtems_rate_monotonic_delete( id ) \ - Empty_directive( id ) -#define rtems_rate_monotonic_cancel( id ) \ - Empty_directive( id ) -#define rtems_rate_monotonic_period( id, period ) \ - Empty_directive( id, period ) - -#define rtems_multiprocessing_announce() \ - Empty_directive() - -#define rtems_timer_create( name, tmid ) \ - Empty_directive( name, tmid ) -#define rtems_timer_delete( tmid ) \ - Empty_directive( tmid ) -#define rtems_timer_cancel( tmid ) \ - Empty_directive( tmid ) -#define rtems_timer_ident( name, tmid ) \ - Empty_directive( name, tmid ) -#define rtems_timer_fire_after( tmid, ticks, routine, user_data ) \ - Empty_directive( tmid, ticks, routine, user_data ) -#define rtems_timer_fire_when( tmid, time, routine, user_data ) \ - Empty_directive( tmid, time, routine, user_data ) -#define rtems_timer_reset( tmid ) \ - Empty_directive( tmid ) - -rtems_status_code Empty_directive(); - -#endif -/* end of include file */ diff --git a/c/src/tests/tmtests/tmoverhd/empty.c b/c/src/tests/tmtests/tmoverhd/empty.c deleted file mode 100644 index dcfa33d1ed..0000000000 --- a/c/src/tests/tmtests/tmoverhd/empty.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Timer_handler( - rtems_id argument -) -{ -} - -rtems_asr Isr_handler( - rtems_signal_set signals -) -{ -} - -rtems_asr Asr_handler( - rtems_signal_set signals -) -{ -} - -rtems_task task_func() {} - -void null_func() {} - -rtems_status_code Empty_directive() -{ - return( RTEMS_SUCCESSFUL ); -} diff --git a/c/src/tests/tmtests/tmoverhd/system.h b/c/src/tests/tmtests/tmoverhd/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/c/src/tests/tmtests/tmoverhd/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/c/src/tests/tmtests/tmoverhd/testtask.c b/c/src/tests/tmtests/tmoverhd/testtask.c deleted file mode 100644 index 0586f39a35..0000000000 --- a/c/src/tests/tmtests/tmoverhd/testtask.c +++ /dev/null @@ -1,1279 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned8 Memory_area[ 2048 ]; -rtems_unsigned8 Internal_port_area[ 256 ]; -rtems_unsigned8 External_port_area[ 256 ]; - -rtems_task Task_1( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ rtems_id id; - rtems_status_code status; - - Set_find_average_overhead( TRUE ); - - puts( "\n\n*** TIME TEST overhead ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'A', '1', ' ' ), - 254, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( id, Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -/* comment out the following include to verify type are correct */ -#include "dumrtems.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_name name; - rtems_unsigned32 index; - rtems_cpu_table cpu_table; - rtems_id id; - rtems_task_priority in_priority; - rtems_task_priority out_priority; - rtems_mode in_mode; - rtems_mode mask; - rtems_mode out_mode; - rtems_unsigned32 note; - rtems_time_of_day time; - rtems_interval timeout; - rtems_signal_set signals; - void *address_1; - rtems_event_set events; - long buffer[ 4 ]; - rtems_unsigned32 count; - rtems_device_major_number major; - rtems_device_minor_number minor; - rtems_unsigned32 io_result; - rtems_unsigned32 error; - rtems_clock_get_options options; - - name = rtems_build_name( 'N', 'A', 'M', 'E' ); - in_priority = 250; - in_mode = RTEMS_NO_PREEMPT; - mask = RTEMS_PREEMPT_MASK; - note = 8; - timeout = 100; - signals = RTEMS_SIGNAL_1 | RTEMS_SIGNAL_3; - major = 10; - minor = 0; - error = 100; - options = 0; - -/* rtems_initialize_executive */ - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_initialize_executive( &BSP_Configuration, &cpu_table ); - end_time = Read_timer(); - - put_time( - "rtems_initialize_executive", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_shutdown_executive */ - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_shutdown_executive( error ); - end_time = Read_timer(); - - put_time( - "rtems_shutdown_executive", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_create( - name, - in_priority, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_task_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_ident( name, RTEMS_SEARCH_ALL_NODES, id ); - end_time = Read_timer(); - - put_time( - "rtems_task_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_start */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_start( id, Task_1, 0 ); - end_time = Read_timer(); - - put_time( - "rtems_task_start", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_restart */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_restart( id, 0 ); - end_time = Read_timer(); - - put_time( - "rtems_task_restart", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_task_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_suspend */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_suspend( id ); - end_time = Read_timer(); - - put_time( - "rtems_task_suspend", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_resume */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_resume( id ); - end_time = Read_timer(); - - put_time( - "rtems_task_resume", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_set_priority */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_set_priority( id, in_priority, &out_priority ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_priority", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_mode */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_mode( in_mode, mask, &out_mode ); - end_time = Read_timer(); - - put_time( - "rtems_task_mode", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_get_note */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_get_note( id, 1, note ); - end_time = Read_timer(); - - put_time( - "rtems_task_get_note", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_set_note */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_set_note( id, 1, note ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_note", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_wake_when */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_wake_when( time ); - end_time = Read_timer(); - - put_time( - "rtems_task_wake_when", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_wake_after */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_wake_after( timeout ); - end_time = Read_timer(); - - put_time( - "rtems_task_wake_after", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_interrupt_catch */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_interrupt_catch( Isr_handler, 5, address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_interrupt_catch", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_clock_get */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_clock_get( options, time ); - end_time = Read_timer(); - - put_time( - "rtems_clock_get", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_clock_set */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_clock_set( time ); - end_time = Read_timer(); - - put_time( - "rtems_clock_set", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_clock_tick */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_clock_tick(); - end_time = Read_timer(); - - put_time( - "rtems_clock_tick", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -pause(); - -/* rtems_timer_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_create( name, &id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_ident( name, id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_fire_after */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_fire_after( - id, - timeout, - Timer_handler, - NULL - ); - end_time = Read_timer(); - - put_time( - "rtems_timer_fire_after", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_fire_when */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_fire_when( - id, - time, - Timer_handler, - NULL - ); - end_time = Read_timer(); - - put_time( - "rtems_timer_fire_when", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_reset */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_reset( id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_reset", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_cancel */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_cancel( id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_cancel", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_semaphore_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_semaphore_create( - name, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_semaphore_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_semaphore_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_semaphore_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_semaphore_ident( name, RTEMS_SEARCH_ALL_NODES, id ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_semaphore_obtain */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_semaphore_obtain( id, RTEMS_DEFAULT_OPTIONS, timeout ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_obtain", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_semaphore_release */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_semaphore_release( id ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_release", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_create( - name, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_ident( - name, - RTEMS_SEARCH_ALL_NODES, - id - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_send */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_send( id, (long (*)[4])buffer ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_send", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_urgent */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_urgent( id, (long (*)[4])buffer ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_urgent", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_broadcast */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_broadcast( - id, - (long (*)[4])buffer, - &count - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_broadcast", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_receive */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_receive( - id, - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - timeout - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_receive", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_flush */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_flush( id, &count ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_flush", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -pause(); - -/* rtems_event_send */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_event_send( id, events ); - end_time = Read_timer(); - - put_time( - "rtems_event_send", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_event_receive */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - timeout, - &events - ); - end_time = Read_timer(); - - put_time( - "rtems_event_receive", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_signal_catch */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_signal_catch( Asr_handler, RTEMS_DEFAULT_MODES ); - end_time = Read_timer(); - - put_time( - "rtems_signal_catch", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_signal_send */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_signal_send( id, signals ); - end_time = Read_timer(); - - put_time( - "rtems_signal_send", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_partition_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_partition_create( - name, - Memory_area, - 2048, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_partition_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_partition_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_partition_ident( name, RTEMS_SEARCH_ALL_NODES, id ); - end_time = Read_timer(); - - put_time( - "rtems_partition_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_partition_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_partition_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_partition_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_partition_get_buffer */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_partition_get_buffer( id, address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_partition_get_buffer", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_partition_return_buffer */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_partition_return_buffer( id, address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_partition_return_buffer", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_region_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_region_create( - name, - Memory_area, - 2048, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_region_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_region_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_region_ident( name, id ); - end_time = Read_timer(); - - put_time( - "rtems_region_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_region_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_region_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_region_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_region_get_segment */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_region_get_segment( - id, - 243, - RTEMS_DEFAULT_OPTIONS, - timeout, - &address_1 - ); - end_time = Read_timer(); - - put_time( - "rtems_region_get_segment", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_region_return_segment */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_region_return_segment( id, address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_region_return_segment", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_port_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_port_create( - name, - Internal_port_area, - External_port_area, - 0xff, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_port_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_port_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_port_ident( name, id ); - end_time = Read_timer(); - - put_time( - "rtems_port_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_port_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_port_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_port_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_port_external_to_internal */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_port_external_to_internal( - id, - &External_port_area[ 7 ], - address_1 - ); - end_time = Read_timer(); - - put_time( - "rtems_port_external_to_internal", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_port_internal_to_external */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_port_internal_to_external( - id, - &Internal_port_area[ 7 ], - address_1 - ); - end_time = Read_timer(); - - put_time( - "rtems_port_internal_to_external", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -pause(); - -/* rtems_io_initialize */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_initialize( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_initialize", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_io_open */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_open( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_open", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_io_close */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_close( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_close", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_io_read */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_read( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_read", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_io_write */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_write( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_write", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_io_control */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_control( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_control", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_fatal_error_occurred */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_fatal_error_occurred( error ); - end_time = Read_timer(); - - put_time( - "rtems_fatal_error_occurred", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_rate_monotonic_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_rate_monotonic_create( name, &id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_rate_monotonic_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_rate_monotonic_ident( name, id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_rate_monotonic_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_rate_monotonic_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_rate_monotonic_cancel */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_rate_monotonic_cancel( id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_cancel", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_rate_monotonic_period */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_rate_monotonic_period( id, timeout ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_period", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_multiprocessing_announce */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_multiprocessing_announce(); - end_time = Read_timer(); - - put_time( - "rtems_multiprocessing_announce", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - - puts( "*** END OF TIME OVERHEAD ***\n" ); - - exit( 0 ); -} diff --git a/c/src/tests/tmtests/tmoverhd/tmoverhd.doc b/c/src/tests/tmtests/tmoverhd/tmoverhd.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/c/src/tests/tmtests/tmoverhd/tmoverhd.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/c/src/tests/tools/generic/difftest b/c/src/tests/tools/generic/difftest deleted file mode 100644 index ba903160ae..0000000000 --- a/c/src/tests/tools/generic/difftest +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/ksh -p -# -# Check test results against official output in the src tree -# $Id$ -# - -# XXX: do not run size.exe with this; it asks questions we don't answer - -# how to do arith in bash -# i=$((i * 2)) -# b=$((b + 1)) - -# progname=`basename $0` -progname=${0##*/} # fast basename hack for ksh, bash - -USAGE=\ -"usage: $progname [ -opts ] test [ test ... ] - -v -- verbose - -l logdir -- specify log directory (default is 'logdir') -" - -# log an error to stderr -prerr() -{ - echo "$*" >&2 -} - -fatal() { - [ "$1" ] && prerr $* - prerr "$USAGE" - exit 1 -} - -warn() { - [ "$1" ] && prerr $* -} - -# -# process the options -# -# defaults for getopt vars -# - -verbose="" -logdir=log - -while getopts v12o:l: OPT -do - case "$OPT" in - v) - verbose="yes";; - l) - logdir="$OPTARG";; - *) - fatal;; - esac -done -((shiftcount = $OPTIND - 1)) -shift $shiftcount - -args=$* - -# -# Run the tests -# - -cd $RTEMS_ROOT/c/$RTEMS_BSP/tests/$logdir || - fatal "No log directory: $RTEMS_ROOT/c/$RTEMS_BSP/tests/$logdir" - -tests="$args" -if [ ! "$tests" ] -then - set -- `echo sp?? mp??_?` - tests="$*" -fi - -for t in $tests -do - logfile=$t - - if [ ! -f $logfile ] - then - continue - fi - - echo $logfile - echo - - case $t in - mp*) - mptest=`echo $t | sed 's/_.//'` - node=`echo $t | sed 's/...._//'` - scn_file=$RTEMS_ROOT/c/src/tests/mptests/$mptest/node$node/$mptest.scn;; - sp*) - scn_file=$RTEMS_ROOT/c/src/tests/sptests/$t/$t.scn;; - *) - fatal "unknown test $t";; - esac - - sed -e '/^$/d' < $logfile | diff -b $scn_file - - echo - echo -done - -exit 0 - -# Local Variables: *** -# mode:ksh *** -# End: *** - diff --git a/c/update-tools/310_to_320_list b/c/update-tools/310_to_320_list deleted file mode 100644 index b4add28685..0000000000 --- a/c/update-tools/310_to_320_list +++ /dev/null @@ -1,543 +0,0 @@ -# -# External API name -# -initialize_executive rtems_initialize_executive -initialize_executive_early rtems_initialize_executive_early -initialize_executive_late rtems_initialize_executive_late -shutdown_executive rtems_shutdown_executive -task_create rtems_task_create -task_ident rtems_task_ident -task_start rtems_task_start -task_restart rtems_task_restart -task_delete rtems_task_delete -task_suspend rtems_task_suspend -task_resume rtems_task_resume -task_set_priority rtems_task_set_priority -task_mode rtems_task_mode -task_get_note rtems_task_get_note -task_set_note rtems_task_set_note -task_wake_after rtems_task_wake_after -task_wake_when rtems_task_wake_when -interrupt_catch rtems_interrupt_catch -clock_set rtems_clock_set -clock_get rtems_clock_get -clock_tick rtems_clock_tick -extension_create rtems_extension_create -extension_ident rtems_extension_ident -extension_delete rtems_extension_delete -timer_create rtems_timer_create -timer_ident rtems_timer_ident -timer_cancel rtems_timer_cancel -timer_delete rtems_timer_delete -timer_fire_after rtems_timer_fire_after -timer_fire_when rtems_timer_fire_when -timer_reset rtems_timer_reset -semaphore_create rtems_semaphore_create -semaphore_ident rtems_semaphore_ident -semaphore_delete rtems_semaphore_delete -semaphore_obtain rtems_semaphore_obtain -semaphore_release rtems_semaphore_release -message_queue_create rtems_message_queue_create -message_queue_ident rtems_message_queue_ident -message_queue_delete rtems_message_queue_delete -message_queue_send rtems_message_queue_send -message_queue_urgent rtems_message_queue_urgent -message_queue_broadcast rtems_message_queue_broadcast -message_queue_receive rtems_message_queue_receive -message_queue_flush rtems_message_queue_flush -event_send rtems_event_send -event_receive rtems_event_receive -signal_catch rtems_signal_catch -signal_send rtems_signal_send -partition_create rtems_partition_create -partition_ident rtems_partition_ident -partition_delete rtems_partition_delete -partition_get_buffer rtems_partition_get_buffer -partition_return_buffer rtems_partition_return_buffer -region_create rtems_region_create -region_extend rtems_region_extend -region_ident rtems_region_ident -region_delete rtems_region_delete -region_get_segment rtems_region_get_segment -region_get_segment_size rtems_region_get_segment_size -region_return_segment rtems_region_return_segment -port_create rtems_port_create -port_ident rtems_port_ident -port_delete rtems_port_delete -port_external_to_internal rtems_port_external_to_internal -port_internal_to_external rtems_port_internal_to_external -io_initialize rtems_io_initialize -io_open rtems_io_open -io_close rtems_io_close -io_read rtems_io_read -io_write rtems_io_write -io_control rtems_io_control -fatal_error_occurred rtems_fatal_error_occurred -rate_monotonic_create rtems_rate_monotonic_create -rate_monotonic_ident rtems_rate_monotonic_ident -rate_monotonic_delete rtems_rate_monotonic_delete -rate_monotonic_cancel rtems_rate_monotonic_cancel -rate_monotonic_period rtems_rate_monotonic_period -multiprocessing_announce rtems_multiprocessing_announce -# -# Internal Names for API -# -_Initialize_Executive rtems_initialize_executive -_Initialize_Executive_early rtems_initialize_executive_early -_Initialize_Executive_late rtems_initialize_executive_late -_Shutdown_Executive rtems_shutdown_executive -_RTEMS_tasks_Create rtems_task_create -_RTEMS_tasks_Name_to_id rtems_task_ident -_RTEMS_tasks_Start rtems_task_start -_RTEMS_tasks_Restart rtems_task_restart -_RTEMS_tasks_Delete rtems_task_delete -_RTEMS_tasks_Suspend rtems_task_suspend -_RTEMS_tasks_Resume rtems_task_resume -_RTEMS_tasks_Set_priority rtems_task_set_priority -_RTEMS_tasks_Mode rtems_task_mode -_RTEMS_tasks_Get_note rtems_task_get_note -_RTEMS_tasks_Set_note rtems_task_set_note -_RTEMS_tasks_Wake_after rtems_task_wake_after -_RTEMS_tasks_Wake_when rtems_task_wake_when -_Interrupt_Catch rtems_interrupt_catch -_Clock_Set rtems_clock_set -_Clock_Get rtems_clock_get -_Clock_Tick rtems_clock_tick -_Extension_Create rtems_extension_create -_Extension_Name_to_id rtems_extension_ident -_Extension_Delete rtems_extension_delete -_Timer_Create rtems_timer_create -_Timer_Name_to_id rtems_timer_ident -_Timer_Cancel rtems_timer_cancel -_Timer_Delete rtems_timer_delete -_Timer_Fire_after rtems_timer_fire_after -_Timer_Fire_when rtems_timer_fire_when -_Timer_Reset rtems_timer_reset -_Semaphore_Create rtems_semaphore_create -_Semaphore_Name_to_id rtems_semaphore_ident -_Semaphore_Delete rtems_semaphore_delete -_Semaphore_Obtain rtems_semaphore_obtain -_Semaphore_Release rtems_semaphore_release -_Message_queue_Create rtems_message_queue_create -_Message_queue_Name_to_id rtems_message_queue_ident -_Message_queue_Delete rtems_message_queue_delete -_Message_queue_Send rtems_message_queue_send -_Message_queue_Urgent rtems_message_queue_urgent -_Message_queue_Broadcast rtems_message_queue_broadcast -_Message_queue_Receive rtems_message_queue_receive -_Message_queue_Flush rtems_message_queue_flush -_Event_Send rtems_event_send -_Event_Receive rtems_event_receive -_Signal_Catch rtems_signal_catch -_Signal_Send rtems_signal_send -_Partition_Create rtems_partition_create -_Partition_Name_to_id rtems_partition_ident -_Partition_Delete rtems_partition_delete -_Partition_Get_buffer rtems_partition_get_buffer -_Partition_Return_buffer rtems_partition_return_buffer -_Region_Create rtems_region_create -_Region_Extend rtems_region_extend -_Region_Name_to_id rtems_region_ident -_Region_Delete rtems_region_delete -_Region_Get_segment rtems_region_get_segment -_Region_Get_segment_size rtems_region_get_segment_size -_Region_Return_segment rtems_region_return_segment -_Dual_ported_memory_Create rtems_port_create -_Dual_ported_memory_Name_to_id rtems_port_ident -_Dual_ported_memory_Delete rtems_port_delete -_Dual_ported_memory_External_to_internal rtems_port_external_to_internal -_Dual_ported_memory_Internal_to_external rtems_port_internal_to_external -_IO_Initialize rtems_io_initialize -_IO_Open rtems_io_open -_IO_Close rtems_io_close -_IO_Read rtems_io_read -_IO_Write rtems_io_write -_IO_Control rtems_io_control -_Fatal_Error_occurred rtems_fatal_error_occurred -_Rate_monotonic_Create rtems_rate_monotonic_create -_Rate_monotonic_Name_to_id rtems_rate_monotonic_ident -_Rate_monotonic_Delete rtems_rate_monotonic_delete -_Rate_monotonic_Cancel rtems_rate_monotonic_cancel -_Rate_monotonic_Period rtems_rate_monotonic_period -_Multiprocessing_Announce rtems_multiprocessing_announce -# -# Status (API names) -# -SUCCESSFUL RTEMS_SUCCESSFUL -TASK_EXITTED RTEMS_TASK_EXITTED -MP_NOT_CONFIGURED RTEMS_MP_NOT_CONFIGURED -INVALID_NAME RTEMS_INVALID_NAME -INVALID_ID RTEMS_INVALID_ID -TOO_MANY RTEMS_TOO_MANY -TIMEOUT RTEMS_TIMEOUT -OBJECT_WAS_DELETED RTEMS_OBJECT_WAS_DELETED -INVALID_SIZE RTEMS_INVALID_SIZE -INVALID_ADDRESS RTEMS_INVALID_ADDRESS -INVALID_NUMBER RTEMS_INVALID_NUMBER -NOT_DEFINED RTEMS_NOT_DEFINED -RESOURCE_IN_USE RTEMS_RESOURCE_IN_USE -UNSATISFIED RTEMS_UNSATISFIED -INCORRECT_STATE RTEMS_INCORRECT_STATE -ALREADY_SUSPENDED RTEMS_ALREADY_SUSPENDED -ILLEGAL_ON_SELF RTEMS_ILLEGAL_ON_SELF -ILLEGAL_ON_REMOTE_OBJECT RTEMS_ILLEGAL_ON_REMOTE_OBJECT -CALLED_FROM_ISR RTEMS_CALLED_FROM_ISR -INVALID_PRIORITY RTEMS_INVALID_PRIORITY -INVALID_CLOCK RTEMS_INVALID_CLOCK -INVALID_NODE RTEMS_INVALID_NODE -NOT_CONFIGURED RTEMS_NOT_CONFIGURED -NOT_OWNER_OF_RESOURCE RTEMS_NOT_OWNER_OF_RESOURCE -NOT_IMPLEMENTED RTEMS_NOT_IMPLEMENTED -INTERNAL_ERROR RTEMS_INTERNAL_ERROR -PROXY_BLOCKING RTEMS_PROXY_BLOCKING -NO_MEMORY RTEMS_NO_MEMORY -STATUS_CODES_FIRST RTEMS_STATUS_CODES_FIRST -STATUS_CODES_LAST RTEMS_STATUS_CODES_LAST -# -# Status (Internal names) -# -STATUS_SUCCESSFUL RTEMS_SUCCESSFUL -STATUS_TASK_EXITTED RTEMS_TASK_EXITTED -STATUS_MP_NOT_CONFIGURED RTEMS_MP_NOT_CONFIGURED -STATUS_INVALID_NAME RTEMS_INVALID_NAME -STATUS_INVALID_ID RTEMS_INVALID_ID -STATUS_TOO_MANY RTEMS_TOO_MANY -STATUS_TIMEOUT RTEMS_TIMEOUT -STATUS_OBJECT_WAS_DELETED RTEMS_OBJECT_WAS_DELETED -STATUS_INVALID_SIZE RTEMS_INVALID_SIZE -STATUS_INVALID_ADDRESS RTEMS_INVALID_ADDRESS -STATUS_INVALID_NUMBER RTEMS_INVALID_NUMBER -STATUS_NOT_DEFINED RTEMS_NOT_DEFINED -STATUS_RESOURCE_IN_USE RTEMS_RESOURCE_IN_USE -STATUS_UNSATISFIED RTEMS_UNSATISFIED -STATUS_INCORRECT_STATE RTEMS_INCORRECT_STATE -STATUS_ALREADY_SUSPENDED RTEMS_ALREADY_SUSPENDED -STATUS_ILLEGAL_ON_SELF RTEMS_ILLEGAL_ON_SELF -STATUS_ILLEGAL_ON_REMOTE_OBJECT RTEMS_ILLEGAL_ON_REMOTE_OBJECT -STATUS_CALLED_FROM_ISR RTEMS_CALLED_FROM_ISR -STATUS_INVALID_PRIORITY RTEMS_INVALID_PRIORITY -STATUS_INVALID_CLOCK RTEMS_INVALID_CLOCK -STATUS_INVALID_NODE RTEMS_INVALID_NODE -STATUS_NOT_CONFIGURED RTEMS_NOT_CONFIGURED -STATUS_NOT_OWNER_OF_RESOURCE RTEMS_NOT_OWNER_OF_RESOURCE -STATUS_NOT_IMPLEMENTED RTEMS_NOT_IMPLEMENTED -STATUS_INTERNAL_ERROR RTEMS_INTERNAL_ERROR -STATUS_PROXY_BLOCKING RTEMS_PROXY_BLOCKING -STATUS_NO_MEMORY RTEMS_NO_MEMORY -# -# Attributes (External) -# -DEFAULT_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES -NO_FLOATING_POINT RTEMS_NO_FLOATING_POINT -FLOATING_POINT RTEMS_FLOATING_POINT -LOCAL RTEMS_LOCAL -GLOBAL RTEMS_GLOBAL -FIFO RTEMS_FIFO -PRIORITY RTEMS_PRIORITY -NO_LIMIT RTEMS_NO_LIMIT -LIMIT RTEMS_LIMIT -COUNTING_SEMAPHORE RTEMS_COUNTING_SEMAPHORE -BINARY_SEMAPHORE RTEMS_BINARY_SEMAPHORE -NO_INHERIT_PRIORITY RTEMS_NO_INHERIT_PRIORITY -INHERIT_PRIORITY RTEMS_INHERIT_PRIORITY -# -# Attributes (Internal) -# -ATTRIBUTES_DEFAULTS RTEMS_DEFAULT_ATTRIBUTES -ATTRIBUTES_NO_FLOATING_POINT RTEMS_NO_FLOATING_POINT -ATTRIBUTES_FLOATING_POINT RTEMS_FLOATING_POINT -ATTRIBUTES_LOCAL RTEMS_LOCAL -ATTRIBUTES_GLOBAL RTEMS_GLOBAL -ATTRIBUTES_FIFO RTEMS_FIFO -ATTRIBUTES_PRIORITY RTEMS_PRIORITY -ATTRIBUTES_NO_LIMIT RTEMS_NO_LIMIT -ATTRIBUTES_LIMIT RTEMS_LIMIT -ATTRIBUTES_COUNTING_SEMAPHORE RTEMS_COUNTING_SEMAPHORE -ATTRIBUTES_BINARY_SEMAPHORE RTEMS_BINARY_SEMAPHORE -ATTRIBUTES_NO_INHERIT_PRIORITY RTEMS_NO_INHERIT_PRIORITY -ATTRIBUTES_INHERIT_PRIORITY RTEMS_INHERIT_PRIORITY -# -# Options (External) -# -DEFAULT_OPTIONS RTEMS_DEFAULT_OPTIONS -WAIT RTEMS_WAIT -NO_WAIT RTEMS_NO_WAIT -EVENT_ALL RTEMS_EVENT_ALL -EVENT_ANY RTEMS_EVENT_ANY -# -# Options (Internal) -# -OPTIONS_DEFAULT RTEMS_DEFAULT_OPTIONS -OPTIONS_WAIT RTEMS_WAIT -OPTIONS_NO_WAIT RTEMS_NO_WAIT -OPTIONS_EVENT_ALL RTEMS_EVENT_ALL -OPTIONS_EVENT_ANY RTEMS_EVENT_ANY -# -# Masks (External) -# -ALL_MODE_MASKS RTEMS_ALL_MODE_MASKS -PREEMPT_MASK RTEMS_PREEMPT_MASK -TIMESLICE_MASK RTEMS_TIMESLICE_MASK -ASR_MASK RTEMS_ASR_MASK -INTERRUPT_MASK RTEMS_INTERRUPT_MASK -# -# Masks (Internal) -# -MODES_ALL_MASK RTEMS_ALL_MODE_MASKS -MODES_PREEMPT_MASK RTEMS_PREEMPT_MASK -MODES_TIMESLICE_MASK RTEMS_TIMESLICE_MASK -MODES_ASR_MASK RTEMS_ASR_MASK -MODES_INTERRUPT_MASK RTEMS_INTERRUPT_MASK -# -# Modes (Internal) -# -MODES_DEFAULTS RTEMS_DEFAULT_MODES -MODES_PREEMPT RTEMS_PREEMPT -MODES_NO_PREEMPT RTEMS_NO_PREEMPT -MODES_NO_TIMESLICE RTEMS_NO_TIMESLICE -MODES_TIMESLICE RTEMS_TIMESLICE -MODES_ASR RTEMS_ASR -MODES_NO_ASR RTEMS_NO_ASR -_Modes_Interrupt_level RTEMS_INTERRUPT_LEVEL -# -# Modes (External) -# -DEFAULT_MODES RTEMS_DEFAULT_MODES -PREEMPT RTEMS_PREEMPT -NO_PREEMPT RTEMS_NO_PREEMPT -NO_TIMESLICE RTEMS_NO_TIMESLICE -TIMESLICE RTEMS_TIMESLICE -ASR RTEMS_ASR -NO_ASR RTEMS_NO_ASR -INTERRUPT_LEVEL RTEMS_INTERRUPT_LEVEL -# -# Identification (External) -# -SEARCH_ALL_NODES RTEMS_SEARCH_ALL_NODES -SEARCH_OTHER_NODES RTEMS_SEARCH_OTHER_NODES -SEARCH_LOCAL_NODE RTEMS_SEARCH_LOCAL_NODE -WHO_AM_I RTEMS_WHO_AM_I -# -# Identification (Internal) -# -OBJECTS_SEARCH_ALL_NODES RTEMS_SEARCH_ALL_NODES -OBJECTS_SEARCH_OTHER_NODES RTEMS_SEARCH_OTHER_NODES -OBJECTS_SEARCH_LOCAL_NODE RTEMS_SEARCH_LOCAL_NODE -OBJECTS_WHO_AM_I RTEMS_WHO_AM_I -# -# Miscellaneous (External API) -# -CURRENT_MODE RTEMS_CURRENT_MODE -CURRENT_PRIORITY RTEMS_CURRENT_PRIORITY -PENDING_EVENTS RTEMS_PENDING_EVENTS -NO_TIMEOUT RTEMS_NO_TIMEOUT -SELF RTEMS_SELF -PERIOD_STATUS RTEMS_PERIOD_STATUS -YIELD_PROCESSOR RTEMS_YIELD_PROCESSOR -MINIMUM_PRIORITY RTEMS_MINIMUM_PRIORITY -MAXIMUM_PRIORITY RTEMS_MAXIMUM_PRIORITY -MINIMUM_STACK_SIZE RTEMS_MINIMUM_STACK_SIZE -# -# Miscellaneous (External API) -# -MODES_CURRENT RTEMS_CURRENT_MODE -PRIORITY_CURRENT RTEMS_CURRENT_PRIORITY -# -# Events -# -ALL_EVENTS RTEMS_ALL_EVENTS -EVENT_0 RTEMS_EVENT_0 -EVENT_1 RTEMS_EVENT_1 -EVENT_2 RTEMS_EVENT_2 -EVENT_3 RTEMS_EVENT_3 -EVENT_4 RTEMS_EVENT_4 -EVENT_5 RTEMS_EVENT_5 -EVENT_6 RTEMS_EVENT_6 -EVENT_7 RTEMS_EVENT_7 -EVENT_8 RTEMS_EVENT_8 -EVENT_9 RTEMS_EVENT_9 -EVENT_10 RTEMS_EVENT_10 -EVENT_11 RTEMS_EVENT_11 -EVENT_12 RTEMS_EVENT_12 -EVENT_13 RTEMS_EVENT_13 -EVENT_14 RTEMS_EVENT_14 -EVENT_15 RTEMS_EVENT_15 -EVENT_16 RTEMS_EVENT_16 -EVENT_17 RTEMS_EVENT_17 -EVENT_18 RTEMS_EVENT_18 -EVENT_19 RTEMS_EVENT_19 -EVENT_20 RTEMS_EVENT_20 -EVENT_21 RTEMS_EVENT_21 -EVENT_22 RTEMS_EVENT_22 -EVENT_23 RTEMS_EVENT_23 -EVENT_24 RTEMS_EVENT_24 -EVENT_25 RTEMS_EVENT_25 -EVENT_26 RTEMS_EVENT_26 -EVENT_27 RTEMS_EVENT_27 -EVENT_28 RTEMS_EVENT_28 -EVENT_29 RTEMS_EVENT_29 -EVENT_30 RTEMS_EVENT_30 -EVENT_31 RTEMS_EVENT_31 -# -# Signals -# -SIGNAL_0 RTEMS_SIGNAL_0 -SIGNAL_1 RTEMS_SIGNAL_1 -SIGNAL_2 RTEMS_SIGNAL_2 -SIGNAL_3 RTEMS_SIGNAL_3 -SIGNAL_4 RTEMS_SIGNAL_4 -SIGNAL_5 RTEMS_SIGNAL_5 -SIGNAL_6 RTEMS_SIGNAL_6 -SIGNAL_7 RTEMS_SIGNAL_7 -SIGNAL_8 RTEMS_SIGNAL_8 -SIGNAL_9 RTEMS_SIGNAL_9 -SIGNAL_10 RTEMS_SIGNAL_10 -SIGNAL_11 RTEMS_SIGNAL_11 -SIGNAL_12 RTEMS_SIGNAL_12 -SIGNAL_13 RTEMS_SIGNAL_13 -SIGNAL_14 RTEMS_SIGNAL_14 -SIGNAL_15 RTEMS_SIGNAL_15 -SIGNAL_16 RTEMS_SIGNAL_16 -SIGNAL_17 RTEMS_SIGNAL_17 -SIGNAL_18 RTEMS_SIGNAL_18 -SIGNAL_19 RTEMS_SIGNAL_19 -SIGNAL_20 RTEMS_SIGNAL_20 -SIGNAL_21 RTEMS_SIGNAL_21 -SIGNAL_22 RTEMS_SIGNAL_22 -SIGNAL_23 RTEMS_SIGNAL_23 -SIGNAL_24 RTEMS_SIGNAL_24 -SIGNAL_25 RTEMS_SIGNAL_25 -SIGNAL_26 RTEMS_SIGNAL_26 -SIGNAL_27 RTEMS_SIGNAL_27 -SIGNAL_28 RTEMS_SIGNAL_28 -SIGNAL_29 RTEMS_SIGNAL_29 -SIGNAL_30 RTEMS_SIGNAL_30 -SIGNAL_31 RTEMS_SIGNAL_31 -# -# Notepads -# -NOTEPAD_FIRST RTEMS_NOTEPAD_FIRST -NOTEPAD_0 RTEMS_NOTEPAD_0 -NOTEPAD_1 RTEMS_NOTEPAD_1 -NOTEPAD_2 RTEMS_NOTEPAD_2 -NOTEPAD_3 RTEMS_NOTEPAD_3 -NOTEPAD_4 RTEMS_NOTEPAD_4 -NOTEPAD_5 RTEMS_NOTEPAD_5 -NOTEPAD_6 RTEMS_NOTEPAD_6 -NOTEPAD_7 RTEMS_NOTEPAD_7 -NOTEPAD_8 RTEMS_NOTEPAD_8 -NOTEPAD_9 RTEMS_NOTEPAD_9 -NOTEPAD_10 RTEMS_NOTEPAD_10 -NOTEPAD_11 RTEMS_NOTEPAD_11 -NOTEPAD_12 RTEMS_NOTEPAD_12 -NOTEPAD_13 RTEMS_NOTEPAD_13 -NOTEPAD_14 RTEMS_NOTEPAD_14 -NOTEPAD_15 RTEMS_NOTEPAD_15 -NOTEPAD_LAST RTEMS_NOTEPAD_LAST -# -# Multiprocessing -# -MIN_PKTSIZE RTEMS_MINIMUM_PACKET_SIZE -MIN_HETERO_CONV RTEMS_MINIMUN_HETERO_CONVERSION -# -# Name and ID External -# -get_node rtems_get_node -get_index rtems_get_index -build_name rtems_build_name -name_to_characters rtems_name_to_characters -# -# Name and ID Internal -# -_Objects_Get_node rtems_get_node -_Objects_Get_index rtems_get_index -_Objects_Build_name rtems_build_name -_Objects_Name_to_characters rtems_name_to_characters -# -# clock_get -# -CLOCK_GET_TOD RTEMS_CLOCK_GET_TOD -CLOCK_GET_SECONDS_SINCE_EPOCH RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH -CLOCK_GET_TICKS_SINCE_BOOT RTEMS_CLOCK_GET_TICKS_SINCE_BOOT -CLOCK_GET_TICKS_PER_SECOND RTEMS_CLOCK_GET_TICKS_PER_SECOND -CLOCK_GET_TIME_VALUE RTEMS_CLOCK_GET_TIME_VALUE -# -# Status Code Support Routines (External) -- NO CHANGES -# -# -# Status Code Support Routines (Internal) -# -_Status_Is_successful rtems_is_status_successful -_Status_Is_equal rtems_are_statuses_equal -# -# Time Conversion Support Routines (External) -- NO CHANGES -# -# -# Time Conversion Support Routines (Internal) -# -_TOD_Milliseconds_to_microseconds RTEMS_MILLISECONDS_TO_MICROSECONDS -_TOD_Milliseconds_to_ticks RTEMS_MILLISECONDS_TO_MICROSECONDS -# -# MP packet -# -MP_PACKET_INTERNAL_THREADS RTEMS_MP_PACKET_INTERNAL_THREADS -MP_PACKET_RTEMS_TASKS RTEMS_MP_PACKET_TASKS -MP_PACKET_MESSAGE_QUEUE RTEMS_MP_PACKET_MESSAGE_QUEUE -MP_PACKET_SEMAPHORE RTEMS_MP_PACKET_SEMAPHORE -MP_PACKET_PARTITION RTEMS_MP_PACKET_PARTITION -MP_PACKET_REGION RTEMS_MP_PACKET_REGION -MP_PACKET_EVENT RTEMS_MP_PACKET_EVENT -MP_PACKET_SIGNAL RTEMS_MP_PACKET_SIGNAL -# -# -# -IO_Major_control rtems_device_major_number -IO_Minor_control rtems_device_minor_number -# -# Configuration Info -# -Configuration_Table rtems_configuration_table -Configuration_Initialization_tasks_table rtems_initialization_tasks_table -Configuration_Driver_address_table rtems_driver_address_table -Configuration_Extension_table rtems_extensions_table -rtems_tasks_create_extension rtems_task_create_extension -rtems_tasks_start_extension rtems_task_start_extension -rtems_tasks_restart_extension rtems_task_restart_extension -rtems_tasks_delete_extension rtems_task_delete_extension -rtems_tasks_switch_extension rtems_task_switch_extension -rtems_tasks_begin_extension rtems_task_begin_extension -rtems_tasks_exitted_extension rtems_task_exitted_extension -rtems_fatal_extension rtems_fatal_extension -Configuration_MPCI_table rtems_mpci_table -Configuration_Multiprocessing_table rtems_multiprocessing_table -CPU_Table rtems_cpu_table -# -Clock_Get_options rtems_clock_get_options -Clock_Time_value rtems_clock_time_value -MP_packet_Prefix rtems_packet_prefix -MP_packet_Classes rtems_mp_packet_classes -TOD_Control rtems_time_of_day -ISR_Vector rtems_vector_number -Watchdog_Interval rtems_interval -Watchdog_Service rtems_timer_service_routine_entry -Attributes_Control rtems_attribute -Modes_Control rtems_mode -Options_Control rtems_option -Priority_Control rtems_task_priority -PRIORITY_MINIMUM RTEMS_MINIMUM_PRIORITY -PRIORITY_MAXIMUM RTEMS_MAXIMUM_PRIORITY -Event_sets_Control rtems_event_set -ASR_Signal_set_control rtems_signal_set -Status_Codes rtems_status_code -RTEMS_TASKS_YIELD_PROCESSOR RTEMS_YIELD_PROCESSOR -RATE_MONOTONIC_PERIOD_STATUS RTEMS_PERIOD_STATUS -WATCHDOG_FOREVER RTEMS_NO_TIMEOUT -STACK_MINIMUM_SIZE RTEMS_MINIMUM_STACK_SIZE -# -ASR_Handler rtems_asr_entry -Thread_Entry rtems_task_entry -# -disable_intr rtems_interrupt_disable -enable_intr rtems_interrupt_enable -flash_intr rtems_interrupt_flash - diff --git a/c/update-tools/README b/c/update-tools/README deleted file mode 100644 index bbf99cb71d..0000000000 --- a/c/update-tools/README +++ /dev/null @@ -1,7 +0,0 @@ -# -# $Id$ -# - -This directory contains tools which aid in upgrading from RTEMS 3.1.0 -to RTEMS 3.2.0. - diff --git a/cpukit/libcsupport/include/clockdrv.h b/cpukit/libcsupport/include/clockdrv.h deleted file mode 100644 index aad9bd6d3b..0000000000 --- a/cpukit/libcsupport/include/clockdrv.h +++ /dev/null @@ -1,58 +0,0 @@ -/* clock.h - * - * This file describes the Clock Driver for all boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __CLOCK_DRIVER_h -#define __CLOCK_DRIVER_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* variables */ - -extern volatile rtems_unsigned32 Clock_driver_ticks; - -/* functions */ - -rtems_task Exit_task(); -void exit_task_init(); - -void Install_clock( rtems_isr_entry ); -void ReInstall_clock( rtems_isr_entry ); -void Clock_exit(); - -rtems_isr Clock_isr( - rtems_vector_number -); - -/* driver entries */ - -#define CLOCK_DRIVER_TABLE_ENTRY \ - { Clock_initialize, NULL, NULL, NULL, NULL, NULL } - -rtems_device_driver Clock_initialize( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/libcsupport/include/console.h b/cpukit/libcsupport/include/console.h deleted file mode 100644 index d102c6a1b1..0000000000 --- a/cpukit/libcsupport/include/console.h +++ /dev/null @@ -1,40 +0,0 @@ -/* console.h - * - * This file describes the Console Device Driver for all boards. - * This driver provides support for the standard C Library. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef _CONSOLE_DRIVER_h -#define _CONSOLE_DRIVER_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define CONSOLE_DRIVER_TABLE_ENTRY \ - { console_initialize, NULL, NULL, NULL, NULL, NULL } - -rtems_device_driver console_initialize( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/libcsupport/include/iosupp.h b/cpukit/libcsupport/include/iosupp.h deleted file mode 100644 index 5f4a83b8ca..0000000000 --- a/cpukit/libcsupport/include/iosupp.h +++ /dev/null @@ -1,44 +0,0 @@ -/* iosupp.h - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __IOSUPP_h -#define __IOSUPP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* character constants */ - -#define BS 0x08 /* backspace */ -#define LF 0x0a /* line feed */ -#define CR 0x0d /* carriage return */ -#define XON 0x11 /* control-Q */ -#define XOFF 0x13 /* control-S */ - -/* structures */ - -#ifdef IOSUPP_INIT -#define IOSUPP_EXTERN -#else -#undef IOSUPP_EXTERN -#define IOSUPP_EXTERN extern -#endif - -/* functions */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/cpukit/libcsupport/include/rtems/libcsupport.h b/cpukit/libcsupport/include/rtems/libcsupport.h deleted file mode 100644 index 2b199707f8..0000000000 --- a/cpukit/libcsupport/include/rtems/libcsupport.h +++ /dev/null @@ -1,47 +0,0 @@ -/* libcsupport.h - * - * This include file contains the information regarding the - * RTEMS specific support for the standard C library. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __LIBC_SUPPORT_h -#define __LIBC_SUPPORT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -void RTEMS_Malloc_Initialize( - void *start, - size_t length, - size_t sbrk_amount -); - -extern void libc_init(int reentrant); - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/libcsupport/include/spurious.h b/cpukit/libcsupport/include/spurious.h deleted file mode 100644 index 428e826164..0000000000 --- a/cpukit/libcsupport/include/spurious.h +++ /dev/null @@ -1,38 +0,0 @@ -/* spurious.h - * - * This file describes the Spurious Interrupt Driver for all boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993. - * On-Line Applications Research Corporation (OAR). - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SPURIOUS_h -#define __SPURIOUS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define SPURIOUS_DRIVER_TABLE_ENTRY \ - { Spurious_Initialize, NULL, NULL, NULL, NULL, NULL } - -rtems_device_driver Spurious_Initialize( - rtems_device_major_number, - rtems_device_minor_number, - void *, - rtems_id, - rtems_unsigned32 * -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/libcsupport/include/timerdrv.h b/cpukit/libcsupport/include/timerdrv.h deleted file mode 100644 index d091b62410..0000000000 --- a/cpukit/libcsupport/include/timerdrv.h +++ /dev/null @@ -1,40 +0,0 @@ -/* timerdrv.h - * - * This file describes the Timer Driver for all boards. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIMER_DRIVER_h -#define __TIMER_DRIVER_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* functions */ - -void Timer_initialize( void ); - -rtems_unsigned32 Read_timer( void ); - -rtems_status_code Empty_function( void ); - -void Set_find_average_overhead( - rtems_boolean find_flag -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/libcsupport/include/vmeintr.h b/cpukit/libcsupport/include/vmeintr.h deleted file mode 100644 index 6148114ce8..0000000000 --- a/cpukit/libcsupport/include/vmeintr.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * vmeintr.h - * - * This file is the specification for the VMEbus interface library - * which should be provided by all BSPs for VMEbus Single Board - * Computers but currently only a few do so. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __VME_INTERRUPT_h -#define __VME_INTERRUPT_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This defines the mask which is used to determine which - * interrupt levels are affected by a call to this package. - * The LSB corresponds to VME interrupt 0 and the MSB - * to VME interrupt 7. - * - */ - -typedef rtems_unsigned8 VME_interrupt_Mask; - -/* - * VME_interrupt_Disable - * - */ - -void VME_interrupt_Disable ( - VME_interrupt_Mask mask /* IN */ -); - -/* - * VME_interrupt_Disable - * - */ - -void VME_interrupt_Enable ( - VME_interrupt_Mask mask /* IN */ -); - -#ifdef __cplusplus -} -#endif - -#endif /* end of include file */ diff --git a/cpukit/libcsupport/src/README b/cpukit/libcsupport/src/README deleted file mode 100644 index ee7a90501e..0000000000 --- a/cpukit/libcsupport/src/README +++ /dev/null @@ -1,37 +0,0 @@ --- --- $Id$ --- - -Overview of newlib support (newlib is from CYGNUS) - Each task can have its own libc state including: - open stdio files - strtok - multi precision arithmetic state - etc. - - This is implemented by a reentrancy data structure for each task. - - When a task is "started" (in RTEMS sense) the reentrancy structure - is allocated. Its address is stored in notepad[NOTEPAD_LAST]. - - When task is switched to, the value of global variable _impure_ptr - is changed to the value of the new tasks reentrancy structure. - - When a task is deleted - atexit() processing (for that task) happens - task's stdio buffers are flushed - - When exit(3) is called - calling task's atexit processing done - global libc state atexit processing done - (this will include any atexit routines installed by drivers) - executive is shutdown - causes a context switch back to bsp land - - -NOTE: - libc extension are installed by bsp_libc_init() - iff we are using clock interrupts. - This hack is necessary to allow the tmtests to avoid - timing the extensions. - diff --git a/cpukit/libcsupport/src/__brk.c b/cpukit/libcsupport/src/__brk.c deleted file mode 100644 index 6fb15342fe..0000000000 --- a/cpukit/libcsupport/src/__brk.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * RTEMS "Broken" __brk/__sbrk Implementation - * - * NOTE: sbrk is BSP provided. - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include -#ifdef RTEMS_NEWLIB -#include -#endif -#include - -/* we use RTEMS for memory management. We don't need sbrk */ - -void * __sbrk(int incr) -{ - errno = EINVAL; - return (void *)0; -} - -int __brk( const void *endds ) -{ - errno = EINVAL; - return -1; -} diff --git a/cpukit/libcsupport/src/__gettod.c b/cpukit/libcsupport/src/__gettod.c deleted file mode 100644 index a1ab9776c8..0000000000 --- a/cpukit/libcsupport/src/__gettod.c +++ /dev/null @@ -1,84 +0,0 @@ -#if !defined(RTEMS_UNIX) -/* - * RTEMS gettimeofday Implementation - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#ifdef RTEMS_NEWLIB -#include -#endif -#include -#include -#include -#include - -/* - * NOTE: The solaris gettimeofday does not have a second parameter. - */ - -int gettimeofday( - struct timeval *tp, - struct timezone *tzp -) -{ - rtems_status_code status; - rtems_clock_time_value time; - - if ( !tp || !tzp ) { - errno = EFAULT; - return -1; - } - - /* "POSIX" does not seem to allow for not having a TOD */ - status = rtems_clock_get( RTEMS_CLOCK_GET_TIME_VALUE, &time ); - if ( status != RTEMS_SUCCESSFUL ) { - assert( 0 ); - return -1; - } - - tp->tv_sec = time.seconds; - tp->tv_usec = time.microseconds; - -#if 0 - tzp->minuteswest = timezone / 60; /* from seconds to minutes */ - tzp->dsttime = daylight; -#endif - - /* - * newlib does not have timezone and daylight savings time - * yet. When it does this needs to be fixed. - */ - - tzp->tz_minuteswest = 0; /* at UTC */ - tzp->tz_dsttime = 0; /* no daylight savings */ - return 0; -} - -/* - * "Reentrant" versions of the above routines implemented above. - */ - -#if 0 -int _gettimeofday_r( - struct _reent *ignored_reentrancy_stuff, - struct timeval *tp, - struct timezone *tzp -) -{ - return gettimeofday( tp, tzp ); -} -#endif - -#endif diff --git a/cpukit/libcsupport/src/__times.c b/cpukit/libcsupport/src/__times.c deleted file mode 100644 index 12fd9241fe..0000000000 --- a/cpukit/libcsupport/src/__times.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * RTEMS _times Implementation - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include - -clock_t _times( - struct tms *ptms -) -{ - rtems_status_code status; - rtems_interval ticks_since_boot; - - if ( !ptms ) { - errno = EFAULT; - return -1; - } - - /* "POSIX" does not seem to allow for not having a TOD */ - status = rtems_clock_get( - RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, - &ticks_since_boot - ); - if ( status != RTEMS_SUCCESSFUL ) { - assert( 0 ); - return -1; - } - - /* - * RTEMS has no notion of system versus user time and does - * not (as of 3.2.0) keep track of CPU usage on a per task basis. - */ - - ptms->tms_utime = ticks_since_boot; - ptms->tms_stime = 0; - ptms->tms_cutime = 0; - ptms->tms_cstime = 0; - - return 0; -} - -clock_t times( - struct tms *ptms -) -{ - return _times( ptms ); -} - diff --git a/cpukit/libcsupport/src/malloc.c b/cpukit/libcsupport/src/malloc.c deleted file mode 100644 index 7d0ba04143..0000000000 --- a/cpukit/libcsupport/src/malloc.c +++ /dev/null @@ -1,280 +0,0 @@ -/* - * RTEMS Malloc Family Implementation - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#ifdef RTEMS_LIBC -#include -#endif -#include "libcsupport.h" -#ifdef RTEMS_NEWLIB -#include -#endif - -#include -#include -#include -#include -#include -#include - -/* - * XXX: Do we really need to duplicate these? It appears that they - * only cause typing problems. - */ - -#if 0 -void *malloc(size_t); -void *calloc(size_t, size_t); -void *realloc(void *, size_t); -void free(void *); -void *sbrk(size_t); -#endif - -rtems_id RTEMS_Malloc_Heap; -size_t RTEMS_Malloc_Sbrk_amount; - -void RTEMS_Malloc_Initialize( - void *start, - size_t length, - size_t sbrk_amount -) -{ - rtems_status_code status; - void *starting_address; - rtems_unsigned32 u32_address; - - /* - * If the starting address is 0 then we are to attempt to - * get length worth of memory using sbrk. Make sure we - * align the address that we get back. - */ - - starting_address = start; - - if (!starting_address) { - u32_address = (unsigned int)sbrk(length); - - if (u32_address == -1) { - rtems_fatal_error_occurred( RTEMS_NO_MEMORY ); - /* DOES NOT RETURN!!! */ - } - - if (u32_address & (CPU_ALIGNMENT-1)) { - u32_address = (u32_address + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - /* XXX: if we do any alignment .. then length should be shortened */ - } - - starting_address = (void *)u32_address; - } - - /* - * Unfortunately we cannot use assert if this fails because if this - * has failed we do not have a heap and if we do not have a heap - * STDIO cannot work because there will be no buffers. - */ - - status = rtems_region_create( - rtems_build_name( 'H', 'E', 'A', 'P' ), - starting_address, - length, - 8, /* XXX : use CPU dependent RTEMS constant */ - RTEMS_DEFAULT_ATTRIBUTES, - &RTEMS_Malloc_Heap - ); - if ( status != RTEMS_SUCCESSFUL ) - rtems_fatal_error_occurred( status ); -} - -void *malloc( - size_t size -) -{ - void *return_this; - void *starting_address; - rtems_unsigned32 the_size; - rtems_unsigned32 sbrk_amount; - rtems_status_code status; - - if ( !size ) - return (void *) 0; - - /* - * Try to give a segment in the current region if there is not - * enough space then try to grow the region using rtems_region_extend(). - * If this fails then return a NULL pointer. - */ - - status = rtems_region_get_segment( - RTEMS_Malloc_Heap, - size, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &return_this - ); - - if ( status != RTEMS_SUCCESSFUL ) { - /* - * Round to the "requested sbrk amount" so hopefully we won't have - * to grow again for a while. This effectively does sbrk() calls - * in "page" amounts. - */ - - sbrk_amount = RTEMS_Malloc_Sbrk_amount; - - if ( sbrk_amount == 0 ) - return (void *) 0; - - the_size = ((size + sbrk_amount) / sbrk_amount * sbrk_amount); - - if (((rtems_unsigned32)starting_address = sbrk(the_size)) == -1) - return (void *) 0; - - /* - fprintf(stderr, "Extended the C heap starting at 0x%x for %d bytes\n", - (unsigned32)starting_address, the_size); - */ - - status = rtems_region_extend( - RTEMS_Malloc_Heap, - starting_address, - the_size - ); - if ( status != RTEMS_SUCCESSFUL ) { - sbrk(-the_size); - return(FALSE); - errno = ENOMEM; - return (void *) 0; - } - status = rtems_region_get_segment( - RTEMS_Malloc_Heap, - size, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &return_this - ); - if ( status != RTEMS_SUCCESSFUL ) { - errno = ENOMEM; - return (void *) 0; - } - } - - return return_this; -} - -void *calloc( - size_t nelem, - size_t elsize -) -{ - register char *cptr; - int length; - - length = nelem * elsize; - cptr = malloc( length ); - if ( cptr ) - memset( cptr, '\0', length ); - - return cptr; -} - -void *realloc( - void *ptr, - size_t size -) -{ - rtems_unsigned32 old_size; - rtems_status_code status; - char *new_area; - - if ( !ptr ) - return malloc( size ); - - if ( !size ) { - free( ptr ); - return (void *) 0; - } - - status = rtems_region_get_segment_size( RTEMS_Malloc_Heap, ptr, &old_size ); - if ( status != RTEMS_SUCCESSFUL ) { - errno = EINVAL; - return (void *) 0; - } - - new_area = malloc( size ); - if ( !new_area ) { - free( ptr ); - return (void *) 0; - } - - memcpy( new_area, ptr, (size < old_size) ? size : old_size ); - free( ptr ); - - return new_area; - -} - -void free( - void *ptr -) -{ - rtems_status_code status; - - if ( !ptr ) - return; - - status = rtems_region_return_segment( RTEMS_Malloc_Heap, ptr ); - if ( status != RTEMS_SUCCESSFUL ) { - errno = EINVAL; - assert( 0 ); - } -} - -/* - * "Reentrant" versions of the above routines implemented above. - */ - -#ifdef RTEMS_NEWLIB -void *malloc_r( - struct _reent *ignored, - size_t size -) -{ - return malloc( size ); -} - -void *calloc_r( - size_t nelem, - size_t elsize -) -{ - return calloc( nelem, elsize ); -} - -void *realloc_r( - void *ptr, - size_t size -) -{ - return realloc_r( ptr, size ); -} - -void free_r( - void *ptr -) -{ - free( ptr ); -} -#endif - diff --git a/cpukit/libcsupport/src/newlibc.c b/cpukit/libcsupport/src/newlibc.c deleted file mode 100644 index 3c5e58b67c..0000000000 --- a/cpukit/libcsupport/src/newlibc.c +++ /dev/null @@ -1,292 +0,0 @@ -/* - * @(#)newlibc.c 1.8 - 95/04/25 - * - */ - -#if defined(RTEMS_NEWLIB) - -/* - * File: $RCSfile$ - * Project: PixelFlow - * Created: 94/12/7 - * Revision: $Revision$ - * Last Mod: $Date$ - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * Description: - * Implementation of hooks for the CYGNUS newlib libc - * These hooks set things up so that: - * '_REENT' is switched at task switch time. - * - * - * TODO: - * - * NOTE: - * - * $Id$ - * - */ - -#include -#include -#include /* for free() */ -#include /* for memset() */ - -#include /* for extern of _REENT (aka _impure_ptr) */ - -#include "internal.h" - -#define LIBC_NOTEPAD RTEMS_NOTEPAD_LAST - - -int libc_reentrant; /* do we think we are reentrant? */ -struct _reent libc_global_reent = _REENT_INIT(libc_global_reent);; - -/* - * CYGNUS newlib routine that does atexit() processing and flushes - * stdio streams - * undocumented - */ - -extern void _wrapup_reent(struct _reent *); -extern void _reclaim_reent(struct _reent *); - -void -libc_wrapup(void) -{ - _wrapup_reent(0); - if (_REENT != &libc_global_reent) - { - _wrapup_reent(&libc_global_reent); -#if 0 - /* don't reclaim this one, just in case we do printfs */ - /* on our way out to ROM */ - _reclaim_reent(&libc_global_reent); -#endif - _REENT = &libc_global_reent; - } -} - - -rtems_extension -libc_create_hook(rtems_tcb *current_task, - rtems_tcb *creating_task) -{ - MY_task_set_note(creating_task, LIBC_NOTEPAD, 0); -} - -/* - * Called for all user TASKS (system tasks are SYSI and IDLE) - */ - -rtems_extension -libc_start_hook(rtems_tcb *current_task, - rtems_tcb *starting_task) -{ - struct _reent *ptr; - - /* NOTE: our malloc is reentrant without a reent ptr since - * it is based on region manager - */ - - ptr = (struct _reent *) malloc(sizeof(struct _reent)); - - /* GCC extension: structure constants */ - *ptr = (struct _reent) _REENT_INIT((*ptr)); - - MY_task_set_note(starting_task, LIBC_NOTEPAD, (rtems_unsigned32) ptr); -} - -rtems_extension -libc_switch_hook(rtems_tcb *current_task, - rtems_tcb *heir_task) -{ - rtems_unsigned32 impure_value; - - /* XXX We can't use rtems_task_set_note() here since SYSI task has a - * tid of 0, which is treated specially (optimized, actually) - * by rtems_task_set_note - */ - - impure_value = (rtems_unsigned32) _REENT; - MY_task_set_note(current_task, LIBC_NOTEPAD, impure_value); - - _REENT = (struct _reent *) MY_task_get_note(heir_task, LIBC_NOTEPAD); - -} - -/* - * Function: libc_delete_hook - * Created: 94/12/10 - * - * Description: - * Called when a task is deleted. - * Must restore the new lib reentrancy state for the new current - * task. - * - * Parameters: - * - * - * Returns: - * - * - * Side Effects: - * - * Notes: - * - * - * Deficiencies/ToDo: - * - * - */ -rtems_extension -libc_delete_hook(rtems_tcb *current_task, - rtems_tcb *deleted_task) -{ - struct _reent *ptr; - - /* - * The reentrancy structure was allocated by newlib using malloc() - */ - - if (current_task == deleted_task) - { - ptr = _REENT; - } - else - { - ptr = (struct _reent *) MY_task_get_note(deleted_task, LIBC_NOTEPAD); - } - - if (ptr) - { - _wrapup_reent(ptr); - _reclaim_reent(ptr); - } - - MY_task_set_note(deleted_task, LIBC_NOTEPAD, 0); - - /* - * Require the switch back to another task to install its own - */ - - if (current_task == deleted_task) - { - _REENT = 0; - } -} - -/* - * Function: libc_init - * Created: 94/12/10 - * - * Description: - * Init libc for CYGNUS newlib - * Set up _REENT to use our global libc_global_reent. - * (newlib provides a global of its own, but we prefer our - * own name for it) - * - * If reentrancy is desired (which it should be), then - * we install the task extension hooks to maintain the - * newlib reentrancy global variable _REENT on task - * create, delete, switch, exit, etc. - * - * Parameters: - * reentrant non-zero if reentrant library desired. - * - * Returns: - * - * Side Effects: - * installs libc extensions if reentrant. - * - * Notes: - * - * - * Deficiencies/ToDo: - * - */ - -void -libc_init(int reentrant) -{ - rtems_extensions_table libc_extension; - rtems_id extension_id; - rtems_status_code rc; - - _REENT = &libc_global_reent; - - if (reentrant) - { - memset(&libc_extension, 0, sizeof(libc_extension)); - - libc_extension.rtems_task_create = libc_create_hook; - libc_extension.rtems_task_start = libc_start_hook; - libc_extension.task_switch = libc_switch_hook; - libc_extension.rtems_task_delete = libc_delete_hook; - - rc = rtems_extension_create(rtems_build_name('L', 'I', 'B', 'C'), - &libc_extension, &extension_id); - if (rc != RTEMS_SUCCESSFUL) - rtems_fatal_error_occurred(rc); - - libc_reentrant = reentrant; - } -} - - -void -exit(int status) -{ - libc_wrapup(); - rtems_shutdown_executive(status); -} - - -/* - * Function: _exit - * Created: 94/12/10 - * - * Description: - * Called from exit() after it does atexit() processing and stdio fflush's - * - * called from bottom of exit() to really delete the task. - * If we are using reentrant libc, then let the delete extension - * do all the work, otherwise if a shutdown is in progress, - * then just do it. - * - * Parameters: - * exit status - * - * Returns: - * does not return - * - * Side Effects: - * - * Notes: - * - * - * Deficiencies/ToDo: - * - * - */ - -#ifndef RTEMS_UNIX -void _exit(int status) -{ - rtems_shutdown_executive(status); -} -#endif - -#endif diff --git a/cpukit/libcsupport/src/no_libc.c b/cpukit/libcsupport/src/no_libc.c deleted file mode 100644 index 43a91eb30e..0000000000 --- a/cpukit/libcsupport/src/no_libc.c +++ /dev/null @@ -1,45 +0,0 @@ -#if !defined(RTEMS_LIBC) && !defined(RTEMS_NEWLIB) && !defined(RTEMS_UNIX) - -/* no_libc.h - * - * This file contains stubs for the reentrancy hooks when - * an unknown C library is used. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "libcsupport.h" -#include "internal.h" - -#include /* for free() */ - -void -libc_init(int reentrant) -{ -} - -void libc_suspend_main(void) -{ -} - - -void libc_global_exit(rtems_unsigned32 code) -{ -} - -void _exit(int status) -{ -} - -#endif diff --git a/cpukit/libcsupport/src/unixlibc.c b/cpukit/libcsupport/src/unixlibc.c deleted file mode 100644 index 74b4eea360..0000000000 --- a/cpukit/libcsupport/src/unixlibc.c +++ /dev/null @@ -1,7 +0,0 @@ -#if defined(RTEMS_UNIXLIB) - -void libc_init(int reentrant) -{ -} - -#endif diff --git a/cpukit/libmisc/README b/cpukit/libmisc/README deleted file mode 100644 index 6825898121..0000000000 --- a/cpukit/libmisc/README +++ /dev/null @@ -1,16 +0,0 @@ -# -# $Id$ -# - -This directory contains for the "miscellaneous" library. Currently -the only item in this library is a user extension set which checks -for a task "blowing" it's stack. - -The following ideas have been mentioned for items which could go -in this library, but this list is not all inclusive: - - + Workspace Consistency Checker - + Task Execution Time Monitor - -The intent of this library is to provide a home for useful utility routines -which are dependent upon RTEMS. diff --git a/cpukit/libmisc/monitor/README b/cpukit/libmisc/monitor/README deleted file mode 100644 index cae39d593c..0000000000 --- a/cpukit/libmisc/monitor/README +++ /dev/null @@ -1,7 +0,0 @@ -# -# $Id$ -# - -This is a snapshot of a work in process. It is the beginnings of a -debug monitor task and trap handler which is tasking aware. - diff --git a/cpukit/libmisc/monitor/mon-monitor.c b/cpukit/libmisc/monitor/mon-monitor.c deleted file mode 100644 index aa466143f9..0000000000 --- a/cpukit/libmisc/monitor/mon-monitor.c +++ /dev/null @@ -1,307 +0,0 @@ -/* - * @(#)monitor.c 1.6 - 95/04/24 - * - */ - -/* - * mon-task.c - * - * Description: - * RTEMS monitor task - * - * - * - * TODO: - * add pause command (monitor sleeps for 'n' ticks, then wakes up) - * - */ - -#include -/* #include */ - -#include "symbols.h" -#include "monitor.h" - -#include -#include -#include -#include - -#define STREQ(a,b) (strcmp(a,b) == 0) - -/* set by trap handler */ -extern rtems_tcb *debugger_interrupted_task; -extern rtems_context *debugger_interrupted_task_context; -extern rtems_unsigned32 debugger_trap; - -/* our task id needs to be public so any debugger can resume us */ -rtems_unsigned32 rtems_monitor_task_id; - - -rtems_symbol_table_t *rtems_monitor_symbols; - - -#ifndef MONITOR_PROMPT -#define MONITOR_PROMPT "rtems> " -#endif - -#define MONITOR_WAKEUP_EVENT RTEMS_EVENT_0 - -/* - * Function: rtems_monitor_init - * - * Description: - * Create the RTEMS monitor task - * - * Parameters: - * 'monitor_suspend' arg is passed as initial arg to monitor task - * If TRUE, monitor will suspend itself as it starts up. Otherwise - * it will begin its command loop. - * - * Returns: - * - * - * Side Effects: - * - * - * Notes: - * - * - * Deficiencies/ToDo: - * - * - */ - -/* - * make_argv(cp): token-count - * Break up the command line in 'cp' into global argv[] and argc (return - * value). - */ - -int -rtems_monitor_make_argv( - char *cp, - int *argc_p, - char **argv) -{ - int argc = 0; - - while ((cp = strtok(cp, " \t\n\r"))) - { - argv[argc++] = cp; - cp = (char *) NULL; - } - argv[argc] = (char *) NULL; /* end of argv */ - - return *argc_p = argc; -} - -void -rtems_monitor_init(rtems_boolean monitor_suspend) -{ - rtems_status_code status; - - status = rtems_task_create(rtems_build_name('R', 'M', 'O', 'N'), - 1, 0/*stack*/, RTEMS_NO_PREEMPT | RTEMS_INTERRUPT_LEVEL(0), RTEMS_DEFAULT_ATTRIBUTES, &rtems_monitor_task_id); - if (status != RTEMS_SUCCESSFUL) - { - printf("could not create monitor task\n"); - goto done; - } - - rtems_monitor_symbols_loadup(); - - status = rtems_task_start(rtems_monitor_task_id, rtems_monitor_task, monitor_suspend); - if (status != RTEMS_SUCCESSFUL) - { - printf("could not start monitor!\n"); - goto done; - } - -done: -} - -rtems_status_code -rtems_monitor_suspend(rtems_interval timeout) -{ - rtems_event_set event_set; - rtems_status_code status; - - status = rtems_event_receive(MONITOR_WAKEUP_EVENT, RTEMS_DEFAULT_OPTIONS, timeout, &event_set); - return status; -} - -void -rtems_monitor_wakeup(void) -{ - rtems_status_code status; - - status = rtems_event_send(rtems_monitor_task_id, MONITOR_WAKEUP_EVENT); -} - - -/* - * Read and break up a monitor command - * - * We have to loop on the gets call, since it will return NULL under UNIX - * RTEMS when we get a signal (eg: SIGALRM). - */ - -int -rtems_monitor_read_command(char *command, - int *argc, - char **argv) -{ - printf("%s", MONITOR_PROMPT); fflush(stdout); - while (gets(command) == (char *) 0) - ; - return rtems_monitor_make_argv(command, argc, argv); -} - -void -rtems_monitor_task(rtems_task_argument monitor_suspend) -{ - rtems_tcb *debugee = 0; - char command[513]; - rtems_context *rp; - rtems_context_fp *fp; - char *cp; - int argc; - char *argv[64]; - - if ((rtems_boolean) monitor_suspend) - (void) rtems_monitor_suspend(RTEMS_NO_TIMEOUT); - - for (;;) - { - extern rtems_tcb * _Thread_Executing; - debugee = _Thread_Executing; - rp = &debugee->Registers; - fp = (rtems_context_fp *) debugee->fp_context; /* possibly 0 */ - - if (0 == rtems_monitor_read_command(command, &argc, argv)) - continue; - - if (STREQ(argv[0], "quit")) - rtems_monitor_suspend(RTEMS_NO_TIMEOUT); - else if (STREQ(argv[0], "pause")) - rtems_monitor_suspend(1); - -#ifdef CPU_INVOKE_DEBUGGER - else if (STREQ(argv[0], "debug")) - { - CPU_INVOKE_DEBUGGER; - } -#endif - else if (STREQ(argv[0], "symbol")) - { - char *symbol; - char *value; - - if (argc != 3) - { - printf("usage: symbol symname symvalue\n"); - continue; - } - - symbol = argv[1]; - value = argv[2]; - if (symbol && value) - { - rtems_symbol_t *sp; - sp = rtems_symbol_create(rtems_monitor_symbols, - symbol, - (rtems_unsigned32) strtoul(value, 0, 16)); - if (sp) - printf("symbol defined is at %p\n", sp); - else - printf("could not define symbol\n"); - } - else - printf("parsing error\n"); - } - else - { - printf("Unrecognized command: '%s'\n", argv[0]); - } - } -} - -/* - * Function: rtems_monitor_symbols_loadup - * - * Description: - * Create and load the monitor's symbol table. - * We are reading the output format of 'gnm' which looks like this: - * - * 400a7068 ? _Rate_monotonic_Information - * 400a708c ? _Thread_Dispatch_disable_level - * 400a7090 ? _Configuration_Table - * - * - * We ignore the type field. - * - * Parameters: - * - * - * Returns: - * - * - * Side Effects: - * Creates and fills in 'rtems_monitor_symbols' table - * - * Notes: - * - * - * Deficiencies/ToDo: - * Someday this should know BFD - * Maybe we could get objcopy to just copy the symbol areas - * and copy that down. - * - */ - -void -rtems_monitor_symbols_loadup(void) -{ - FILE *fp; - char buffer[128]; - - rtems_monitor_symbols = rtems_symbol_table_create(10); - if (rtems_monitor_symbols == 0) - return; - - fp = fdopen(8, "r"); - if (fp == 0) - return; - - while (fgets(buffer, sizeof(buffer) - 1, fp)) - { - char *symbol; - char *value; - char *ignored_type; - - value = strtok(buffer, " \t\n"); - ignored_type = strtok(0, " \t\n"); - symbol = strtok(0, " \t\n"); - - if (symbol && ignored_type && value) - { - rtems_symbol_t *sp; - sp = rtems_symbol_create(rtems_monitor_symbols, - symbol, - (rtems_unsigned32) strtoul(value, 0, 16)); - if (sp == 0) - { - printf("could not define symbol\n"); - goto done; - } - } - else - { - printf("parsing error\n"); - goto done; - } - } - -done: -} diff --git a/cpukit/libmisc/monitor/mon-symbols.c b/cpukit/libmisc/monitor/mon-symbols.c deleted file mode 100644 index 58d35befa1..0000000000 --- a/cpukit/libmisc/monitor/mon-symbols.c +++ /dev/null @@ -1,327 +0,0 @@ -/* - * @(#)symbols.c 1.3 - 95/04/24 - * - */ - -/* #define qsort _quicksort */ - -/* - * File: symbols.c - * - * Description: - * Symbol table manager for the RTEMS monitor. - * These routines may be used by other system resources also. - * - * - * TODO: - */ - -#include -#include -#include -#include - -#include "symbols.h" - -extern rtems_symbol_table_t *rtems_monitor_symbols; - -#ifdef RTEMS_DEBUG -#define CHK_ADR_PTR(p) \ -do { \ - if (((p) < rtems_monitor_symbols->addresses) || \ - ((p) >= (rtems_monitor_symbols->addresses + rtems_monitor_symbols->next))) \ - { \ - printf("bad address pointer %p\n", (p)); \ - rtems_fatal_error_occurred(RTEMS_INVALID_ADDRESS); \ - } \ -} while (0) - -#define CHK_NAME_PTR(p) \ -do { \ - if (((p) < rtems_monitor_symbols->symbols) || \ - ((p) >= (rtems_monitor_symbols->symbols + rtems_monitor_symbols->next))) \ - { \ - printf("bad symbol pointer %p\n", (p)); \ - rtems_fatal_error_occurred(RTEMS_INVALID_ADDRESS); \ - } \ -} while (0) -#else -#define CHK_ADR_PTR(p) -#define CHK_NAME_PTR(p) -#endif - -rtems_symbol_table_t * -rtems_symbol_table_create() -{ - rtems_symbol_table_t *table; - - table = (rtems_symbol_table_t *) malloc(sizeof(rtems_symbol_table_t)); - memset((void *) table, 0, sizeof(*table)); - - table->growth_factor = 30; /* 30 percent */ - - return table; -} - -void -rtems_symbol_table_destroy(rtems_symbol_table_t *table) -{ - rtems_symbol_string_block_t *p, *pnext; - - if (table) - { - if (table->addresses) - (void) free(table->addresses); - table->addresses = 0; - - if (table->symbols) - (void) free(table->symbols); - table->symbols = 0; - - p = table->string_buffer_head; - while (p) - { - pnext = p->next; - free(p); - p = pnext; - } - table->string_buffer_head = 0; - table->string_buffer_current = 0; - - free(table); - } -} - -rtems_symbol_t * -rtems_symbol_create( - rtems_symbol_table_t *table, - char *name, - rtems_unsigned32 value - ) -{ - int symbol_length; - size_t newsize; - rtems_symbol_t *sp; - - symbol_length = strlen(name) + 1; /* include '\000' in length */ - - /* need to grow the table? */ - if (table->next >= table->size) - { - if (table->size == 0) - newsize = 100; - else - newsize = table->size + (table->size / (100 / table->growth_factor)); - - table->addresses = (rtems_symbol_t *) realloc((void *) table->addresses, newsize * sizeof(rtems_symbol_t)); - if (table->addresses == 0) /* blew it; lost orig */ - goto failed; - - table->symbols = (rtems_symbol_t *) realloc((void *) table->symbols, newsize * sizeof(rtems_symbol_t)); - if (table->symbols == 0) /* blew it; lost orig */ - goto failed; - - table->size = newsize; - } - - sp = &table->addresses[table->next]; - sp->value = value; - - /* Have to add it to string pool */ - /* need to grow pool? */ - - if ((table->string_buffer_head == 0) || - (table->strings_next + symbol_length) >= SYMBOL_STRING_BLOCK_SIZE) - { - rtems_symbol_string_block_t *p; - - p = (rtems_symbol_string_block_t *) malloc(sizeof(rtems_symbol_string_block_t)); - if (p == 0) - goto failed; - p->next = 0; - if (table->string_buffer_head == 0) - table->string_buffer_head = p; - else - table->string_buffer_current->next = p; - table->string_buffer_current = p; - - table->strings_next = 0; - } - - sp->name = table->string_buffer_current->buffer + table->strings_next; - (void) strcpy(sp->name, name); - - table->strings_next += symbol_length; - - table->symbols[table->next] = *sp; - - table->sorted = 0; - table->next++; - - return sp; - -/* XXX Not sure what to do here. We've possibly destroyed the initial - symbol table due to realloc failure */ -failed: - return 0; -} - -/* - * Qsort entry point for compare by address - */ - -int -rtems_symbol_compare(const void *e1, - const void *e2) -{ - rtems_symbol_t *s1, *s2; - s1 = (rtems_symbol_t *) e1; - s2 = (rtems_symbol_t *) e2; - - CHK_ADR_PTR(s1); - CHK_ADR_PTR(s2); - - if (s1->value < s2->value) - return -1; - if (s1->value > s2->value) - return 1; - return 0; -} - -/* - * Qsort entry point for compare by string name (case independent) - */ - -int -rtems_symbol_string_compare(const void *e1, - const void *e2) -{ - rtems_symbol_t *s1, *s2; - s1 = (rtems_symbol_t *) e1; - s2 = (rtems_symbol_t *) e2; - - CHK_NAME_PTR(s1); - CHK_NAME_PTR(s2); - - return strcasecmp(s1->name, s2->name); -} - - -/* - * Sort the symbol table using qsort - */ - -void -rtems_symbol_sort(rtems_symbol_table_t *table) -{ -#ifdef simhppa - printf("Sorting symbols ... "); /* so slow we need a msg */ - fflush(stdout); -#endif - - qsort((void *) table->addresses, (size_t) table->next, - sizeof(rtems_symbol_t), rtems_symbol_compare); - - qsort((void *) table->symbols, (size_t) table->next, - sizeof(rtems_symbol_t), rtems_symbol_string_compare); - -#ifdef simhppa - /* so slow we need a msg */ - printf("done\n"); -#endif - - table->sorted = 1; -} - -/* - * Search the symbol table by address - * This code based on CYGNUS newlib bsearch, but changed - * to allow for finding closest symbol <= key - */ - -rtems_symbol_t * -rtems_symbol_value_lookup( - rtems_symbol_table_t *table, - rtems_unsigned32 value - ) -{ - rtems_symbol_t *sp; - rtems_symbol_t *base; - rtems_symbol_t *best = 0; - rtems_unsigned32 distance; - rtems_unsigned32 best_distance = ~0; - rtems_unsigned32 elements; - - if ((table == 0) || (table->size == 0)) - return 0; - - if (table->sorted == 0) - rtems_symbol_sort(table); - - base = table->addresses; - elements = table->next; - - while (elements) - { - sp = base + (elements / 2); - if (value < sp->value) - elements /= 2; - else if (value > sp->value) - { - distance = value - sp->value; - if (distance < best_distance) - { - best_distance = distance; - best = sp; - } - base = sp + 1; - elements = (elements / 2) - (elements % 2 ? 0 : 1); - } - else - return sp; - } - - if (value == base->value) - return base; - - return best; -} - -/* - * Search the symbol table by string name (case independent) - */ - -rtems_symbol_t * -rtems_symbol_name_lookup( - rtems_symbol_table_t *table, - char *name - ) -{ - rtems_symbol_t *sp = 0; - rtems_symbol_t key; - - if ((table == 0) || (name == 0)) - goto done; - - if (table->sorted == 0) - { - rtems_symbol_sort(table); - } - - /* - * dummy up one for bsearch() - */ - - key.name = name; - key.value = 0; - - sp = (rtems_symbol_t *) bsearch((const void *) &key, - (const void *) table->symbols, - (size_t) table->next, - sizeof(rtems_symbol_t), - rtems_symbol_string_compare); - -done: - return sp; -} - diff --git a/cpukit/libmisc/monitor/monitor.h b/cpukit/libmisc/monitor/monitor.h deleted file mode 100644 index 195aa73695..0000000000 --- a/cpukit/libmisc/monitor/monitor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * @(#)monitor.h 1.2 - 95/04/24 - * - */ - -/* - * File: monitor.h - * - * Description: - * The RTEMS monitor task include file. - * - * - * - * TODO: - * - */ - -#ifndef __MONITOR_H -#define __MONITOR_H - -#ifdef __cplusplus -extern "C" { -#endif - -void rtems_monitor_init(rtems_boolean monitor_suspend); -void rtems_monitor_wakeup(void); -void rtems_monitor_task(rtems_task_argument monitor_suspend); -void rtems_monitor_symbols_loadup(void); - -extern rtems_unsigned32 rtems_monitor_task_id; - -extern rtems_symbol_table_t *rtems_monitor_symbols; - -#ifdef __cplusplus -} -#endif - -#endif /* ! __MONITOR_H */ diff --git a/cpukit/libmisc/monitor/symbols.h b/cpukit/libmisc/monitor/symbols.h deleted file mode 100644 index 680ac6d2cf..0000000000 --- a/cpukit/libmisc/monitor/symbols.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * File: symbols.h - * - * Description: - * Entry points for symbol table routines. - * - * - * - * TODO: - * - */ - -#ifndef _INCLUDE_SYMBOLS_H -#define _INCLUDE_SYMBOLS_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - rtems_unsigned32 value; - char *name; -} rtems_symbol_t; - -#define SYMBOL_STRING_BLOCK_SIZE 4080 -typedef struct rtems_symbol_string_block_s { - struct rtems_symbol_string_block_s *next; - char buffer[SYMBOL_STRING_BLOCK_SIZE]; -} rtems_symbol_string_block_t; - -typedef struct { - - rtems_unsigned32 sorted; /* are symbols sorted right now? */ - - rtems_unsigned32 growth_factor; /* % to grow by when needed */ - - rtems_unsigned32 next; /* next symbol slot to use when adding */ - rtems_unsigned32 size; /* max # of symbols */ - - /* - * Symbol list -- sorted by address (when we do a lookup) - */ - - rtems_symbol_t *addresses; /* symbol array by address */ - - /* - * String list -- sorted by name (when we do a lookup) - * This is a duplicate of the info in table->addresses, but it's - * pretty small, so I don't worry about it. - */ - - rtems_symbol_t *symbols; /* symbol array */ - - /* - * String pool, unsorted, a list of blocks of string data - */ - - rtems_symbol_string_block_t *string_buffer_head; - rtems_symbol_string_block_t *string_buffer_current; - rtems_unsigned32 strings_next; /* next byte to use in this block */ - -} rtems_symbol_table_t; - -void rtems_symbol_table_destroy(rtems_symbol_table_t *table); -rtems_symbol_table_t *rtems_symbol_table_create(); -rtems_symbol_t *rtems_symbol_create(rtems_symbol_table_t *, - char *, rtems_unsigned32); -rtems_symbol_t *rtems_symbol_value_lookup(rtems_symbol_table_t *, - rtems_unsigned32); -rtems_symbol_t *rtems_symbol_name_lookup(rtems_symbol_table_t *, - char *); - -#define rtems_symbol_name(sp) ((sp)->name) -#define rtems_symbol_value(sp) ((sp)->value) - -#ifdef __cplusplus -} -#endif - -#endif /* ! _INCLUDE_SYMBOLS_H */ diff --git a/cpukit/libmisc/stackchk/README b/cpukit/libmisc/stackchk/README deleted file mode 100644 index 20e76f07bc..0000000000 --- a/cpukit/libmisc/stackchk/README +++ /dev/null @@ -1,41 +0,0 @@ -# -# $Id$ -# - -This directory contains a stack bounds checker. It provides two -primary features: - - + check for stack overflow at each context switch - + provides an educated guess at each task's stack usage - -The stack overflow check at context switch works by looking for -a 16 byte pattern at the logical end of the stack to be corrupted. -The "guesser" assumes that the entire stack was prefilled with a known -pattern and assumes that the pattern is still in place if the memory -has not been used as a stack. - -Both of these can be fooled by pushing large holes onto the stack -and not writing to them... or (much more unlikely) writing the -magic patterns into memory. - -This code has not been extensively tested. It is provided as a tool -for RTEMS users to catch the most common mistake in multitasking -systems ... too little stack space. Suggestions and comments are appreciated. - -NOTES: - -1. Stack usage information is questionable on CPUs which push - large holes on stack. - -2. The stack checker has a tendency to generate a fault when - trying to print the helpful diagnostic message. If it comes - out, congratulations. If not, then the variable Stack_check_Blown_task - contains a pointer to the TCB of the offending task. This - is usually enough to go on. - -FUTURE: - -1. Determine how/if gcc will generate stack probe calls and support that. - -2. Get accurate stack usage numbers on i960.. it pushes very large - holes on the stack. diff --git a/cpukit/libmisc/stackchk/check.c b/cpukit/libmisc/stackchk/check.c deleted file mode 100644 index 8b923f5c02..0000000000 --- a/cpukit/libmisc/stackchk/check.c +++ /dev/null @@ -1,439 +0,0 @@ -/* - * Stack Overflow Check User Extension Set - * - * NOTE: This extension set automatically determines at - * initialization time whether the stack for this - * CPU grows up or down and installs the correct - * extension routines for that direction. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - * - */ - -#include -#include -#include -#include -#include -#include -#ifdef XXX_RTEMS_H_FIXED -#include -#else -#include -extern rtems_configuration_table BSP_Configuration; -#endif - -#include -#include -#include -#include - -#include "stackchk.h" -#include "internal.h" - -/* - * This variable contains the name of the task which "blew" the stack. - * It is NULL if the system is all right. - */ - -Thread_Control *Stack_check_Blown_task; - -/* - * The extension table for the stack checker. - */ - -rtems_extensions_table Stack_check_Extension_table = { - Stack_check_Create_extension, /* rtems_task_create */ - 0, /* rtems_task_start */ - 0, /* rtems_task_restart */ - 0, /* rtems_task_delete */ - Stack_check_Switch_extension, /* task_switch */ - Stack_check_Begin_extension, /* task_begin */ - 0, /* task_exitted */ - Stack_check_Fatal_extension, /* fatal */ -}; - -/* - * The "magic pattern" used to mark the end of the stack. - */ - -Stack_check_Control Stack_check_Pattern; - -/* - * Where the pattern goes in the stack area is dependent upon - * whether the stack grow to the high or low area of the memory. - * - */ - -#if ( CPU_STACK_GROWS_UP == TRUE ) - -#define Stack_check_Get_pattern_area( _the_stack ) \ - ((Stack_check_Control *) \ - ((_the_stack)->area + (_the_stack)->size - sizeof( Stack_check_Control ) )) - -#define Stack_check_Calculate_used( _low, _size, _high_water ) \ - ((_high_water) - (_low)) - -#define Stack_check_usable_stack_start(_the_stack) \ - ((_the_stack)->area) - -#else - -#define Stack_check_Get_pattern_area( _the_stack ) \ - ((Stack_check_Control *) ((_the_stack)->area + HEAP_OVERHEAD)) - -#define Stack_check_Calculate_used( _low, _size, _high_water) \ - ( ((_low) + (_size)) - (_high_water) ) - -#define Stack_check_usable_stack_start(_the_stack) \ - ((_the_stack)->area + sizeof(Stack_check_Control)) - -#endif - -#define Stack_check_usable_stack_size(_the_stack) \ - ((_the_stack)->size - sizeof(Stack_check_Control)) - - -/* - * Do we have an interrupt stack? - * XXX it would sure be nice if the interrupt stack were also - * stored in a "stack" structure! - */ - - -Stack_Control stack_check_interrupt_stack; - -/* - * Fill an entire stack area with BYTE_PATTERN. - * This will be used by a Fatal extension to check for - * amount of actual stack used - */ - -void -stack_check_dope_stack(Stack_Control *stack) -{ - memset(stack->area, BYTE_PATTERN, stack->size); -} - - -/*PAGE - * - * Stack_check_Initialize - */ - -unsigned32 stack_check_initialized = 0; - -void Stack_check_Initialize( void ) -{ - rtems_status_code status; - Objects_Id id_ignored; - unsigned32 *p; - - if (stack_check_initialized) - return; - - /* - * Dope the pattern and fill areas - */ - - for ( p = Stack_check_Pattern.pattern; - p < &Stack_check_Pattern.pattern[PATTERN_SIZE_WORDS]; - p += 4 - ) - { - p[0] = 0xFEEDF00D; /* FEED FOOD to BAD DOG */ - p[1] = 0x0BAD0D06; - p[2] = 0xDEADF00D; /* DEAD FOOD GOOD DOG */ - p[3] = 0x600D0D06; - }; - - status = rtems_extension_create( - rtems_build_name( 'S', 'T', 'C', 'K' ), - &Stack_check_Extension_table, - &id_ignored - ); - assert ( status == RTEMS_SUCCESSFUL ); - - Stack_check_Blown_task = 0; - - /* - * If installed by a task, that task will not get setup properly - * since it missed out on the create hook. This will cause a - * failure on first switch out of that task. - * So pretend here that we actually ran create and begin extensions. - */ - - if (_Thread_Executing) - { - Stack_check_Create_extension(_Thread_Executing, _Thread_Executing); - } - - /* - * If appropriate, setup the interrupt stack for high water testing - * also. - */ - if (_CPU_Interrupt_stack_low && _CPU_Interrupt_stack_high) - { - stack_check_interrupt_stack.area = _CPU_Interrupt_stack_low; - stack_check_interrupt_stack.size = _CPU_Interrupt_stack_high - - _CPU_Interrupt_stack_low; - - stack_check_dope_stack(&stack_check_interrupt_stack); - } - - stack_check_initialized = 1; -} - -/*PAGE - * - * Stack_check_Create_extension - */ - -void Stack_check_Create_extension( - Thread_Control *running, - Thread_Control *the_thread -) -{ - if (the_thread && (the_thread != _Thread_Executing)) - stack_check_dope_stack(&the_thread->Start.Initial_stack); -} - -/*PAGE - * - * Stack_check_Begin_extension - */ - -void Stack_check_Begin_extension( - Thread_Control *the_thread -) -{ - Stack_check_Control *the_pattern; - - if ( the_thread->Object.id == 0 ) /* skip system tasks */ - return; - - the_pattern = Stack_check_Get_pattern_area(&the_thread->Start.Initial_stack); - - *the_pattern = Stack_check_Pattern; -} - -/*PAGE - * - * Stack_check_report_blown_task - * Report a blown stack. Needs to be a separate routine - * so that interrupt handlers can use this too. - * - * Caller must have set the Stack_check_Blown_task. - * - * NOTE: The system is in a questionable state... we may not get - * the following message out. - */ - -void Stack_check_report_blown_task(void) -{ - Stack_Control *stack; - Thread_Control *running; - - running = Stack_check_Blown_task; - stack = &running->Start.Initial_stack; - - fprintf( - stderr, - "BLOWN STACK!!! Offending task(%p): id=0x%08x; name=0x%08x", - running, - running->Object.id, - running->name); - fflush(stderr); - - if (BSP_Configuration.User_multiprocessing_table) - fprintf( - stderr, - "; node=%d\n", - BSP_Configuration.User_multiprocessing_table->node - ); - else - fprintf(stderr, "\n"); - fflush(stderr); - - fprintf( - stderr, - " stack covers range 0x%08x - 0x%08x (%d bytes)\n", - (unsigned32) stack->area, - (unsigned32) stack->area + stack->size - 1, - (unsigned32) stack->size); - fflush(stderr); - - fprintf( - stderr, - " Damaged pattern begins at 0x%08x and is %d bytes long\n", - (unsigned32) Stack_check_Get_pattern_area(stack), PATTERN_SIZE_BYTES); - fflush(stderr); - - rtems_fatal_error_occurred( (unsigned32) "STACK BLOWN" ); -} - -/*PAGE - * - * Stack_check_Switch_extension - */ - -void Stack_check_Switch_extension( - Thread_Control *running, - Thread_Control *heir -) -{ - if ( running->Object.id == 0 ) /* skip system tasks */ - return; - - if (0 != memcmp( (void *) Stack_check_Get_pattern_area( &running->Start.Initial_stack)->pattern, - (void *) Stack_check_Pattern.pattern, - PATTERN_SIZE_BYTES)) - { - Stack_check_Blown_task = running; - Stack_check_report_blown_task(); - } -} - -void *Stack_check_find_high_water_mark( - const void *s, - size_t n -) -{ - const unsigned32 *base, *ebase; - unsigned32 length; - - base = s; - length = n/4; - -#if ( CPU_STACK_GROWS_UP == TRUE ) - /* - * start at higher memory and find first word that does not - * match pattern - */ - - base += length - 1; - for (ebase = s; base > ebase; base--) - if (*base != U32_PATTERN) - return (void *) base; -#else - /* - * start at lower memory and find first word that does not - * match pattern - */ - - for (ebase = base + length; base < ebase; base++) - if (*base != U32_PATTERN) - return (void *) base; -#endif - - return (void *)0; -} - -/*PAGE - * - * Stack_check_Dump_threads_usage - * Try to print out how much stack was actually used by the task. - * - */ - -void Stack_check_Dump_threads_usage( - Thread_Control *the_thread -) -{ - unsigned32 size, used; - void *low; - void *high_water_mark; - Stack_Control *stack; - - if ( !the_thread ) - return; - - /* - * XXX HACK to get to interrupt stack - */ - - if (the_thread == (Thread_Control *) -1) - { - if (stack_check_interrupt_stack.area) - { - stack = &stack_check_interrupt_stack; - the_thread = 0; - } - else - return; - } - else - stack = &the_thread->Start.Initial_stack; - - low = Stack_check_usable_stack_start(stack); - size = Stack_check_usable_stack_size(stack); - - high_water_mark = Stack_check_find_high_water_mark(low, size); - - if ( high_water_mark ) - used = Stack_check_Calculate_used( low, size, high_water_mark ); - else - used = 0; - - printf( "0x%08x 0x%08x 0x%08x 0x%08x %8d %8d\n", - the_thread ? the_thread->Object.id : ~0, - the_thread ? the_thread->name : - rtems_build_name('I', 'N', 'T', 'R'), - (unsigned32) stack->area, - (unsigned32) stack->area + (unsigned32) stack->size - 1, - size, - used - ); -} - -/*PAGE - * - * Stack_check_Fatal_extension - */ - -void Stack_check_Fatal_extension( unsigned32 status ) -{ - if (status == 0) - Stack_check_Dump_usage(); -} - - -/*PAGE - * - * Stack_check_Dump_usage - */ - -void Stack_check_Dump_usage( void ) -{ - unsigned32 i; - Thread_Control *the_thread; - unsigned32 hit_running = 0; - - if (stack_check_initialized == 0) - return; - - printf( - " ID NAME LOW HIGH AVAILABLE USED\n" - ); - for ( i=1 ; i<_Thread_Information.maximum ; i++ ) { - the_thread = (Thread_Control *)_Thread_Information.local_table[ i ]; - Stack_check_Dump_threads_usage( the_thread ); - if ( the_thread == _Thread_Executing ) - hit_running = 1; - } - - if ( !hit_running ) - Stack_check_Dump_threads_usage( _Thread_Executing ); - - /* dump interrupt stack info if any */ - Stack_check_Dump_threads_usage((Thread_Control *) -1); -} - diff --git a/cpukit/libmisc/stackchk/internal.h b/cpukit/libmisc/stackchk/internal.h deleted file mode 100644 index 19c9f5e267..0000000000 --- a/cpukit/libmisc/stackchk/internal.h +++ /dev/null @@ -1,94 +0,0 @@ -/* internal.h - * - * This include file contains internal information - * for the RTEMS stack checker. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INTERNAL_STACK_CHECK_h -#define __INTERNAL_STACK_CHECK_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This structure is used to fill in and compare the "end of stack" - * marker pattern. - * pattern area must be a multiple of 4 words. - */ - -#ifdef CPU_STACK_CHECK_SIZE -#define PATTERN_SIZE_WORDS (((CPU_STACK_CHECK_SIZE / 4) + 3) & ~0x3) -#else -#define PATTERN_SIZE_WORDS 4 -#endif - -#define PATTERN_SIZE_BYTES (PATTERN_SIZE_WORDS * 4) - -typedef struct { - unsigned32 pattern[ PATTERN_SIZE_WORDS ]; -} Stack_check_Control; - -/* - * The pattern used to fill the entire stack. - */ - -#define BYTE_PATTERN 0xA5 -#define U32_PATTERN 0xA5A5A5A5 - -/* - * Stack_check_Create_extension - */ - -void Stack_check_Create_extension( - Thread_Control *running, - Thread_Control *the_thread -); - -/* - * Stack_check_Begin_extension - */ - -void Stack_check_Begin_extension( - Thread_Control *the_thread -); - -/* - * Stack_check_Switch_extension - */ - -void Stack_check_Switch_extension( - Thread_Control *running, - Thread_Control *heir -); - -/* - * Stack_check_Fatal_extension - */ - -void Stack_check_Fatal_extension( - unsigned32 -); - -/* - * Stack_check_Dump_usage - */ - -void Stack_check_Dump_usage( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/libmisc/stackchk/stackchk.h b/cpukit/libmisc/stackchk/stackchk.h deleted file mode 100644 index f3281c63fe..0000000000 --- a/cpukit/libmisc/stackchk/stackchk.h +++ /dev/null @@ -1,41 +0,0 @@ -/* stackchk.h - * - * This include file contains information necessary to utilize - * and install the stack checker mechanism. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STACK_CHECK_h -#define __STACK_CHECK_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Stack_check_Initialize - */ - -void Stack_check_Initialize( void ); - -/* - * Stack_check_Dump_usage - */ - -void Stack_check_Dump_usage( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems.h b/cpukit/rtems/include/rtems.h deleted file mode 100644 index d0ab705f57..0000000000 --- a/cpukit/rtems/include/rtems.h +++ /dev/null @@ -1,79 +0,0 @@ -/* rtems.h - * - * This include file contains information about RTEMS executive that - * is required by the application and is CPU independent. It includes - * two (2) CPU dependent files to tailor its data structures for a - * particular processor. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RTEMS_GENERIC_h -#define __RTEMS_RTEMS_GENERIC_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * RTEMS basic type definitions - */ - -typedef unsigned8 rtems_unsigned8; /* unsigned 8-bit value */ -typedef unsigned16 rtems_unsigned16; /* unsigned 16-bit value */ -typedef unsigned32 rtems_unsigned32; /* unsigned 32-bit value */ -typedef unsigned64 rtems_unsigned64; /* unsigned 64-bit value */ - -typedef signed8 rtems_signed8; /* signed 8-bit value */ -typedef signed16 rtems_signed16; /* signed 16-bit value */ -typedef signed32 rtems_signed32; /* signed 32-bit value */ -typedef signed64 rtems_signed64; /* signed 64-bit value */ - -typedef single_precision rtems_single; /* single precision float */ -typedef double_precision rtems_double; /* double precision float */ - -typedef boolean rtems_boolean; - -typedef Objects_Name rtems_name; -typedef Objects_Id rtems_id; - -typedef Context_Control rtems_context; -typedef Context_Control_fp rtems_context_fp; -typedef CPU_Interrupt_frame rtems_interrupt_frame; - -#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/asr.h b/cpukit/rtems/include/rtems/rtems/asr.h deleted file mode 100644 index 44d03f2802..0000000000 --- a/cpukit/rtems/include/rtems/rtems/asr.h +++ /dev/null @@ -1,177 +0,0 @@ -/* asr.h - * - * This include file contains all the constants and structures associated - * with the Asynchronous Signal Handler. This Handler provides the low-level - * support required by the Signal Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ASR_h -#define __RTEMS_ASR_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * - * The following type defines the control block used to manage - * each signal set. - */ - -typedef unsigned32 rtems_signal_set; - -/* - * Return type for ASR Handler - */ - -typedef void rtems_asr; - -/* - * The following type corresponds to the applications asynchronous - * signal processing routine. - */ - -typedef rtems_asr ( *rtems_asr_entry )( - rtems_signal_set - ); - -/* - * - * The following defines the control structure used to manage - * signals. Each thread has a copy of this record. - */ - -typedef struct { - rtems_asr_entry handler; /* address of RTEMS_ASR */ - rtems_mode mode_set; /* RTEMS_ASR mode */ - rtems_signal_set signals_posted; /* signal set */ - rtems_signal_set signals_pending; /* pending signal set */ - unsigned32 nest_level; /* nest level of RTEMS_ASR */ -} ASR_Information; - -/* - * The following constants define the individual signals which may - * be used to compose a signal set. - */ - -#define RTEMS_SIGNAL_0 0x00000001 -#define RTEMS_SIGNAL_1 0x00000002 -#define RTEMS_SIGNAL_2 0x00000004 -#define RTEMS_SIGNAL_3 0x00000008 -#define RTEMS_SIGNAL_4 0x00000010 -#define RTEMS_SIGNAL_5 0x00000020 -#define RTEMS_SIGNAL_6 0x00000040 -#define RTEMS_SIGNAL_7 0x00000080 -#define RTEMS_SIGNAL_8 0x00000100 -#define RTEMS_SIGNAL_9 0x00000200 -#define RTEMS_SIGNAL_10 0x00000400 -#define RTEMS_SIGNAL_11 0x00000800 -#define RTEMS_SIGNAL_12 0x00001000 -#define RTEMS_SIGNAL_13 0x00002000 -#define RTEMS_SIGNAL_14 0x00004000 -#define RTEMS_SIGNAL_15 0x00008000 -#define RTEMS_SIGNAL_16 0x00010000 -#define RTEMS_SIGNAL_17 0x00020000 -#define RTEMS_SIGNAL_18 0x00040000 -#define RTEMS_SIGNAL_19 0x00080000 -#define RTEMS_SIGNAL_20 0x00100000 -#define RTEMS_SIGNAL_21 0x00200000 -#define RTEMS_SIGNAL_22 0x00400000 -#define RTEMS_SIGNAL_23 0x00800000 -#define RTEMS_SIGNAL_24 0x01000000 -#define RTEMS_SIGNAL_25 0x02000000 -#define RTEMS_SIGNAL_26 0x04000000 -#define RTEMS_SIGNAL_27 0x08000000 -#define RTEMS_SIGNAL_28 0x10000000 -#define RTEMS_SIGNAL_29 0x20000000 -#define RTEMS_SIGNAL_30 0x40000000 -#define RTEMS_SIGNAL_31 0x80000000 - -/* - * _ASR_Initialize - * - * DESCRIPTION: - * - * This routine initializes the given RTEMS_ASR information record. - */ - -STATIC INLINE void _ASR_Initialize ( - ASR_Information *information -); - -/* - * _ASR_Swap_signals - * - * DESCRIPTION: - * - * This routine atomically swaps the pending and posted signal - * sets. This is done when the thread alters its mode in such a - * way that the RTEMS_ASR disable/enable flag changes. - */ - -STATIC INLINE void _ASR_Swap_signals ( - ASR_Information *information -); - -/* - * _ASR_Is_null_handler - * - * DESCRIPTION: - * - * This function returns TRUE if the given asr_handler is NULL and - * FALSE otherwise. - */ - -STATIC INLINE boolean _ASR_Is_null_handler ( - rtems_asr_entry asr_handler -); - -/* - * _ASR_Are_signals_pending - * - * DESCRIPTION: - * - * This function returns TRUE if there are signals pending in the - * given RTEMS_ASR information record and FALSE otherwise. - */ - -STATIC INLINE boolean _ASR_Are_signals_pending ( - ASR_Information *information -); - -/* - * _ASR_Post_signals - * - * DESCRIPTION: - * - * This routine posts the given signals into the signal_set - * passed in. The result is returned to the user in signal_set. - * - * NOTE: This must be implemented as a macro. - */ - -STATIC INLINE void _ASR_Post_signals( - rtems_signal_set signals, - rtems_signal_set *signal_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/attr.h b/cpukit/rtems/include/rtems/rtems/attr.h deleted file mode 100644 index 1c59c98dcd..0000000000 --- a/cpukit/rtems/include/rtems/rtems/attr.h +++ /dev/null @@ -1,188 +0,0 @@ -/* attr.h - * - * This include file contains all information about the Object Attributes - * Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ATTRIBUTES_h -#define __RTEMS_ATTRIBUTES_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* types */ - -typedef unsigned32 rtems_attribute; - -/* constants */ - -#define RTEMS_DEFAULT_ATTRIBUTES 0x00000000 - -#define RTEMS_NO_FLOATING_POINT 0x00000000 /* don't use FP HW */ -#define RTEMS_FLOATING_POINT 0x00000001 /* utilize coprocessor */ - -#define RTEMS_LOCAL 0x00000000 /* local resource */ -#define RTEMS_GLOBAL 0x00000002 /* global resource */ - -#define RTEMS_FIFO 0x00000000 /* process RTEMS_FIFO */ -#define RTEMS_PRIORITY 0x00000004 /* process by priority */ - -#define RTEMS_NO_LIMIT 0x00000000 /* unlimited Q entries */ -#define RTEMS_LIMIT 0x00000008 /* limit Q entries */ - -#define RTEMS_COUNTING_SEMAPHORE 0x00000000 -#define RTEMS_BINARY_SEMAPHORE 0x00000010 - -#define RTEMS_NO_INHERIT_PRIORITY 0x00000000 -#define RTEMS_INHERIT_PRIORITY 0x00000020 - -#if ( CPU_HARDWARE_FP == TRUE ) -#define ATTRIBUTES_NOT_SUPPORTED 0 -#else -#define ATTRIBUTES_NOT_SUPPORTED RTEMS_FLOATING_POINT -#endif - -#if ( CPU_ALL_TASKS_ARE_FP == TRUE ) -#define ATTRIBUTES_REQUIRED RTEMS_FLOATING_POINT -#else -#define ATTRIBUTES_REQUIRED 0 -#endif - -/* - * _Attributes_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs initialization for this handler. - * - * NOTE: There is no initialization required in C. Conditional compilation - * takes care of this in C. - */ - -#define _Attributes_Handler_initialization() - -/* - * _Attributes_Set - * - * DESCRIPTION: - * - * This function sets the requested new_attributes in the attribute_set - * passed in. The result is returned to the user. - */ - -STATIC INLINE rtems_attribute _Attributes_Set ( - rtems_attribute new_attributes, - rtems_attribute attribute_set -); - -/* - * _Attributes_Clear - * - * DESCRIPTION: - * - * This function clears the requested new_attributes in the attribute_set - * passed in. The result is returned to the user. - */ - -STATIC INLINE rtems_attribute _Attributes_Clear ( - rtems_attribute attribute_set, - rtems_attribute mask -); - -/* - * _Attributes_Is_floating_point - * - * DESCRIPTION: - * - * This function returns TRUE if the floating point attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_floating_point( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_global - * - * DESCRIPTION: - * - * This function returns TRUE if the global object attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_global( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_priority - * - * DESCRIPTION: - * - * This function returns TRUE if the priority attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_priority( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_limit - * - * DESCRIPTION: - * - * This function returns TRUE if the limited attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_limit( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_binary_semaphore - * - * DESCRIPTION: - * - * This function returns TRUE if the binary semaphore attribute is - * enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_binary_semaphore( - rtems_attribute attribute_set -); - -/* - * _Attributes_Is_inherit_priority - * - * DESCRIPTION: - * - * This function returns TRUE if the priority inheritance attribute - * is enabled in the attribute_set and FALSE otherwise. - */ - -STATIC INLINE boolean _Attributes_Is_inherit_priority( - rtems_attribute attribute_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/clock.h b/cpukit/rtems/include/rtems/rtems/clock.h deleted file mode 100644 index e849ab4f40..0000000000 --- a/cpukit/rtems/include/rtems/rtems/clock.h +++ /dev/null @@ -1,102 +0,0 @@ -/* clock.h - * - * This include file contains all the constants and structures associated - * with the Clock Manager. This manager provides facilities to set, obtain, - * and continually update the current date and time. - * - * This manager provides directives to: - * - * + set the current date and time - * + obtain the current date and time - * + announce a clock tick - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CLOCK_h -#define __RTEMS_CLOCK_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * List of things which can be returned by the rtems_clock_get directive. - */ - -typedef enum { - RTEMS_CLOCK_GET_TOD, - RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH, - RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, - RTEMS_CLOCK_GET_TICKS_PER_SECOND, - RTEMS_CLOCK_GET_TIME_VALUE -} rtems_clock_get_options; - -/* - * Standard flavor style to return TOD in for a rtems_clock_get option. - */ - -typedef struct { - unsigned32 seconds; - unsigned32 microseconds; -} rtems_clock_time_value; - -/* - * rtems_clock_get - * - * DESCRIPTION: - * - * This routine implements the rtems_clock_get directive. It returns - * one of the following: - * + current time of day - * + seconds since epoch - * + ticks since boot - * + ticks per second - */ - -rtems_status_code rtems_clock_get( - rtems_clock_get_options option, - void *time_buffer -); - -/* - * rtems_clock_set - * - * DESCRIPTION: - * - * This routine implements the rtems_clock_set directive. It sets - * the current time of day to that in the time_buffer record. - */ - -rtems_status_code rtems_clock_set( - rtems_time_of_day *time_buffer -); - -/* - * rtems_clock_tick - * - * DESCRIPTION: - * - * This routine implements the rtems_clock_tick directive. It is invoked - * to inform RTEMS of the occurrence of a clock tick. - */ - -rtems_status_code rtems_clock_tick( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/dpmem.h b/cpukit/rtems/include/rtems/rtems/dpmem.h deleted file mode 100644 index 669eb394d8..0000000000 --- a/cpukit/rtems/include/rtems/rtems/dpmem.h +++ /dev/null @@ -1,210 +0,0 @@ -/* dpmem.h - * - * This include file contains all the constants and structures associated - * with the Dual Ported Memory Manager. This manager provides a mechanism - * for converting addresses between internal and external representations - * for multiple dual-ported memory areas. - * - * Directives provided are: - * - * + create a port - * + get ID of a port - * + delete a port - * + convert external to internal address - * + convert internal to external address - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_DUAL_PORTED_MEMORY_h -#define __RTEMS_DUAL_PORTED_MEMORY_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following structure defines the port control block. Each port - * has a control block associated with it. This control block contains - * all information required to support the port related operations. - */ - -typedef struct { - Objects_Control Object; - void *internal_base; /* base internal address */ - void *external_base; /* base external address */ - unsigned32 length; /* length of dual-ported area */ -} Dual_ported_memory_Control; - -/* - * The following define the internal Dual Ported Memory information. - */ - -EXTERN Objects_Information _Dual_ported_memory_Information; - -/* - * _Dual_ported_memory_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Dual_ported_memory_Manager_initialization( - unsigned32 maximum_ports -); - -/* - * rtems_port_create - * - * DESCRIPTION: - * - * This routine implements the rtems_port_create directive. The port - * will have the name name. The port maps onto an area of dual ported - * memory of length bytes which has internal_start and external_start - * as the internal and external starting addresses, respectively. - * It returns the id of the created port in ID. - */ - -rtems_status_code rtems_port_create( - Objects_Name name, - void *internal_start, - void *external_start, - unsigned32 length, - Objects_Id *id -); - -/* - * rtems_port_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_port_ident directive. This directive - * returns the port ID associated with name. If more than one port is - * named name, then the port to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_port_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_port_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_port_delete directive. It deletes - * the port associated with ID. - */ - -rtems_status_code rtems_port_delete( - Objects_Id id -); - -/* - * rtems_port_external_to_internal - * - * DESCRIPTION: - * - * This routine implements the rtems_port_external_to_internal directive. - * It returns the internal port address which maps to the provided - * external port address for the specified port ID. - */ - -rtems_status_code rtems_port_external_to_internal( - Objects_Id id, - void *external, - void **internal -); - -/* - * rtems_port_internal_to_external - * - * DESCRIPTION: - * - * This routine implements the Port_internal_to_external directive. - * It returns the external port address which maps to the provided - * internal port address for the specified port ID. - */ - -rtems_status_code rtems_port_internal_to_external( - Objects_Id id, - void *internal, - void **external -); - -/* - * _Dual_ported_memory_Allocate - * - * DESCRIPTION: - * - * This routine allocates a port control block from the inactive chain - * of free port control blocks. - */ - -STATIC INLINE Dual_ported_memory_Control - *_Dual_ported_memory_Allocate ( void ); - -/* - * _Dual_ported_memory_Free - * - * DESCRIPTION: - * - * This routine frees a port control block to the inactive chain - * of free port control blocks. - */ - -STATIC INLINE void _Dual_ported_memory_Free ( - Dual_ported_memory_Control *the_port -); - -/* - * _Dual_ported_memory_Get - * - * DESCRIPTION: - * - * This function maps port IDs to port control blocks. If ID - * corresponds to a local port, then it returns the_port control - * pointer which maps to ID and location is set to OBJECTS_LOCAL. - * Global ports are not supported, thus if ID does not map to a - * local port, location is set to OBJECTS_ERROR and the_port is - * undefined. - */ - -STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Dual_ported_memory_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_port is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Dual_ported_memory_Is_null( - Dual_ported_memory_Control *the_port -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/event.h b/cpukit/rtems/include/rtems/rtems/event.h deleted file mode 100644 index aeb71b2abd..0000000000 --- a/cpukit/rtems/include/rtems/rtems/event.h +++ /dev/null @@ -1,158 +0,0 @@ -/* event.h - * - * This include file contains the information pertaining to the Event - * Manager. This manager provides a high performance method of communication - * and synchronization. - * - * Directives provided are: - * - * + send an event set to a task - * + receive event condition - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EVENT_h -#define __RTEMS_EVENT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * This constant is passed as the event_in to the - * rtems_event_receive directive to determine which events are pending. - */ - -#define EVENT_CURRENT 0 - -/* - * _Event_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -STATIC INLINE void _Event_Manager_initialization( void ); - -/* - * rtems_event_send - * - * DESCRIPTION: - * - * This routine implements the rtems_event_send directive. It sends - * event_in to the task specified by ID. If the task is blocked - * waiting to receive events and the posting of event_in satisfies - * the task's event condition, then it is unblocked. - */ - -rtems_status_code rtems_event_send ( - Objects_Id id, - rtems_event_set event_in -); - -/* - * rtems_event_receive - * - * DESCRIPTION: - * - * This routine implements the rtems_event_receive directive. This - * directive is invoked when the calling task wishes to receive - * the event_in event condition. One of the fields in the option_set - * parameter determines whether the receive request is satisfied if - * any or all of the events are pending. If the event condition - * is not satisfied immediately, then the task may block with an - * optional timeout of TICKS clock ticks or return immediately. - * This determination is based on another field in the option_set - * parameter. This directive returns the events received in the - * event_out parameter. - */ - -rtems_status_code rtems_event_receive ( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks, - rtems_event_set *event_out -); - -/* - * _Event_Seize - * - * DESCRIPTION: - * - * This routine determines if the event condition event_in is - * satisfied. If so or if the no_wait option is enabled in option_set, - * then the procedure returns immediately. If neither of these - * conditions is true, then the calling task is blocked with an - * optional timeout of ticks clock ticks. - */ - -void _Event_Seize ( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks -); - -/* - * _Event_Surrender - * - * DESCRIPTION: - * - * This routine determines if the event condition of the_thread - * has been satisfied. If so, it unblocks the_thread. - */ - -void _Event_Surrender ( - Thread_Control *the_thread -); - -/* - * _Event_Timeout - * - * DESCRIPTION: - * - * This routine is invoked when a task's event receive request - * has not been satisfied after the specified timeout interval. - * The task represented by ID will be unblocked and its status - * code will be set in it's control block to indicate that a timeout - * has occurred. - */ - -void _Event_Timeout ( - Objects_Id id, - void *ignored -); - -/* - * The following defines the synchronization flag used by the - * Event Manager to insure that signals sent to the currently - * executing thread are received properly. - */ - -EXTERN boolean _Event_Sync; /* event manager sync flag */ - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/eventmp.h b/cpukit/rtems/include/rtems/rtems/eventmp.h deleted file mode 100644 index 9df2ef1e22..0000000000 --- a/cpukit/rtems/include/rtems/rtems/eventmp.h +++ /dev/null @@ -1,147 +0,0 @@ -/* eventmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Event Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EVENT_MP_h -#define __RTEMS_EVENT_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote event operations. - */ - -typedef enum { - EVENT_MP_SEND_REQUEST = 0, - EVENT_MP_SEND_RESPONSE = 1, -} Event_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote event operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Event_MP_Remote_operations operation; - rtems_event_set event_in; -} Event_MP_Packet; - -/* - * _Event_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - * - * This routine is not needed since there are no process - * packets to be sent by this manager. - */ - -/* - * _Event_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Event_MP_Send_request_packet ( - Event_MP_Remote_operations operation, - Objects_Id event_id, - rtems_event_set event_in -); - -/* - * _Event_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Event_MP_Send_response_packet ( - Event_MP_Remote_operations operation, - Thread_Control *the_thread -); - -/* - * - * _Event_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Event_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Event_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Event_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Event_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a event mp packet. - */ - -Event_MP_Packet *_Event_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/eventset.h b/cpukit/rtems/include/rtems/rtems/eventset.h deleted file mode 100644 index a25dabe58b..0000000000 --- a/cpukit/rtems/include/rtems/rtems/eventset.h +++ /dev/null @@ -1,142 +0,0 @@ -/* eventset.h - * - * This include file contains the information pertaining to the - * Event Sets Handler. This handler provides methods for the manipulation - * of event sets which will be sent and received by tasks. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EVENT_SET_h -#define __RTEMS_EVENT_SET_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following defines the type used to control event sets. - */ - -typedef unsigned32 rtems_event_set; - -/* - * The following constants define the individual events which may - * be used to compose an event set. - */ - -#define RTEMS_PENDING_EVENTS 0 /* receive pending events */ -#define RTEMS_ALL_EVENTS 0xFFFFFFFF - -#define RTEMS_EVENT_0 0x00000001 -#define RTEMS_EVENT_1 0x00000002 -#define RTEMS_EVENT_2 0x00000004 -#define RTEMS_EVENT_3 0x00000008 -#define RTEMS_EVENT_4 0x00000010 -#define RTEMS_EVENT_5 0x00000020 -#define RTEMS_EVENT_6 0x00000040 -#define RTEMS_EVENT_7 0x00000080 -#define RTEMS_EVENT_8 0x00000100 -#define RTEMS_EVENT_9 0x00000200 -#define RTEMS_EVENT_10 0x00000400 -#define RTEMS_EVENT_11 0x00000800 -#define RTEMS_EVENT_12 0x00001000 -#define RTEMS_EVENT_13 0x00002000 -#define RTEMS_EVENT_14 0x00004000 -#define RTEMS_EVENT_15 0x00008000 -#define RTEMS_EVENT_16 0x00010000 -#define RTEMS_EVENT_17 0x00020000 -#define RTEMS_EVENT_18 0x00040000 -#define RTEMS_EVENT_19 0x00080000 -#define RTEMS_EVENT_20 0x00100000 -#define RTEMS_EVENT_21 0x00200000 -#define RTEMS_EVENT_22 0x00400000 -#define RTEMS_EVENT_23 0x00800000 -#define RTEMS_EVENT_24 0x01000000 -#define RTEMS_EVENT_25 0x02000000 -#define RTEMS_EVENT_26 0x04000000 -#define RTEMS_EVENT_27 0x08000000 -#define RTEMS_EVENT_28 0x10000000 -#define RTEMS_EVENT_29 0x20000000 -#define RTEMS_EVENT_30 0x40000000 -#define RTEMS_EVENT_31 0x80000000 - - -/* - * The following constant is the value of an event set which - * has no events pending. - */ - -#define EVENT_SETS_NONE_PENDING 0 - -/* - * _Event_sets_Is_empty - * - * DESCRIPTION: - * - * This function returns TRUE if on events are posted in the event_set, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Event_sets_Is_empty( - rtems_event_set the_event_set -); - -/* - * _Event_sets_Post - * - * DESCRIPTION: - * - * This routine posts the given new_events into the event_set - * passed in. The result is returned to the user in event_set. - */ - -STATIC INLINE void _Event_sets_Post( - rtems_event_set the_new_events, - rtems_event_set *the_event_set -); - -/* - * _Event_sets_Get - * - * DESCRIPTION: - * - * This function returns the events in event_condition which are - * set in event_set. - */ - -STATIC INLINE rtems_event_set _Event_sets_Get( - rtems_event_set the_event_set, - rtems_event_set the_event_condition -); - -/* - * _Event_sets_Clear - * - * DESCRIPTION: - * - * This function removes the events in mask from the event_set - * passed in. The result is returned to the user in event_set. - */ - -STATIC INLINE rtems_event_set _Event_sets_Clear( - rtems_event_set the_event_set, - rtems_event_set the_mask -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/intr.h b/cpukit/rtems/include/rtems/rtems/intr.h deleted file mode 100644 index 3669af1ccc..0000000000 --- a/cpukit/rtems/include/rtems/rtems/intr.h +++ /dev/null @@ -1,125 +0,0 @@ -/* intr.h - * - * This include file contains all the constants and structures associated - * with the Interrupt Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_INTERRUPT_h -#define __RTEMS_INTERRUPT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * Interrupt level type - */ - -typedef ISR_Level rtems_interrupt_level; - -/* - * _Interrupt_Manager_initialization - * - * DESCRIPTION: - * - * This routine initializes the interrupt manager. - * - */ - -void _Interrupt_Manager_initialization( void ); - -/* - * rtems_interrupt_catch - * - * DESCRIPTION: - * - * This routine implements the rtems_interrupt_catch directive. This - * directive installs new_isr_handler as the RTEMS interrupt service - * routine for vector. The previous RTEMS interrupt service - * routine is returned in old_isr_handler. - */ - -rtems_status_code rtems_interrupt_catch( - rtems_isr_entry new_isr_handler, - rtems_vector_number vector, - rtems_isr_entry *old_isr_handler -); - -/* - * rtems_interrupt_disable - * - * DESCRIPTION: - * - * This routine disables all maskable interrupts and returns the - * previous level in _isr_cookie. - */ - -#define rtems_interrupt_disable( _isr_cookie ) \ - _ISR_Disable(_isr_cookie) - -/* - * rtems_interrupt_enable - * - * DESCRIPTION: - * - * This routine enables maskable interrupts to the level indicated - * _isr_cookie. - */ - -#define rtems_interrupt_enable( _isr_cookie ) \ - _ISR_Enable(_isr_cookie) - -/* - * rtems_interrupt_flash - * - * DESCRIPTION: - * - * This routine temporarily enables maskable interrupts to the - * level in _isr_cookie before redisabling them. - */ - -#define rtems_interrupt_flash( _isr_cookie ) \ - _ISR_Flash(_isr_cookie) - -/* - * rtems_interrupt_cause - * - * DESCRIPTION: - * - * This routine generates an interrupt. - * - * NOTE: No implementation. - */ - -#define rtems_interrupt_cause( _interrupt_to_cause ) - -/* - * rtems_interrupt_cause - * - * DESCRIPTION: - * - * This routine clears the specified interrupt. - * - * NOTE: No implementation. - */ - -#define rtems_interrupt_clear( _interrupt_to_clear ) - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/message.h b/cpukit/rtems/include/rtems/rtems/message.h deleted file mode 100644 index aefcea3c36..0000000000 --- a/cpukit/rtems/include/rtems/rtems/message.h +++ /dev/null @@ -1,461 +0,0 @@ -/* message.h - * - * This include file contains all the constants and structures associated - * with the Message Queue Manager. This manager provides a mechanism for - * communication and synchronization between tasks using messages. - * - * Directives provided are: - * - * + create a queue - * + get ID of a queue - * + delete a queue - * + put a message at the rear of a queue - * + put a message at the front of a queue - * + broadcast N messages to a queue - * + receive message from a queue - * + flush all messages on a queue - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MESSAGE_QUEUE_h -#define __RTEMS_MESSAGE_QUEUE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following defines the data types needed to manipulate - * the contents of message buffers. - */ - -typedef struct { - unsigned32 field1; - unsigned32 field2; - unsigned32 field3; - unsigned32 field4; -} Message_queue_Buffer; - -/* - * The following records define the organization of a message - * buffer. - */ - -typedef struct { - Chain_Node Node; - Message_queue_Buffer Contents; -} Message_queue_Buffer_control; - -/* - * The following records define the control block used to manage - * each message queue. - */ - -typedef struct { - Objects_Control Object; - Thread_queue_Control Wait_queue; - rtems_attribute attribute_set; - unsigned32 maximum_pending_messages; - unsigned32 number_of_pending_messages; - Chain_Control Pending_messages; -} Message_queue_Control; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Message_queue_Information; - -/* - * The following defines the data structures used to - * manage the pool of inactive message buffers. - */ - -EXTERN Chain_Control _Message_queue_Inactive_messages; - -/* - * The following enumerated type details the modes in which a message - * may be submitted to a message queue. The message may be posted - * in a send or urgent fashion. - */ - -typedef enum { - MESSAGE_QUEUE_SEND_REQUEST = 0, - MESSAGE_QUEUE_URGENT_REQUEST = 1 -} Message_queue_Submit_types; - -/* - * _Message_queue_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Message_queue_Manager_initialization( - unsigned32 maximum_message_queues, - unsigned32 maximum_messages -); - -/* - * rtems_message_queue_create - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_create directive. The - * message queue will have the name name. If the attribute_set indicates - * that the message queue is to be limited in the number of messages - * that can be outstanding, then count indicates the maximum number of - * messages that will be held. It returns the id of the created - * message queue in ID. - */ - -rtems_status_code rtems_message_queue_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_message_queue_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_ident directive. - * This directive returns the message queue ID associated with NAME. - * If more than one message queue is named name, then the message - * queue to which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the message queue named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_message_queue_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_message_queue_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_delete directive. The - * message queue indicated by ID is deleted. - */ - -rtems_status_code rtems_message_queue_delete( - Objects_Id id -); - -/* - * rtems_message_queue_send - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_send directive. - * This directive sends the message buffer to the message queue - * indicated by ID. If one or more tasks is blocked waiting - * to receive a message from this message queue, then one will - * receive the message. The task selected to receive the - * message is based on the task queue discipline algorithm in - * use by this particular message queue. If no tasks are waiting, - * then the message buffer will be placed at the rear of the - * chain of pending messages for this message queue. - */ - -rtems_status_code rtems_message_queue_send( - Objects_Id id, - void *buffer -); - -/* - * rtems_message_queue_urgent - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_send directive. - * This directive sends the message buffer to the message queue - * indicated by ID. If one or more tasks is blocked waiting - * to receive a message from this message queue, then one will - * receive the message. The task selected to receive the - * message is based on the task queue discipline algorithm in - * use by this particular message queue. If no tasks are waiting, - * then the message buffer will be placed at the rear of the - * chain of pending messages for this message queue. - */ - -rtems_status_code rtems_message_queue_urgent( - Objects_Id id, - void *buffer -); - -/* - * rtems_message_queue_broadcast - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_send directive. - * This directive sends the message buffer to the message queue - * indicated by ID. If one or more tasks is blocked waiting - * to receive a message from this message queue, then one will - * receive the message. The task selected to receive the - * message is based on the task queue discipline algorithm in - * use by this particular message queue. If no tasks are waiting, - * then the message buffer will be placed at the rear of the - * chain of pending messages for this message queue. - */ - -rtems_status_code rtems_message_queue_broadcast( - Objects_Id id, - void *buffer, - unsigned32 *count -); - -/* - * rtems_message_queue_receive - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_receive directive. - * This directive is invoked when the calling task wishes to receive - * a message from the message queue indicated by ID. The received - * message is to be placed in buffer. If no messages are outstanding - * and the option_set indicates that the task is willing to block, - * then the task will be blocked until a message arrives or until, - * optionally, timeout clock ticks have passed. - */ - -rtems_status_code rtems_message_queue_receive( - Objects_Id id, - void *buffer, - unsigned32 option_set, - rtems_interval timeout -); - -/* - * rtems_message_queue_flush - * - * DESCRIPTION: - * - * This routine implements the rtems_message_queue_flush directive. - * This directive takes all outstanding messages for the message - * queue indicated by ID and returns them to the inactive message - * chain. The number of messages flushed is returned in COUNT. - */ - -rtems_status_code rtems_message_queue_flush( - Objects_Id id, - unsigned32 *count -); - -/* - * _Message_queue_Copy_buffer - * - * DESCRIPTION: - * - * This routine copies the contents of the source message buffer - * to the destination message buffer. - */ - -STATIC INLINE void _Message_queue_Copy_buffer ( - Message_queue_Buffer *source, - Message_queue_Buffer *destination -); - -/* - * _Message_queue_Seize - * - * DESCRIPTION: - * - * This routine attempts to receive a message from the_message_queue. - * If a message is available or if the RTEMS_NO_WAIT option is enabled in - * option_set, then the routine returns. Otherwise, the calling task - * is blocked until a message is available. If a message is returned - * to the task, then buffer will contain its contents. - */ - -boolean _Message_queue_Seize( - Message_queue_Control *the_message_queue, - unsigned32 option_set, - Message_queue_Buffer *buffer -); - -/* - * _Message_queue_Flush_support - * - * DESCRIPTION: - * - * This routine flushes all outstanding messages and returns - * them to the inactive message chain. - */ - -unsigned32 _Message_queue_Flush_support( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Submit - * - * DESCRIPTION: - * - * This routine provides the common foundation for the - * rtems_message_queue_send and rtems_message_queue_urgent directives. - */ - -rtems_status_code _Message_queue_Submit( - Objects_Id id, - Message_queue_Buffer *buffer, - Message_queue_Submit_types submit_type -); - -/* - * _Message_queue_Allocate_message_buffer - * - * DESCRIPTION: - * - * This function allocates a message buffer from the inactive - * message buffer chain. - */ - -STATIC INLINE Message_queue_Buffer_control * - _Message_queue_Allocate_message_buffer ( void ); - -/* - * _Message_queue_Free_message_buffer - * - * DESCRIPTION: - * - * This routine frees a message buffer to the inactive - * message buffer chain. - */ - -STATIC INLINE void _Message_queue_Free_message_buffer ( - Message_queue_Buffer_control *the_message -); - -/* - * _Message_queue_Get_pending_message - * - * DESCRIPTION: - * - * This function removes the first message from the_message_queue - * and returns a pointer to it. - */ - -STATIC INLINE - Message_queue_Buffer_control *_Message_queue_Get_pending_message ( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Append - * - * DESCRIPTION: - * - * This routine places the_message at the rear of the outstanding - * messages on the_message_queue. - */ - -STATIC INLINE void _Message_queue_Append ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -); - -/* - * _Message_queue_Prepend - * - * DESCRIPTION: - * - * This routine places the_message at the rear of the outstanding - * messages on the_message_queue. - */ - -STATIC INLINE void _Message_queue_Prepend ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -); - -/* - * _Message_queue_Is_null - * - * DESCRIPTION: - * - * This function places the_message at the rear of the outstanding - * messages on the_message_queue. - */ - -STATIC INLINE boolean _Message_queue_Is_null ( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Allocate - * - * DESCRIPTION: - * - * This function allocates a message queue control block from - * the inactive chain of free message queue control blocks. - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Allocate ( void ); - -/* - * _Message_queue_Free - * - * DESCRIPTION: - * - * This routine allocates a message queue control block from - * the inactive chain of free message queue control blocks. - */ - -STATIC INLINE void _Message_queue_Free ( - Message_queue_Control *the_message_queue -); - -/* - * _Message_queue_Get - * - * DESCRIPTION: - * - * This function maps message queue IDs to message queue control - * blocks. If ID corresponds to a local message queue, then it - * returns the_message_queue control pointer which maps to ID - * and location is set to OBJECTS_LOCAL. If the message queue ID is - * global and resides on a remote node, then location is set - * to OBJECTS_REMOTE, and the_message_queue is undefined. - * Otherwise, location is set to OBJECTS_ERROR and - * the_message_queue is undefined. - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Get ( - Objects_Id id, - Objects_Locations *location -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/modes.h b/cpukit/rtems/include/rtems/rtems/modes.h deleted file mode 100644 index 9e714591ab..0000000000 --- a/cpukit/rtems/include/rtems/rtems/modes.h +++ /dev/null @@ -1,183 +0,0 @@ -/* modes.h - * - * This include file contains all constants and structures associated - * with the RTEMS thread and RTEMS_ASR modes. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MODES_h -#define __RTEMS_MODES_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the control block used to manage - * each a mode set. - */ - -typedef unsigned32 rtems_mode; - -/* - * The following constants define the individual modes and masks - * which may be used to compose a mode set and to alter modes. - */ - -#define RTEMS_ALL_MODE_MASKS 0x0000ffff - -#define RTEMS_DEFAULT_MODES 0x00000000 -#define RTEMS_CURRENT_MODE 0 - -#define RTEMS_PREEMPT_MASK 0x00000100 /* preemption bit */ -#define RTEMS_TIMESLICE_MASK 0x00000200 /* timeslice bit */ -#define RTEMS_ASR_MASK 0x00000400 /* RTEMS_ASR enable bit */ -#define RTEMS_INTERRUPT_MASK CPU_MODES_INTERRUPT_MASK - -#define RTEMS_PREEMPT 0x00000000 /* enable preemption */ -#define RTEMS_NO_PREEMPT 0x00000100 /* disable preemption */ - -#define RTEMS_NO_TIMESLICE 0x00000000 /* disable timeslicing */ -#define RTEMS_TIMESLICE 0x00000200 /* enable timeslicing */ - -#define RTEMS_ASR 0x00000000 /* enable RTEMS_ASR */ -#define RTEMS_NO_ASR 0x00000400 /* disable RTEMS_ASR */ - -/* - * The number of bits for interrupt levels is CPU dependent. - * RTEMS supports 0 to 256 levels in bits 0-7 of the mode. - */ - -/* - * RTEMS_INTERRUPT_LEVEL - * - * DESCRIPTION: - * - * This function returns the processor dependent interrupt - * level which corresponds to the requested interrupt level. - * - * NOTE: RTEMS supports 256 interrupt levels using the least - * significant eight bits of MODES.CONTROL. On any - * particular CPU, fewer than 256 levels may be supported. - */ - -STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL ( - rtems_mode mode_set -); - -/* - * _Modes_Mask_changed - * - * DESCRIPTION: - * - * This function returns TRUE if any of the mode flags in mask - * are set in mode_set, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Mask_changed ( - rtems_mode mode_set, - rtems_mode masks -); - -/* - * _Modes_Is_asr_disabled - * - * DESCRIPTION: - * - * This function returns TRUE if mode_set indicates that Asynchronous - * Signal Processing is disabled, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Is_asr_disabled ( - rtems_mode mode_set -); - -/* - * _Modes_Is_preempt - * - * DESCRIPTION: - * - * This function returns TRUE if mode_set indicates that preemption - * is enabled, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Is_preempt ( - rtems_mode mode_set -); - -/* - * _Modes_Is_timeslice - * - * DESCRIPTION: - * - * This function returns TRUE if mode_set indicates that timeslicing - * is enabled, and FALSE otherwise. - */ - -STATIC INLINE boolean _Modes_Is_timeslice ( - rtems_mode mode_set -); - -/* - * _Modes_Get_interrupt_level - * - * DESCRIPTION: - * - * This function returns the interrupt level portion of the mode_set. - */ - -STATIC INLINE ISR_Level _Modes_Get_interrupt_level ( - rtems_mode mode_set -); - -/* - * _Modes_Set_interrupt_level - * - * DESCRIPTION: - * - * This routine sets the current interrupt level to that specified - * in the mode_set. - */ - -STATIC INLINE void _Modes_Set_interrupt_level ( - rtems_mode mode_set -); - -/* - * _Modes_Change - * - * DESCRIPTION: - * - * This routine changes the modes in old_mode_set indicated by - * mask to the requested values in new_mode_set. The resulting - * mode set is returned in out_mode_set and the modes that changed - * is returned in changed. - */ - -STATIC INLINE void _Modes_Change ( - rtems_mode old_mode_set, - rtems_mode new_mode_set, - rtems_mode mask, - rtems_mode *out_mode_set, - rtems_mode *changed -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/mp.h b/cpukit/rtems/include/rtems/rtems/mp.h deleted file mode 100644 index 96147d3b44..0000000000 --- a/cpukit/rtems/include/rtems/rtems/mp.h +++ /dev/null @@ -1,67 +0,0 @@ -/* mp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MP_h -#define __RTEMS_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * - * _Multiprocessing_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Multiprocessing_Manager_initialization ( void ); - -/* - * - * rtems_multiprocessing_announce - * - * DESCRIPTION: - * - * This routine implements the MULTIPROCESSING_ANNOUNCE directive. - * It is invoked by the MPCI layer to indicate that an MPCI packet - * has been received. - */ - -void rtems_multiprocessing_announce ( void ); - -/* - * - * _Multiprocessing_Receive_server - * - * DESCRIPTION: - * - * This routine is a server thread which processes remote requests - * from other nodes. - */ - -Thread _Multiprocessing_Receive_server ( - Thread_Argument ignored -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/msgmp.h b/cpukit/rtems/include/rtems/rtems/msgmp.h deleted file mode 100644 index 486bf00002..0000000000 --- a/cpukit/rtems/include/rtems/rtems/msgmp.h +++ /dev/null @@ -1,175 +0,0 @@ -/* msgmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Message Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MESSAGE_QUEUE_MP_h -#define __RTEMS_MESSAGE_QUEUE_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote message queue operations. - */ - -typedef enum { - MESSAGE_QUEUE_MP_ANNOUNCE_CREATE = 0, - MESSAGE_QUEUE_MP_ANNOUNCE_DELETE = 1, - MESSAGE_QUEUE_MP_EXTRACT_PROXY = 2, - MESSAGE_QUEUE_MP_RECEIVE_REQUEST = 3, - MESSAGE_QUEUE_MP_RECEIVE_RESPONSE = 4, - MESSAGE_QUEUE_MP_SEND_REQUEST = 5, - MESSAGE_QUEUE_MP_SEND_RESPONSE = 6, - MESSAGE_QUEUE_MP_URGENT_REQUEST = 7, - MESSAGE_QUEUE_MP_URGENT_RESPONSE = 8, - MESSAGE_QUEUE_MP_BROADCAST_REQUEST = 9, - MESSAGE_QUEUE_MP_BROADCAST_RESPONSE = 10, - MESSAGE_QUEUE_MP_FLUSH_REQUEST = 11, - MESSAGE_QUEUE_MP_FLUSH_RESPONSE = 12 -} Message_queue_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote message queue operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Message_queue_MP_Remote_operations operation; - Objects_Name name; - rtems_option option_set; - Objects_Id proxy_id; - unsigned32 count; - unsigned32 pad0; - unsigned32 pad1; - unsigned32 pad2; - Message_queue_Buffer Buffer; -} Message_queue_MP_Packet; - -/* - * _Message_queue_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Message_queue_MP_Send_process_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Message_queue_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Message_queue_MP_Send_request_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Message_queue_Buffer *buffer, - rtems_option option_set, - rtems_interval timeout -); - -/* - * _Message_queue_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Message_queue_MP_Send_response_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Thread_Control *the_thread -); - -/* - * - * _Message_queue_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Message_queue_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Message_queue_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - */ - -void _Message_queue_MP_Send_object_was_deleted ( - Thread_Control *the_proxy -); - -/* - * _Message_queue_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Message_queue_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Message_queue_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a message queue mp packet. - */ - -Message_queue_MP_Packet *_Message_queue_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/options.h b/cpukit/rtems/include/rtems/rtems/options.h deleted file mode 100644 index b318aad8c9..0000000000 --- a/cpukit/rtems/include/rtems/rtems/options.h +++ /dev/null @@ -1,79 +0,0 @@ -/* options.h - * - * This include file contains information which defines the - * options available on many directives. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_OPTIONS_h -#define __RTEMS_OPTIONS_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage - * option sets. - */ - -typedef unsigned32 rtems_option; - -/* - * The following constants define the individual options which may - * be used to compose an option set. - */ - -#define RTEMS_DEFAULT_OPTIONS 0x00000000 - -#define RTEMS_WAIT 0x00000000 /* wait on resource */ -#define RTEMS_NO_WAIT 0x00000001 /* do not wait on resource */ - -#define RTEMS_EVENT_ALL 0x00000000 /* wait for all events */ -#define RTEMS_EVENT_ANY 0x00000002 /* wait on any event */ - -/* - * _Options_Is_no_wait - * - * DESCRIPTION: - * - * This function returns TRUE if the RTEMS_NO_WAIT option is enabled in - * option_set, and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Options_Is_no_wait ( - rtems_option option_set -); - -/* - * _Options_Is_any - * - * DESCRIPTION: - * - * This function returns TRUE if the RTEMS_EVENT_ANY option is enabled in - * OPTION_SET, and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Options_Is_any ( - rtems_option option_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/part.h b/cpukit/rtems/include/rtems/rtems/part.h deleted file mode 100644 index e639029dc8..0000000000 --- a/cpukit/rtems/include/rtems/rtems/part.h +++ /dev/null @@ -1,290 +0,0 @@ -/* partition.h - * - * This include file contains all the constants and structures associated - * with the Partition Manager. This manager provides facilities to - * dynamically allocate memory in fixed-sized units which are returned - * as buffers. - * - * Directives provided are: - * - * + create a partition - * + get an ID of a partition - * + delete a partition - * + get a buffer from a partition - * + return a buffer to a partition - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_PARTITION_h -#define __RTEMS_PARTITION_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following defines the control block used to manage each partition. - */ - -typedef struct { - Objects_Control Object; - void *starting_address; /* physical address */ - unsigned32 length; /* in bytes */ - unsigned32 buffer_size; /* in bytes */ - rtems_attribute attribute_set; /* attributes */ - unsigned32 number_of_used_blocks; /* or allocated buffers */ - Chain_Control Memory; /* buffer chain */ -} Partition_Control; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Partition_Information; - -/* - * _Partition_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Partition_Manager_initialization( - unsigned32 maximum_partitions -); - -/* - * rtems_partition_create - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_create directive. The - * partition will have the name name. The memory area managed by - * the partition is of length bytes and starts at starting_address. - * The memory area will be divided into as many buffers of - * buffer_size bytes as possible. The attribute_set determines if - * the partition is global or local. It returns the id of the - * created partition in ID. - */ - -rtems_status_code rtems_partition_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 buffer_size, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_partition_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_ident directive. - * This directive returns the partition ID associated with name. - * If more than one partition is named name, then the partition - * to which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the partition named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_partition_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_partition_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_delete directive. The - * partition indicated by ID is deleted. - */ - -rtems_status_code rtems_partition_delete( - Objects_Id id -); - -/* - * rtems_partition_get_buffer - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_get_buffer directive. It - * attempts to allocate a buffer from the partition associated with ID. - * If a buffer is allocated, its address is returned in buffer. - */ - -rtems_status_code rtems_partition_get_buffer( - Objects_Id id, - void **buffer -); - -/* - * rtems_partition_return_buffer - * - * DESCRIPTION: - * - * This routine implements the rtems_partition_return_buffer directive. It - * frees the buffer to the partition associated with ID. The buffer must - * have been previously allocated from the same partition. - */ - -rtems_status_code rtems_partition_return_buffer( - Objects_Id id, - void *buffer -); - -/* - * _Partition_Allocate_buffer - * - * DESCRIPTION: - * - * This function attempts to allocate a buffer from the_partition. - * If successful, it returns the address of the allocated buffer. - * Otherwise, it returns NULL. - */ - -STATIC INLINE void *_Partition_Allocate_buffer ( - Partition_Control *the_partition -); - -/* - * _Partition_Free_buffer - * - * DESCRIPTION: - * - * This routine frees the_buffer to the_partition. - */ - -STATIC INLINE void _Partition_Free_buffer ( - Partition_Control *the_partition, - Chain_Node *the_buffer -); - -/* - * _Partition_Is_buffer_on_boundary - * - * DESCRIPTION: - * - * This function returns TRUE if the_buffer is on a valid buffer - * boundary for the_partition, and FALSE otherwise. - */ - -STATIC INLINE boolean _Partition_Is_buffer_on_boundary ( - void *the_buffer, - Partition_Control *the_partition -); - -/* - * _Partition_Is_buffer_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the_buffer is a valid buffer from - * the_partition, otherwise FALSE is returned. - */ - -STATIC INLINE boolean _Partition_Is_buffer_valid ( - Chain_Node *the_buffer, - Partition_Control *the_partition -); - -/* - * _Partition_Is_buffer_size_aligned - * - * DESCRIPTION: - * - * This function returns TRUE if the use of the specified buffer_size - * will result in the allocation of buffers whose first byte is - * properly aligned, and FALSE otherwise. - */ - -STATIC INLINE boolean _Partition_Is_buffer_size_aligned ( - unsigned32 buffer_size -); - -/* - * _Partition_Allocate - * - * DESCRIPTION: - * - * This function allocates a partition control block from - * the inactive chain of free partition control blocks. - */ - -STATIC INLINE Partition_Control *_Partition_Allocate ( void ); - -/* - * _Partition_Free - * - * DESCRIPTION: - * - * This routine frees a partition control block to the - * inactive chain of free partition control blocks. - */ - -STATIC INLINE void _Partition_Free ( - Partition_Control *the_partition -); - -/* - * _Partition_Get - * - * DESCRIPTION: - * - * This function maps partition IDs to partition control blocks. - * If ID corresponds to a local partition, then it returns - * the_partition control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. If the partition ID is global and - * resides on a remote node, then location is set to OBJECTS_REMOTE, - * and the_partition is undefined. Otherwise, location is set - * to OBJECTS_ERROR and the_partition is undefined. - */ - -STATIC INLINE Partition_Control *_Partition_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Partition_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_partition is NULL - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Partition_Is_null ( - Partition_Control *the_partition -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/partmp.h b/cpukit/rtems/include/rtems/rtems/partmp.h deleted file mode 100644 index deacaf7bd1..0000000000 --- a/cpukit/rtems/include/rtems/rtems/partmp.h +++ /dev/null @@ -1,160 +0,0 @@ -/* partmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Partition Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_PARTITION_MP_h -#define __RTEMS_PARTITION_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote partition operations. - */ - -typedef enum { - PARTITION_MP_ANNOUNCE_CREATE = 0, - PARTITION_MP_ANNOUNCE_DELETE = 1, - PARTITION_MP_EXTRACT_PROXY = 2, - PARTITION_MP_GET_BUFFER_REQUEST = 3, - PARTITION_MP_GET_BUFFER_RESPONSE = 4, - PARTITION_MP_RETURN_BUFFER_REQUEST = 5, - PARTITION_MP_RETURN_BUFFER_RESPONSE = 6, -} Partition_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote partition operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Partition_MP_Remote_operations operation; - Objects_Name name; - void *buffer; - Objects_Id proxy_id; -} Partition_MP_Packet; - -/* - * _Partition_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Partition_MP_Send_process_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Partition_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Partition_MP_Send_request_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - void *buffer -); - -/* - * _Partition_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Partition_MP_Send_response_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - Thread_Control *the_thread -); - -/* - * - * _Partition_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Partition_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Partition_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed by the Partition since a partition - * cannot be deleted when buffers are in use. - */ - -/* - * _Partition_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Partition_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Partition_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a partition mp packet. - */ - -Partition_MP_Packet *_Partition_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/ratemon.h b/cpukit/rtems/include/rtems/rtems/ratemon.h deleted file mode 100644 index 86acfb9a38..0000000000 --- a/cpukit/rtems/include/rtems/rtems/ratemon.h +++ /dev/null @@ -1,285 +0,0 @@ -/* ratemon.h - * - * This include file contains all the constants, structures, and - * prototypes associated with the Rate Monotonic Manager. This manager - * provides facilities to implement tasks which execute in a periodic fashion. - * - * Directives provided are: - * - * + create a rate monotonic timer - * + cancel a period - * + delete a rate monotonic timer - * + conclude current and start the next period - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RATE_MONOTONIC_h -#define __RTEMS_RATE_MONOTONIC_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type defines the states in which a - * period may be. - */ - -typedef enum { - RATE_MONOTONIC_INACTIVE, /* off chain, never initialized */ - RATE_MONOTONIC_ACTIVE, /* on chain, running continuously */ - RATE_MONOTONIC_EXPIRED /* off chain, will be reset by next rm_period */ -} Rate_Monotonic_Period_states; - -/* - * The following constant is the interval passed to the rate_monontonic_period - * directive to obtain status information. - */ - -#define RTEMS_PERIOD_STATUS RTEMS_NO_TIMEOUT - -/* - * The following structure defines the control block used to manage - * each period. - */ - -typedef struct { - Objects_Control Object; - Watchdog_Control Timer; - Rate_Monotonic_Period_states state; - Thread_Control *owner; -} Rate_monotonic_Control; - -EXTERN Objects_Information _Rate_monotonic_Information; - -/* - * _Rate_monotonic_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Rate_monotonic_Manager_initialization( - unsigned32 maximum_periods -); - -/* - * rtems_rate_monotonic_create - * - * DESCRIPTION: - * - * This routine implements the rate_monotonic_create directive. The - * period will have the name name. It returns the id of the - * created period in ID. - */ - -rtems_status_code rtems_rate_monotonic_create( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_rate_monotonic_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_ident directive. - * This directive returns the period ID associated with name. - * If more than one period is named name, then the period - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_rate_monotonic_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_rate_monotonic_cancel - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_cancel directive. This - * directive stops the period associated with ID from continuing to - * run. - */ - -rtems_status_code rtems_rate_monotonic_cancel( - Objects_Id id -); - -/* - * rtems_rate_monotonic_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_delete directive. The - * period indicated by ID is deleted. - */ - -rtems_status_code rtems_rate_monotonic_delete( - Objects_Id id -); - -/* - * rtems_rate_monotonic_period - * - * DESCRIPTION: - * - * This routine implements the rtems_rate_monotonic_period directive. When - * length is non-zero, this directive initiates the period associated with - * ID from continuing for a period of length. If length is zero, then - * result is set to indicate the current state of the period. - */ - -rtems_status_code rtems_rate_monotonic_period( - Objects_Id id, - rtems_interval length -); - -/* - * _Rate_monotonic_Allocate - * - * DESCRIPTION: - * - * This function allocates a period control block from - * the inactive chain of free period control blocks. - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void ); - -/* - * _Rate_monotonic_Free - * - * DESCRIPTION: - * - * This routine allocates a period control block from - * the inactive chain of free period control blocks. - */ - -STATIC INLINE void _Rate_monotonic_Free ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Get - * - * DESCRIPTION: - * - * This function maps period IDs to period control blocks. - * If ID corresponds to a local period, then it returns - * the_period control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the_period is undefined. - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Rate_monotonic_Set_state - * - * DESCRIPTION: - * - * This function blocks the calling task so that it is waiting for - * a period to expire. It returns TRUE if the task was successfully - * blocked, and FALSE otherwise. - */ - -boolean _Rate_monotonic_Set_state( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Timeout - * - * DESCRIPTION: - * - * This routine is invoked when the period represented - * by ID expires. If the task which owns this period is blocked - * waiting for the period to expire, then it is readied and the - * period is restarted. If the owning task is not waiting for the - * period to expire, then the period is placed in the EXPIRED - * state and not restarted. - */ - -void _Rate_monotonic_Timeout ( - Objects_Id id, - void *ignored -); - -/* - * _Rate_monotonic_Is_active - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is in the ACTIVE state, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_active ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Is_inactive - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is in the ACTIVE state, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_inactive ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Is_expired - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is in the EXPIRED state, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_expired ( - Rate_monotonic_Control *the_period -); - -/* - * _Rate_monotonic_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_period is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Rate_monotonic_Is_null ( - Rate_monotonic_Control *the_period -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/region.h b/cpukit/rtems/include/rtems/rtems/region.h deleted file mode 100644 index c31e193c33..0000000000 --- a/cpukit/rtems/include/rtems/rtems/region.h +++ /dev/null @@ -1,311 +0,0 @@ -/* region.h - * - * This include file contains all the constants and structures associated - * with the Region Manager. This manager provides facilities to dynamically - * allocate memory in variable sized units which are returned as segments. - * - * Directives provided are: - * - * + create a region - * + get an ID of a region - * + delete a region - * + get a segment from a region - * + return a segment to a region - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_REGION_h -#define __RTEMS_REGION_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include - -/* - * The following records define the control block used to manage - * each region. - */ - -typedef struct { - Objects_Control Object; - Thread_queue_Control Wait_queue; /* waiting threads */ - void *starting_address; /* physical start addr */ - unsigned32 length; /* physical length(bytes) */ - unsigned32 page_size; /* in bytes */ - unsigned32 maximum_segment_size; /* in bytes */ - rtems_attribute attribute_set; - unsigned32 number_of_used_blocks; /* blocks allocated */ - Heap_Control Memory; -} Region_Control; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Region_Information; - -/* - * _Region_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Region_Manager_initialization( - unsigned32 maximum_regions -); - -/* - * rtems_region_create - * - * DESCRIPTION: - * - * This routine implements the rtems_region_create directive. The - * region will have the name name. The memory area managed by - * the region is of length bytes and starts at starting_address. - * The memory area will be divided into as many allocatable units of - * page_size bytes as possible. The attribute_set determines which - * thread queue discipline is used by the region. It returns the - * id of the created region in ID. - */ - -rtems_status_code rtems_region_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 page_size, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_region_extend - * - * DESCRIPTION: - * - * This routine implements the rtems_region_extend directive. The - * region will have the name name. The memory area managed by - * the region will be attempted to be grown by length bytes using - * the memory starting at starting_address. - */ - -rtems_status_code rtems_region_extend( - Objects_Id id, - void *starting_address, - unsigned32 length -); - -/* - * rtems_region_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_region_ident directive. - * This directive returns the region ID associated with name. - * If more than one region is named name, then the region - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_region_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_region_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_region_delete directive. The - * region indicated by ID is deleted. - */ - -rtems_status_code rtems_region_delete( - Objects_Id id -); - -/* - * rtems_region_get_segment - * - * DESCRIPTION: - * - * This routine implements the rtems_region_get_segment directive. It - * attempts to allocate a segment from the region associated with ID. - * If a segment of the requested size can be allocated, its address - * is returned in segment. If no segment is available, then the task - * may return immediately or block waiting for a segment with an optional - * timeout of timeout clock ticks. Whether the task blocks or returns - * immediately is based on the no_wait option in the option_set. - */ - -rtems_status_code rtems_region_get_segment( - Objects_Id id, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout, - void **segment -); - -/* - * rtems_region_get_segment_size - * - * DESCRIPTION: - * - * This routine implements the rtems_region_get_segment_size directive. It - * returns the size in bytes of the specified user memory area. - */ - -rtems_status_code rtems_region_get_segment_size( - Objects_Id id, - void *segment, - unsigned32 *size -); - -/* - * rtems_region_return_segment - * - * DESCRIPTION: - * - * This routine implements the rtems_region_return_segment directive. It - * frees the segment to the region associated with ID. The segment must - * have been previously allocated from the same region. If freeing the - * segment results in enough memory being available to satisfy the - * rtems_region_get_segment of the first blocked task, then that task and as - * many subsequent tasks as possible will be unblocked with their requests - * satisfied. - */ - -rtems_status_code rtems_region_return_segment( - Objects_Id id, - void *segment -); - -/* - * _Region_Allocate - * - * DESCRIPTION: - * - * This function allocates a region control block from - * the inactive chain of free region control blocks. - */ - -STATIC INLINE Region_Control *_Region_Allocate( void ); - -/* - * _Region_Free - * - * DESCRIPTION: - * - * This routine frees a region control block to the - * inactive chain of free region control blocks. - */ - -STATIC INLINE void _Region_Free ( - Region_Control *the_region -); - -/* - * _Region_Get - * - * DESCRIPTION: - * - * This function maps region IDs to region control blocks. - * If ID corresponds to a local region, then it returns - * the_region control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the_region is undefined. - */ - -STATIC INLINE Region_Control *_Region_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Region_Allocate_segment - * - * DESCRIPTION: - * - * This function attempts to allocate a segment from the_region. - * If successful, it returns the address of the allocated segment. - * Otherwise, it returns NULL. - */ - -STATIC INLINE void *_Region_Allocate_segment ( - Region_Control *the_region, - unsigned32 size -); - -/* - * _Region_Free_segment - * - * DESCRIPTION: - * - * This function frees the_segment to the_region. - */ - -STATIC INLINE boolean _Region_Free_segment ( - Region_Control *the_region, - void *the_segment -); - -/* - * _Region_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_region is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Region_Is_null ( - Region_Control *the_region -); - -#include -#include - -/* - * _Region_Debug_Walk - * - * DESCRIPTION: - * - * This routine is invoked to verify the integrity of a heap associated - * with the_region. - */ - -#ifdef RTEMS_DEBUG - -#define _Region_Debug_Walk( _the_region, _source ) \ - do { \ - if ( _Debug_Is_enabled( RTEMS_DEBUG_REGION ) ) \ - _Heap_Walk( &(_the_region)->Memory, _source, FALSE ); \ - } while ( 0 ) - -#else - -#define _Region_Debug_Walk( _the_region, _source ) - -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/regionmp.h b/cpukit/rtems/include/rtems/rtems/regionmp.h deleted file mode 100644 index 2810656078..0000000000 --- a/cpukit/rtems/include/rtems/rtems/regionmp.h +++ /dev/null @@ -1,165 +0,0 @@ -/* regionmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Region Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_REGION_MP_h -#define __RTEMS_REGION_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote region operations. - */ - -typedef enum { - REGION_MP_ANNOUNCE_CREATE = 0, - REGION_MP_ANNOUNCE_DELETE = 1, - REGION_MP_EXTRACT_PROXY = 2, - REGION_MP_GET_SEGMENT_REQUEST = 3, - REGION_MP_GET_SEGMENT_RESPONSE = 4, - REGION_MP_RETURN_SEGMENT_REQUEST = 5, - REGION_MP_RETURN_SEGMENT_RESPONSE = 6, -} Region_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote region operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Region_MP_Remote_operations operation; - Objects_Name name; - rtems_option option_set; - unsigned32 size; - Objects_Id proxy_id; - void *segment; -} Region_MP_Packet; - -/* - * _Region_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Region_MP_Send_process_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Region_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Region_MP_Send_request_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - void *segment, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout -); - -/* - * _Region_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Region_MP_Send_response_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - Thread_Control *the_thread -); - -/* - * - * _Region_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Region_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Region_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed by the Region since a region - * cannot be deleted when segments are in use. - */ - -/* - * _Region_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Region_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Region_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a region mp packet. - */ - -Region_MP_Packet *_Region_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/sem.h b/cpukit/rtems/include/rtems/rtems/sem.h deleted file mode 100644 index 66f5ab82b8..0000000000 --- a/cpukit/rtems/include/rtems/rtems/sem.h +++ /dev/null @@ -1,238 +0,0 @@ -/* semaphore.h - * - * This include file contains all the constants and structures associated - * with the Semaphore Manager. This manager utilizes standard Dijkstra - * counting semaphores to provide synchronization and mutual exclusion - * capabilities. - * - * Directives provided are: - * - * + create a semaphore - * + get an ID of a semaphore - * + delete a semaphore - * + acquire a semaphore - * + release a semaphore - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SEMAPHORE_h -#define __RTEMS_SEMAPHORE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following defines the control block used to manage each semaphore. - */ - -typedef struct { - Objects_Control Object; - Thread_queue_Control Wait_queue; - rtems_attribute attribute_set; - unsigned32 count; - unsigned32 nest_count; - Thread_Control *holder; - Objects_Id holder_id; -} Semaphore_Control; - -/* - * The following defines the information control block used to manage - * this class of objects. - */ - -EXTERN Objects_Information _Semaphore_Information; - -/* - * _Semaphore_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Semaphore_Manager_initialization( - unsigned32 maximum_semaphores -); - -/* - * rtems_semaphore_create - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_create directive. The - * semaphore will have the name name. The starting count for - * the semaphore is count. The attribute_set determines if - * the semaphore is global or local and the thread queue - * discipline. It returns the id of the created semaphore in ID. - */ - -rtems_status_code rtems_semaphore_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_semaphore_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_ident directive. - * This directive returns the semaphore ID associated with name. - * If more than one semaphore is named name, then the semaphore - * to which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the semaphore named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_semaphore_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_semaphore_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_delete directive. The - * semaphore indicated by ID is deleted. - */ - -rtems_status_code rtems_semaphore_delete( - Objects_Id id -); - -/* - * rtems_semaphore_obtain - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_obtain directive. It - * attempts to obtain a unit from the semaphore associated with ID. - * If a unit can be allocated, the calling task will return immediately. - * If no unit is available, then the task may return immediately or - * block waiting for a unit with an optional timeout of timeout - * clock ticks. Whether the task blocks or returns immediately - * is based on the RTEMS_NO_WAIT option in the option_set. - */ - -rtems_status_code rtems_semaphore_obtain( - Objects_Id id, - unsigned32 option_set, - rtems_interval timeout -); - -/* - * rtems_semaphore_release - * - * DESCRIPTION: - * - * This routine implements the rtems_semaphore_release directive. It - * frees a unit to the semaphore associated with ID. If a task was - * blocked waiting for a unit from this semaphore, then that task will - * be readied and the unit given to that task. Otherwise, the unit - * will be returned to the semaphore. - */ - -rtems_status_code rtems_semaphore_release( - Objects_Id id -); - -/* - * _Semaphore_Seize - * - * DESCRIPTION: - * - * This routine attempts to receive a unit from the_semaphore. - * If a unit is available or if the RTEMS_NO_WAIT option is enabled in - * option_set, then the routine returns. Otherwise, the calling task - * is blocked until a unit becomes available. - */ - -boolean _Semaphore_Seize( - Semaphore_Control *the_semaphore, - unsigned32 option_set -); - -/* - * _Semaphore_Allocate - * - * DESCRIPTION: - * - * This function allocates a semaphore control block from - * the inactive chain of free semaphore control blocks. - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Allocate( void ); - -/* - * _Semaphore_Free - * - * DESCRIPTION: - * - * This routine frees a semaphore control block to the - * inactive chain of free semaphore control blocks. - */ - -STATIC INLINE void _Semaphore_Free ( - Semaphore_Control *the_semaphore -); - -/* - * _Semaphore_Get - * - * DESCRIPTION: - * - * This function maps semaphore IDs to semaphore control blocks. - * If ID corresponds to a local semaphore, then it returns - * the_semaphore control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. if the semaphore ID is global and - * resides on a remote node, then location is set to OBJECTS_REMOTE, - * and the_semaphore is undefined. Otherwise, location is set - * to OBJECTS_ERROR and the_semaphore is undefined. - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Semaphore_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_semaphore is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Semaphore_Is_null ( - Semaphore_Control *the_semaphore -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/semmp.h b/cpukit/rtems/include/rtems/rtems/semmp.h deleted file mode 100644 index 2d0554c8cc..0000000000 --- a/cpukit/rtems/include/rtems/rtems/semmp.h +++ /dev/null @@ -1,163 +0,0 @@ -/* semmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Semaphore Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SEMAPHORE_MP_h -#define __RTEMS_SEMAPHORE_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote semaphore operations. - */ - -typedef enum { - SEMAPHORE_MP_ANNOUNCE_CREATE = 0, - SEMAPHORE_MP_ANNOUNCE_DELETE = 1, - SEMAPHORE_MP_EXTRACT_PROXY = 2, - SEMAPHORE_MP_OBTAIN_REQUEST = 3, - SEMAPHORE_MP_OBTAIN_RESPONSE = 4, - SEMAPHORE_MP_RELEASE_REQUEST = 5, - SEMAPHORE_MP_RELEASE_RESPONSE = 6, -} Semaphore_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote semaphore operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Semaphore_MP_Remote_operations operation; - Objects_Name name; - rtems_option option_set; - Objects_Id proxy_id; -} Semaphore_MP_Packet; - -/* - * _Semaphore_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _Semaphore_MP_Send_process_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - Objects_Name name, - Objects_Id proxy_id -); - -/* - * _Semaphore_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Semaphore_MP_Send_request_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - rtems_option option_set, - rtems_interval timeout -); - -/* - * _Semaphore_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Semaphore_MP_Send_response_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - Thread_Control *the_thread -); - -/* - * - * _Semaphore_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Semaphore_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Semaphore_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - */ - -void _Semaphore_MP_Send_object_was_deleted ( - Thread_Control *the_proxy -); - -/* - * _Semaphore_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ - -void _Semaphore_MP_Send_extract_proxy ( - Thread_Control *the_thread -); - -/* - * _Semaphore_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a semaphore mp packet. - */ - -Semaphore_MP_Packet *_Semaphore_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/signal.h b/cpukit/rtems/include/rtems/rtems/signal.h deleted file mode 100644 index 2466a8f931..0000000000 --- a/cpukit/rtems/include/rtems/rtems/signal.h +++ /dev/null @@ -1,72 +0,0 @@ -/* signal.h - * - * This include file contains all the constants and structures associated - * with the Signal Manager. This manager provides capabilities required - * for asynchronous communication between tasks via signal sets. - * - * Directives provided are: - * - * + establish an asynchronous signal routine - * + send a signal set to a task - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SIGNAL_h -#define __RTEMS_SIGNAL_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include - -/* - * rtems_signal_catch - * - * DESCRIPTION: - * - * This routine implements the rtems_signal_catch directive. This directive - * is used to establish asr_handler as the Asynchronous Signal Routine - * (RTEMS_ASR) for the calling task. The asr_handler will execute with a - * mode of mode_set. - */ - -rtems_status_code rtems_signal_catch( - rtems_asr_entry asr_handler, - rtems_mode mode_set -); - -/* - * rtems_signal_send - * - * DESCRIPTION: - * - * This routine implements the rtems_signal_send directive. This directive - * sends the signal_set to the task specified by ID. - */ - -rtems_status_code rtems_signal_send( - Objects_Id id, - rtems_signal_set signal_set -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/signalmp.h b/cpukit/rtems/include/rtems/rtems/signalmp.h deleted file mode 100644 index 36a2d81594..0000000000 --- a/cpukit/rtems/include/rtems/rtems/signalmp.h +++ /dev/null @@ -1,147 +0,0 @@ -/* signalmp.h - * - * This include file contains all the constants and structures associated - * with the Multiprocessing Support in the Signal Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SIGNAL_MP_h -#define __RTEMS_SIGNAL_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote signal operations. - */ - -typedef enum { - SIGNAL_MP_SEND_REQUEST = 0, - SIGNAL_MP_SEND_RESPONSE = 1, -} Signal_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote signal operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - Signal_MP_Remote_operations operation; - rtems_signal_set signal_in; -} Signal_MP_Packet; - -/* - * _Signal_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - * - * This routine is not needed since there are no process - * packets to be sent by this manager. - */ - -/* - * _Signal_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _Signal_MP_Send_request_packet ( - Signal_MP_Remote_operations operation, - Objects_Id task_id, - rtems_signal_set signal_in -); - -/* - * _Signal_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _Signal_MP_Send_response_packet ( - Signal_MP_Remote_operations operation, - Thread_Control *the_thread -); - -/* - * - * _Signal_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _Signal_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _Signal_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Signal_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - */ - -/* - * _Signal_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a signal mp packet. - */ - -Signal_MP_Packet *_Signal_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/status.h b/cpukit/rtems/include/rtems/rtems/status.h deleted file mode 100644 index 42b8754780..0000000000 --- a/cpukit/rtems/include/rtems/rtems/status.h +++ /dev/null @@ -1,109 +0,0 @@ -/* status.h - * - * This include file contains the status codes returned from the - * executive directives. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_STATUS_h -#define __RTEMS_STATUS_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* types */ - -/* enumerated constants */ - -typedef enum { - RTEMS_SUCCESSFUL = 0, /* successful completion */ - RTEMS_TASK_EXITTED = 1, /* returned from a thread */ - RTEMS_MP_NOT_CONFIGURED = 2, /* multiprocessing not configured */ - RTEMS_INVALID_NAME = 3, /* invalid object name */ - RTEMS_INVALID_ID = 4, /* invalid object id */ - RTEMS_TOO_MANY = 5, /* too many */ - RTEMS_TIMEOUT = 6, /* timed out waiting */ - RTEMS_OBJECT_WAS_DELETED = 7, /* object deleted while waiting */ - RTEMS_INVALID_SIZE = 8, /* specified size was invalid */ - RTEMS_INVALID_ADDRESS = 9, /* address specified is invalid */ - RTEMS_INVALID_NUMBER = 10, /* number was invalid */ - RTEMS_NOT_DEFINED = 11, /* item has not been initialized */ - RTEMS_RESOURCE_IN_USE = 12, /* resources still outstanding */ - RTEMS_UNSATISFIED = 13, /* request not satisfied */ - RTEMS_INCORRECT_STATE = 14, /* thread is in wrong state */ - RTEMS_ALREADY_SUSPENDED = 15, /* thread already in state */ - RTEMS_ILLEGAL_ON_SELF = 16, /* illegal on calling thread */ - RTEMS_ILLEGAL_ON_REMOTE_OBJECT = 17, /* illegal for remote object */ - RTEMS_CALLED_FROM_ISR = 18, /* called from wrong environment */ - RTEMS_INVALID_PRIORITY = 19, /* invalid thread priority */ - RTEMS_INVALID_CLOCK = 20, /* invalid date/time */ - RTEMS_INVALID_NODE = 21, /* invalid node id */ - RTEMS_NOT_CONFIGURED = 22, /* directive not configured */ - RTEMS_NOT_OWNER_OF_RESOURCE = 23, /* not owner of resource */ - RTEMS_NOT_IMPLEMENTED = 24, /* directive not implemented */ - RTEMS_INTERNAL_ERROR = 25, /* RTEMS inconsistency detected */ - RTEMS_PROXY_BLOCKING = 26, /* internal multiprocessing only */ - RTEMS_NO_MEMORY = 27 /* could not get enough memory */ -} rtems_status_code; - -#define RTEMS_STATUS_CODES_FIRST RTEMS_SUCCESSFUL -#define RTEMS_STATUS_CODES_LAST RTEMS_NO_MEMORY - -/* - * rtems_is_status_successful - * - * DESCRIPTION: - * - * This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL, - * and FALSE otherwise. - */ - -STATIC INLINE boolean rtems_is_status_successful ( - rtems_status_code code -); - -/* - * rtems_are_statuses_equal - * - * DESCRIPTION: - * - * This function returns TRUE if the status code1 is equal to code2, - * and FALSE otherwise. - */ - -STATIC INLINE boolean rtems_are_statuses_equal ( - rtems_status_code code1, - rtems_status_code code2 -); - -/* - * _Status_Is_proxy_blocking - * - * DESCRIPTION: - * - * This function returns TRUE if the status code is equal to the - * status which indicates that a proxy is blocking, and FALSE otherwise. - */ - -STATIC INLINE boolean _Status_Is_proxy_blocking ( - rtems_status_code code -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/taskmp.h b/cpukit/rtems/include/rtems/rtems/taskmp.h deleted file mode 100644 index 57ab50c630..0000000000 --- a/cpukit/rtems/include/rtems/rtems/taskmp.h +++ /dev/null @@ -1,167 +0,0 @@ -/* taskmp.h - * - * This include file contains all the constants and structures associated - * with the multiprocessing support in the task manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RTEMS_TASKS_MP_h -#define __RTEMS_RTEMS_TASKS_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include - -/* - * The following enumerated type defines the list of - * remote task operations. - */ - -typedef enum { - RTEMS_TASKS_MP_ANNOUNCE_CREATE = 0, - RTEMS_TASKS_MP_ANNOUNCE_DELETE = 1, - RTEMS_TASKS_MP_SUSPEND_REQUEST = 2, - RTEMS_TASKS_MP_SUSPEND_RESPONSE = 3, - RTEMS_TASKS_MP_RESUME_REQUEST = 4, - RTEMS_TASKS_MP_RESUME_RESPONSE = 5, - RTEMS_TASKS_MP_SET_PRIORITY_REQUEST = 6, - RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE = 7, - RTEMS_TASKS_MP_GET_NOTE_REQUEST = 8, - RTEMS_TASKS_MP_GET_NOTE_RESPONSE = 9, - RTEMS_TASKS_MP_SET_NOTE_REQUEST = 10, - RTEMS_TASKS_MP_SET_NOTE_RESPONSE = 11, -} RTEMS_tasks_MP_Remote_operations; - -/* - * The following data structure defines the packet used to perform - * remote task operations. - */ - -typedef struct { - rtems_packet_prefix Prefix; - RTEMS_tasks_MP_Remote_operations operation; - Objects_Name name; - rtems_task_priority the_priority; - unsigned32 notepad; - unsigned32 note; -} RTEMS_tasks_MP_Packet; - -/* - * _RTEMS_tasks_MP_Send_process_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * process operation can be performed on another node. - */ - -void _RTEMS_tasks_MP_Send_process_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Objects_Id task_id, - Objects_Name name -); - -/* - * _RTEMS_tasks_MP_Send_request_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ - -rtems_status_code _RTEMS_tasks_MP_Send_request_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Objects_Id task_id, - rtems_task_priority the_priority, - unsigned32 notepad, - unsigned32 note -); - -/* - * _RTEMS_tasks_MP_Send_response_packet - * - * DESCRIPTION: - * - * This routine performs a remote procedure call so that a - * directive can be performed on another node. - */ - -void _RTEMS_tasks_MP_Send_response_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Thread_Control *the_thread -); - -/* - * - * _RTEMS_tasks_MP_Process_packet - * - * DESCRIPTION: - * - * This routine performs the actions specific to this package for - * the request from another node. - */ - -void _RTEMS_tasks_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -); - -/* - * _RTEMS_tasks_MP_Send_object_was_deleted - * - * DESCRIPTION: - * - * This routine is invoked indirectly by the thread queue - * when a proxy has been removed from the thread queue and - * the remote node must be informed of this. - * - * This routine is not needed by RTEMS_tasks since a task - * cannot be deleted when segments are in use. - */ - -/* - * _RTEMS_tasks_MP_Send_extract_proxy - * - * DESCRIPTION: - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - * - * This routine is not needed since there are no objects - * deleted by this manager. - * - */ - -/* - * _RTEMS_tasks_MP_Get_packet - * - * DESCRIPTION: - * - * This function is used to obtain a task mp packet. - */ - -RTEMS_tasks_MP_Packet *_RTEMS_tasks_MP_Get_packet ( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/tasks.h b/cpukit/rtems/include/rtems/rtems/tasks.h deleted file mode 100644 index d92913548e..0000000000 --- a/cpukit/rtems/include/rtems/rtems/tasks.h +++ /dev/null @@ -1,315 +0,0 @@ -/* tasks.h - * - * This include file contains all constants and structures associated - * with RTEMS tasks. This manager provides a comprehensive set of directives - * to create, delete, and administer tasks. - * - * Directives provided are: - * - * + create a task - * + get an ID of a task - * + start a task - * + restart a task - * + delete a task - * + suspend a task - * + resume a task - * + set a task's priority - * + change the current task's mode - * + get a task notepad entry - * + set a task notepad entry - * + wake up after interval - * + wake up when specified - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_RTEMS_TASKS_h -#define __RTEMS_RTEMS_TASKS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constant to be used as the ID of current task - */ - -#define RTEMS_SELF OBJECTS_ID_OF_SELF - -/* - * This constant is passed to the rtems_task_wake_after directive as the - * interval when a task wishes to yield the CPU. - */ - -#define RTEMS_YIELD_PROCESSOR RTEMS_NO_TIMEOUT - -/* - * rtems_task_create - * - * DESCRIPTION: - * - * This routine implements the rtems_task_create directive. The task - * will have the name name. The attribute_set can be used to indicate - * that the task will be globally accessible or utilize floating point. - * The task's stack will be stack_size bytes. The task will begin - * execution with initial_priority and initial_modes. It returns the - * id of the created task in ID. - */ - -rtems_status_code rtems_task_create( - Objects_Name name, - rtems_task_priority initial_priority, - unsigned32 stack_size, - rtems_mode initial_modes, - rtems_attribute attribute_set, - Objects_Id *id -); - -/* - * rtems_task_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_task_ident directive. - * This directive returns the task ID associated with name. - * If more than one task is named name, then the task to - * which the ID belongs is arbitrary. node indicates the - * extent of the search for the ID of the task named name. - * The search can be limited to a particular node or allowed to - * encompass all nodes. - */ - -rtems_status_code rtems_task_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * rtems_task_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_task_delete directive. The - * task indicated by ID is deleted. - */ - -rtems_status_code rtems_task_delete( - Objects_Id id -); - -/* - * rtems_task_get_note - * - * DESCRIPTION: - * - * This routine implements the rtems_task_get_note directive. The - * value of the indicated notepad for the task associated with ID - * is returned in note. - */ - -rtems_status_code rtems_task_get_note( - Objects_Id id, - unsigned32 notepad, - unsigned32 *note -); - -/* - * rtems_task_set_note - * - * DESCRIPTION: - * - * This routine implements the rtems_task_set_note directive. The - * value of the indicated notepad for the task associated with ID - * is returned in note. - */ - -rtems_status_code rtems_task_set_note( - Objects_Id id, - unsigned32 notepad, - unsigned32 note -); - -/* - * rtems_task_mode - * - * DESCRIPTION: - * - * This routine implements the rtems_task_mode directive. The current - * values of the modes indicated by mask of the calling task are changed - * to that indicated in mode_set. The former mode of the task is - * returned in mode_set. - */ - -rtems_status_code rtems_task_mode( - rtems_mode mode_set, - rtems_mode mask, - rtems_mode *previous_mode_set -); - -/* - * rtems_task_restart - * - * DESCRIPTION: - * - * This routine implements the rtems_task_restart directive. The - * task associated with ID is restarted at its initial entry - * point with the new argument. - */ - -rtems_status_code rtems_task_restart( - Objects_Id id, - unsigned32 arg -); - -/* - * rtems_task_suspend - * - * DESCRIPTION: - * - * This routine implements the rtems_task_suspend directive. The - * SUSPENDED state is set for task associated with ID. - */ - -rtems_status_code rtems_task_suspend( - Objects_Id id -); - -/* - * rtems_task_resume - * - * DESCRIPTION: - * - * This routine implements the rtems_task_resume Directive. The - * SUSPENDED state is cleared for task associated with ID. - */ - -rtems_status_code rtems_task_resume( - Objects_Id id -); - -/* - * rtems_task_set_priority - * - * DESCRIPTION: - * - * This routine implements the rtems_task_set_priority directive. The - * current priority of the task associated with ID is set to - * new_priority. The former priority of that task is returned - * in old_priority. - */ - -rtems_status_code rtems_task_set_priority( - Objects_Id id, - rtems_task_priority new_priority, - rtems_task_priority *old_priority -); - -/* - * rtems_task_start - * - * DESCRIPTION: - * - * This routine implements the rtems_task_start directive. The - * starting execution point of the task associated with ID is - * set to entry_point with the initial argument. - */ - -rtems_status_code rtems_task_start( - Objects_Id id, - rtems_task_entry entry_point, - unsigned32 argument -); - -/* - * rtems_task_wake_when - * - * DESCRIPTION: - * - * This routine implements the rtems_task_wake_when directive. The - * calling task is blocked until the current time of day is - * equal to that indicated by time_buffer. - */ - -rtems_status_code rtems_task_wake_when( - rtems_time_of_day *time_buffer -); - -/* - * rtems_task_wake_after - * - * DESCRIPTION: - * - * This routine implements the rtems_task_wake_after directive. The - * calling task is blocked until the indicated number of clock - * ticks have occurred. - */ - -rtems_status_code rtems_task_wake_after( - rtems_interval ticks -); - -/* - * _RTEMS_tasks_Allocate - * - * DESCRIPTION: - * - * This function allocates a task control block from - * the inactive chain of free task control blocks. - */ - -STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void ); - -/* - * _RTEMS_tasks_Free - * - * DESCRIPTION: - * - * This routine frees a task control block to the - * inactive chain of free task control blocks. - - */ - -STATIC INLINE void _RTEMS_tasks_Free ( - Thread_Control *the_task -); - -/* - * _RTEMS_tasks_Cancel_wait - * - * DESCRIPTION: - * - * This routine unblocks the_thread and cancels any timers - * which the_thread has active. - */ - -STATIC INLINE void _RTEMS_tasks_Cancel_wait( - Thread_Control *the_thread -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/timer.h b/cpukit/rtems/include/rtems/rtems/timer.h deleted file mode 100644 index f6ccb5f4a1..0000000000 --- a/cpukit/rtems/include/rtems/rtems/timer.h +++ /dev/null @@ -1,292 +0,0 @@ -/* timer.h - * - * This include file contains all the constants, structures, and - * prototypes associated with the Timer Manager. This manager provides - * facilities to configure, initiate, cancel, and delete timers which will - * fire at specified intervals of time. - * - * Directives provided are: - * - * + create a timer - * + get an ID of a timer - * + delete a timer - * + set a timer to fire after a number of ticks have passed - * + set a timer to fire when a specified date and time has been reached - * + reset a timer - * + cancel a time - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TIMER_h -#define __RTEMS_TIMER_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type details the classes to which a timer - * may belong. - */ - -typedef enum { - TIMER_INTERVAL, - TIMER_TIME_OF_DAY, - TIMER_DORMANT -} Timer_Classes; - -/* - * The following defines the type of a Timer Service Routine. - */ - -typedef rtems_timer_service_routine_entry Timer_Service; - -/* - * The following defines the information control block used to manage - * this class of objects. - */ - -EXTERN Objects_Information _Timer_Information; - -/* - * The following records define the control block used to manage - * each timer. - */ - -typedef struct { - Objects_Control Object; - Watchdog_Control Ticker; - Timer_Classes the_class; -} Timer_Control; - -/* - * _Timer_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Timer_Manager_initialization( - unsigned32 maximum_timers -); - -/* - * rtems_timer_create - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_create directive. The - * timer will have the name name. It returns the id of the - * created timer in ID. - */ - -rtems_status_code rtems_timer_create( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_timer_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_ident directive. - * This directive returns the timer ID associated with name. - * If more than one timer is named name, then the timer - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_timer_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_timer_cancel - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_cancel directive. It is used - * to stop the timer associated with ID from firing. - */ - -rtems_status_code rtems_timer_cancel( - Objects_Id id -); - -/* - * rtems_timer_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_delete directive. The - * timer indicated by ID is deleted. - */ - -rtems_status_code rtems_timer_delete( - Objects_Id id -); - -/* - * rtems_timer_fire_after - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_fire_after directive. It - * initiates the timer associated with ID to fire in ticks clock - * ticks. When the timer fires, the routine will be invoked. - */ - -rtems_status_code rtems_timer_fire_after( - Objects_Id id, - rtems_interval ticks, - Timer_Service routine, - void *user_data -); - -/* - * rtems_timer_fire_when - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_fire_when directive. It - * initiates the timer associated with ID to fire at wall_time - * When the timer fires, the routine will be invoked. - */ - -rtems_status_code rtems_timer_fire_when( - Objects_Id id, - rtems_time_of_day *wall_time, - Timer_Service routine, - void *user_data -); - -/* - * rtems_timer_reset - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_reset directive. It is used - * to reinitialize the interval timer associated with ID just as if - * rtems_timer_fire_after were re-invoked with the same arguments that - * were used to initiate this timer. - */ - -rtems_status_code rtems_timer_reset( - Objects_Id id -); - -/* - * _Timer_Allocate - * - * DESCRIPTION: - * - * This function allocates a timer control block from - * the inactive chain of free timer control blocks. - */ - -STATIC INLINE Timer_Control *_Timer_Allocate( void ); - -/* - * _Timer_Free - * - * DESCRIPTION: - * - * This routine frees a timer control block to the - * inactive chain of free timer control blocks. - */ - -STATIC INLINE void _Timer_Free ( - Timer_Control *the_timer -); - -/* - * _Timer_Get - * - * DESCRIPTION: - * - * This function maps timer IDs to timer control blocks. - * If ID corresponds to a local timer, then it returns - * the timer control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the returned value is undefined. - */ - -STATIC INLINE Timer_Control *_Timer_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Timer_Is_interval_class - * - * DESCRIPTION: - * - * This function returns TRUE if the class is that of an INTERVAL - * timer, and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_interval_class ( - Timer_Classes the_class -); - -/* - * _Timer_Is_time_of_day_class - * - * DESCRIPTION: - * - * This function returns TRUE if the class is that of an INTERVAL - * timer, and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_timer_of_day_class ( - Timer_Classes the_class -); - -/* - * _Timer_Is_dormant_class - * - * DESCRIPTION: - * - * This function returns TRUE if the class is that of a DORMANT - * timer, and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_dormant_class ( - Timer_Classes the_class -); - -/* - * _Timer_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_timer is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Timer_Is_null ( - Timer_Control *the_timer -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/asr.inl b/cpukit/rtems/inline/rtems/rtems/asr.inl deleted file mode 100644 index a2da1ae311..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/asr.inl +++ /dev/null @@ -1,105 +0,0 @@ -/* inline/asr.inl - * - * This include file contains the implemenation of all routines - * associated with the asynchronous signal handler which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ASR_inl -#define __INLINE_ASR_inl - -#include - -/*PAGE - * - * _ASR_Initialize - * - */ - -STATIC INLINE void _ASR_Initialize ( - ASR_Information *information -) -{ - information->handler = NULL; - information->mode_set = RTEMS_DEFAULT_MODES; - information->signals_posted = 0; - information->signals_pending = 0; - information->nest_level = 0; -} - -/*PAGE - * - * _ASR_Swap_signals - * - */ - -STATIC INLINE void _ASR_Swap_signals ( - ASR_Information *information -) -{ - rtems_signal_set _signals; - ISR_Level _level; - - _ISR_Disable( _level ); - _signals = information->signals_pending; - information->signals_pending = information->signals_posted; - information->signals_posted = _signals; - _ISR_Enable( _level ); -} - -/*PAGE - * - * _ASR_Is_null_handler - * - */ - -STATIC INLINE boolean _ASR_Is_null_handler ( - rtems_asr_entry asr_handler -) -{ - return asr_handler == NULL; -} - -/*PAGE - * - * _ASR_Are_signals_pending - * - */ - -STATIC INLINE boolean _ASR_Are_signals_pending ( - ASR_Information *information -) -{ - return information->signals_posted != 0; -} - -/*PAGE - * - * _ASR_Post_signals - * - */ - -STATIC INLINE void _ASR_Post_signals( - rtems_signal_set signals, - rtems_signal_set *signal_set -) -{ - ISR_Level _level; - - _ISR_Disable( _level ); - *signal_set |= signals; - _ISR_Enable( _level ); -} - - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/attr.inl b/cpukit/rtems/inline/rtems/rtems/attr.inl deleted file mode 100644 index c657a08211..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/attr.inl +++ /dev/null @@ -1,125 +0,0 @@ -/* inline/attr.inl - * - * This include file contains all of the inlined routines associated - * with attributes. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ATTRIBUTES_inl -#define __INLINE_ATTRIBUTES_inl - -/*PAGE - * - * _Attributes_Set - */ - -STATIC INLINE rtems_attribute _Attributes_Set ( - rtems_attribute new_attributes, - rtems_attribute attribute_set -) -{ - return attribute_set | new_attributes; -} - -/*PAGE - * - * _Attributes_Clear - */ - -STATIC INLINE rtems_attribute _Attributes_Clear ( - rtems_attribute attribute_set, - rtems_attribute mask -) -{ - return attribute_set & ~mask; -} - -/*PAGE - * - * _Attributes_Is_floating_point - * - */ - -STATIC INLINE boolean _Attributes_Is_floating_point( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_FLOATING_POINT ); -} - -/*PAGE - * - * _Attributes_Is_global - * - */ - -STATIC INLINE boolean _Attributes_Is_global( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_GLOBAL ); -} - -/*PAGE - * - * _Attributes_Is_priority - * - */ - -STATIC INLINE boolean _Attributes_Is_priority( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_PRIORITY ); -} - -/*PAGE - * - * _Attributes_Is_limit - * - */ - -STATIC INLINE boolean _Attributes_Is_limit( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_LIMIT ); -} - -/*PAGE - * - * _Attributes_Is_binary_semaphore - * - */ - -STATIC INLINE boolean _Attributes_Is_binary_semaphore( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_BINARY_SEMAPHORE ); -} - -/*PAGE - * - * _Attributes_Is_inherit_priority - * - */ - -STATIC INLINE boolean _Attributes_Is_inherit_priority( - rtems_attribute attribute_set -) -{ - return ( attribute_set & RTEMS_INHERIT_PRIORITY ); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/dpmem.inl b/cpukit/rtems/inline/rtems/rtems/dpmem.inl deleted file mode 100644 index 829ec5ab07..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/dpmem.inl +++ /dev/null @@ -1,75 +0,0 @@ -/* inline/dpmem.inl - * - * This include file contains the inline routine used in conjunction - * with the Dual Ported Memory Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_DPMEM_inl -#define __INLINE_DPMEM_inl - - -/*PAGE - * - * _Dual_ported_memory_Allocate - * - */ - -STATIC INLINE Dual_ported_memory_Control - *_Dual_ported_memory_Allocate ( void ) -{ - return (Dual_ported_memory_Control *) - _Objects_Allocate( &_Dual_ported_memory_Information ); -} - -/*PAGE - * - * _Dual_ported_memory_Free - * - */ - -STATIC INLINE void _Dual_ported_memory_Free ( - Dual_ported_memory_Control *the_port -) -{ - _Objects_Free( &_Dual_ported_memory_Information, &the_port->Object ); -} - -/*PAGE - * - * _Dual_ported_memory_Get - * - */ - -STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Dual_ported_memory_Control *) - _Objects_Get( &_Dual_ported_memory_Information, id, location ); -} - -/*PAGE - * - * _Dual_ported_memory_Is_null - */ - -STATIC INLINE boolean _Dual_ported_memory_Is_null( - Dual_ported_memory_Control *the_port -) -{ - return ( the_port == NULL ); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/event.inl b/cpukit/rtems/inline/rtems/rtems/event.inl deleted file mode 100644 index 2f2f480001..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/event.inl +++ /dev/null @@ -1,30 +0,0 @@ -/* inline/event.inl - * - * This include file contains the static inline implementation of - * macros for the Event Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_EVENT_inl -#define __MACROS_EVENT_inl - -/* - * Event_Manager_initialization - */ - -STATIC INLINE void _Event_Manager_initialization( void ) -{ - _Event_Sync = FALSE; -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/eventset.inl b/cpukit/rtems/inline/rtems/rtems/eventset.inl deleted file mode 100644 index b38c61de1a..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/eventset.inl +++ /dev/null @@ -1,71 +0,0 @@ -/* inline/eventset.inl - * - * This include file contains the information pertaining to event sets. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_EVENT_SET_inl -#define __INLINE_EVENT_SET_inl - -/*PAGE - * - * _Event_sets_Is_empty - */ - -STATIC INLINE boolean _Event_sets_Is_empty( - rtems_event_set the_event_set -) -{ - return ( the_event_set == 0 ); -} - -/*PAGE - * - * _Event_sets_Post - */ - -STATIC INLINE void _Event_sets_Post( - rtems_event_set the_new_events, - rtems_event_set *the_event_set -) -{ - *the_event_set |= the_new_events; -} - -/*PAGE - * - * _Event_sets_Get - */ - -STATIC INLINE rtems_event_set _Event_sets_Get( - rtems_event_set the_event_set, - rtems_event_set the_event_condition -) -{ - return ( the_event_set & the_event_condition ); -} - -/*PAGE - * - * _Event_sets_Clear - */ - -STATIC INLINE rtems_event_set _Event_sets_Clear( - rtems_event_set the_event_set, - rtems_event_set the_mask -) -{ - return ( the_event_set & ~(the_mask) ); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/message.inl b/cpukit/rtems/inline/rtems/rtems/message.inl deleted file mode 100644 index ee8d5f6cb1..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/message.inl +++ /dev/null @@ -1,160 +0,0 @@ -/* message.inl - * - * This include file contains the static inline implementation of all - * inlined routines in the Message Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MESSAGE_QUEUE_inl -#define __MESSAGE_QUEUE_inl - -/*PAGE - * - * _Message_queue_Copy_buffer - * - */ - -STATIC INLINE void _Message_queue_Copy_buffer ( - Message_queue_Buffer *source, - Message_queue_Buffer *destination -) -{ - *destination = *source; -} - -/*PAGE - * - * _Message_queue_Allocate_message_buffer - * - */ - -STATIC INLINE Message_queue_Buffer_control * - _Message_queue_Allocate_message_buffer ( void ) -{ - return (Message_queue_Buffer_control *) - _Chain_Get( &_Message_queue_Inactive_messages ); -} - -/*PAGE - * - * _Message_queue_Free_message_buffer - * - */ - -STATIC INLINE void _Message_queue_Free_message_buffer ( - Message_queue_Buffer_control *the_message -) -{ - _Chain_Append( &_Message_queue_Inactive_messages, &the_message->Node ); -} - -/*PAGE - * - * _Message_queue_Get_pending_message - * - */ - -STATIC INLINE - Message_queue_Buffer_control *_Message_queue_Get_pending_message ( - Message_queue_Control *the_message_queue -) -{ - return (Message_queue_Buffer_control *) - _Chain_Get_unprotected( &the_message_queue->Pending_messages ); -} - -/*PAGE - * - * _Message_queue_Append - * - */ - -STATIC INLINE void _Message_queue_Append ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -) -{ - _Chain_Append( &the_message_queue->Pending_messages, &the_message->Node ); -} - -/*PAGE - * - * _Message_queue_Prepend - * - */ - -STATIC INLINE void _Message_queue_Prepend ( - Message_queue_Control *the_message_queue, - Message_queue_Buffer_control *the_message -) -{ - _Chain_Prepend( - &the_message_queue->Pending_messages, - &the_message->Node - ); -} - -/*PAGE - * - * _Message_queue_Is_null - * - */ - -STATIC INLINE boolean _Message_queue_Is_null ( - Message_queue_Control *the_message_queue -) -{ - return ( the_message_queue == NULL ); -} - -/*PAGE - * - * _Message_queue_Allocate - * - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Allocate ( void ) -{ - return (Message_queue_Control *) - _Objects_Allocate( &_Message_queue_Information ); -} - -/*PAGE - * - * _Message_queue_Free - * - */ - -STATIC INLINE void _Message_queue_Free ( - Message_queue_Control *the_message_queue -) -{ - _Objects_Free( &_Message_queue_Information, &the_message_queue->Object ); -} - -/*PAGE - * - * _Message_queue_Get - * - */ - -STATIC INLINE Message_queue_Control *_Message_queue_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Message_queue_Control *) - _Objects_Get( &_Message_queue_Information, id, location ); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/modes.inl b/cpukit/rtems/inline/rtems/rtems/modes.inl deleted file mode 100644 index 6331a18a3a..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/modes.inl +++ /dev/null @@ -1,136 +0,0 @@ -/* modes.inl - * - * This include file contains the static inline implementation of the - * inlined routines in the Mode Handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MODES_inl -#define __MODES_inl - -/*PAGE - * - * RTEMS_INTERRUPT_LEVEL - */ - -STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL ( - rtems_mode mode_set -) -{ - return mode_set & RTEMS_INTERRUPT_MASK; -} - -/*PAGE - * - * _Modes_Mask_changed - * - */ - -STATIC INLINE boolean _Modes_Mask_changed ( - rtems_mode mode_set, - rtems_mode masks -) -{ - return ( mode_set & masks ); -} - -/*PAGE - * - * _Modes_Is_asr_disabled - * - */ - -STATIC INLINE boolean _Modes_Is_asr_disabled ( - rtems_mode mode_set -) -{ - return ( mode_set & RTEMS_ASR_MASK ); -} - -/*PAGE - * - * _Modes_Is_preempt - * - */ - -STATIC INLINE boolean _Modes_Is_preempt ( - rtems_mode mode_set -) -{ - return ( ( mode_set & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT ); -} - -/*PAGE - * - * _Modes_Is_timeslice - * - */ - -STATIC INLINE boolean _Modes_Is_timeslice ( - rtems_mode mode_set -) -{ - return ((mode_set & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) == - (RTEMS_TIMESLICE|RTEMS_PREEMPT) ); -} - -/*PAGE - * - * _Modes_Get_interrupt_level - * - */ - -STATIC INLINE ISR_Level _Modes_Get_interrupt_level ( - rtems_mode mode_set -) -{ - return ( mode_set & RTEMS_INTERRUPT_MASK ); -} - -/*PAGE - * - * _Modes_Set_interrupt_level - * - */ - -STATIC INLINE void _Modes_Set_interrupt_level ( - rtems_mode mode_set -) -{ - _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) ); -} - -/*PAGE - * - * _Modes_Change - * - */ - -STATIC INLINE void _Modes_Change ( - rtems_mode old_mode_set, - rtems_mode new_mode_set, - rtems_mode mask, - rtems_mode *out_mode_set, - rtems_mode *changed -) -{ - rtems_mode _out_mode; - - _out_mode = old_mode_set; - _out_mode &= ~mask; - _out_mode |= new_mode_set & mask; - *changed = _out_mode ^ old_mode_set; - *out_mode_set = _out_mode; -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/options.inl b/cpukit/rtems/inline/rtems/rtems/options.inl deleted file mode 100644 index b3c7312010..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/options.inl +++ /dev/null @@ -1,47 +0,0 @@ -/* options.inl - * - * This file contains the static inline implementation of the inlined - * routines from the Options Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OPTIONS_inl -#define __OPTIONS_inl - -/*PAGE - * - * _Options_Is_no_wait - * - */ - -STATIC INLINE boolean _Options_Is_no_wait ( - rtems_option option_set -) -{ - return (option_set & RTEMS_NO_WAIT); -} - -/*PAGE - * - * _Options_Is_any - * - */ - -STATIC INLINE boolean _Options_Is_any ( - rtems_option option_set -) -{ - return (option_set & RTEMS_EVENT_ANY); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/part.inl b/cpukit/rtems/inline/rtems/rtems/part.inl deleted file mode 100644 index 78f86dcefc..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/part.inl +++ /dev/null @@ -1,157 +0,0 @@ -/* part.inl - * - * This file contains the macro implementation of all inlined routines - * in the Partition Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PARTITION_inl -#define __PARTITION_inl - -/*PAGE - * - * _Partition_Allocate_buffer - * - */ - -STATIC INLINE void *_Partition_Allocate_buffer ( - Partition_Control *the_partition -) -{ - return _Chain_Get( &the_partition->Memory ); -} - -/*PAGE - * - * _Partition_Free_buffer - * - */ - -STATIC INLINE void _Partition_Free_buffer ( - Partition_Control *the_partition, - Chain_Node *the_buffer -) -{ - _Chain_Append( &the_partition->Memory, the_buffer ); -} - -/*PAGE - * - * _Partition_Is_buffer_on_boundary - * - */ - -STATIC INLINE boolean _Partition_Is_buffer_on_boundary ( - void *the_buffer, - Partition_Control *the_partition -) -{ - unsigned32 offset; - - offset = (unsigned32) _Addresses_Subtract( - the_buffer, - the_partition->starting_address - ); - - return ((offset % the_partition->buffer_size) == 0); -} - -/*PAGE - * - * _Partition_Is_buffer_valid - * - */ - -STATIC INLINE boolean _Partition_Is_buffer_valid ( - Chain_Node *the_buffer, - Partition_Control *the_partition -) -{ - void *starting; - void *ending; - - starting = the_partition->starting_address; - ending = _Addresses_Add_offset( starting, the_partition->length ); - - return ( - _Addresses_Is_in_range( the_buffer, starting, ending ) && - _Partition_Is_buffer_on_boundary( the_buffer, the_partition ) - ); -} - -/*PAGE - * - * _Partition_Is_buffer_size_aligned - * - */ - -STATIC INLINE boolean _Partition_Is_buffer_size_aligned ( - unsigned32 buffer_size -) -{ - return ((buffer_size % CPU_PARTITION_ALIGNMENT) == 0); -} - -/*PAGE - * - * _Partition_Allocate - * - */ - -STATIC INLINE Partition_Control *_Partition_Allocate ( void ) -{ - return (Partition_Control *) _Objects_Allocate( &_Partition_Information ); -} - -/*PAGE - * - * _Partition_Free - * - */ - -STATIC INLINE void _Partition_Free ( - Partition_Control *the_partition -) -{ - _Objects_Free( &_Partition_Information, &the_partition->Object ); -} - -/*PAGE - * - * _Partition_Get - * - */ - -STATIC INLINE Partition_Control *_Partition_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Partition_Control *) - _Objects_Get( &_Partition_Information, id, location ); -} - -/*PAGE - * - * _Partition_Is_null - * - */ - -STATIC INLINE boolean _Partition_Is_null ( - Partition_Control *the_partition -) -{ - return ( the_partition == NULL ); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/ratemon.inl b/cpukit/rtems/inline/rtems/rtems/ratemon.inl deleted file mode 100644 index b748f919b3..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/ratemon.inl +++ /dev/null @@ -1,113 +0,0 @@ -/* ratemon.inl - * - * This file contains the static inline implementation of the inlined - * routines in the Rate Monotonic Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RATE_MONOTONIC_inl -#define __RATE_MONOTONIC_inl - -/*PAGE - * - * _Rate_monotonic_Allocate - * - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void ) -{ - return (Rate_monotonic_Control *) - _Objects_Allocate( &_Rate_monotonic_Information ); -} - -/*PAGE - * - * _Rate_monotonic_Free - * - */ - -STATIC INLINE void _Rate_monotonic_Free ( - Rate_monotonic_Control *the_period -) -{ - _Objects_Free( &_Rate_monotonic_Information, &the_period->Object ); -} - -/*PAGE - * - * _Rate_monotonic_Get - * - */ - -STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Rate_monotonic_Control *) - _Objects_Get( &_Rate_monotonic_Information, id, location ); -} - -/*PAGE - * - * _Rate_monotonic_Is_active - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_active ( - Rate_monotonic_Control *the_period -) -{ - return (the_period->state == RATE_MONOTONIC_ACTIVE); -} - -/*PAGE - * - * _Rate_monotonic_Is_inactive - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_inactive ( - Rate_monotonic_Control *the_period -) -{ - return (the_period->state == RATE_MONOTONIC_INACTIVE); -} - -/*PAGE - * - * _Rate_monotonic_Is_expired - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_expired ( - Rate_monotonic_Control *the_period -) -{ - return (the_period->state == RATE_MONOTONIC_EXPIRED); -} - -/*PAGE - * - * _Rate_monotonic_Is_null - * - */ - -STATIC INLINE boolean _Rate_monotonic_Is_null ( - Rate_monotonic_Control *the_period -) -{ - return (the_period == NULL); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/region.inl b/cpukit/rtems/inline/rtems/rtems/region.inl deleted file mode 100644 index 5a0e4da1bf..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/region.inl +++ /dev/null @@ -1,101 +0,0 @@ -/* region.inl - * - * This file contains the macro implementation of the inlined - * routines from the Region Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __REGION_inl -#define __REGION_inl - -/*PAGE - * - * _Region_Allocate - * - */ - -STATIC INLINE Region_Control *_Region_Allocate( void ) -{ - return (Region_Control *) _Objects_Allocate( &_Region_Information ); -} - -/*PAGE - * - * _Region_Free - * - */ - -STATIC INLINE void _Region_Free ( - Region_Control *the_region -) -{ - _Objects_Free( &_Region_Information, &the_region->Object ); -} - -/*PAGE - * - * _Region_Get - * - */ - -STATIC INLINE Region_Control *_Region_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Region_Control *) - _Objects_Get( &_Region_Information, id, location ); -} - -/*PAGE - * - * _Region_Allocate_segment - * - */ - -STATIC INLINE void *_Region_Allocate_segment ( - Region_Control *the_region, - unsigned32 size -) -{ - return _Heap_Allocate( &the_region->Memory, size ); -} - -/*PAGE - * - * _Region_Free_segment - * - */ - -STATIC INLINE boolean _Region_Free_segment ( - Region_Control *the_region, - void *the_segment -) -{ - return _Heap_Free( &the_region->Memory, the_segment ); -} - -/*PAGE - * - * _Region_Is_null - * - */ - -STATIC INLINE boolean _Region_Is_null ( - Region_Control *the_region -) -{ - return ( the_region == NULL ); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/sem.inl b/cpukit/rtems/inline/rtems/rtems/sem.inl deleted file mode 100644 index 518684a97a..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/sem.inl +++ /dev/null @@ -1,73 +0,0 @@ -/* sem.inl - * - * This file contains the static inlin implementation of the inlined - * routines from the Semaphore Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SEMAPHORE_inl -#define __SEMAPHORE_inl - -/*PAGE - * - * _Semaphore_Allocate - * - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Allocate( void ) -{ - return (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information ); -} - -/*PAGE - * - * _Semaphore_Free - * - */ - -STATIC INLINE void _Semaphore_Free ( - Semaphore_Control *the_semaphore -) -{ - _Objects_Free( &_Semaphore_Information, &the_semaphore->Object ); -} - -/*PAGE - * - * _Semaphore_Get - * - */ - -STATIC INLINE Semaphore_Control *_Semaphore_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Semaphore_Control *) - _Objects_Get( &_Semaphore_Information, id, location ); -} - -/*PAGE - * - * _Semaphore_Is_null - * - */ - -STATIC INLINE boolean _Semaphore_Is_null ( - Semaphore_Control *the_semaphore -) -{ - return ( the_semaphore == NULL ); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/status.inl b/cpukit/rtems/inline/rtems/rtems/status.inl deleted file mode 100644 index bd158e535b..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/status.inl +++ /dev/null @@ -1,60 +0,0 @@ -/* inline/status.inl - * - * This include file contains the implementations of the inlined - * routines for the status package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_STATUS_inl -#define __INLINE_STATUS_inl - -/*PAGE - * - * rtems_is_status_successful - * - */ - -STATIC INLINE boolean rtems_is_status_successful( - rtems_status_code code -) -{ - return (code == RTEMS_SUCCESSFUL); -} - -/*PAGE - * - * rtems_are_statuses_equal - * - */ - -STATIC INLINE boolean rtems_are_statuses_equal( - rtems_status_code code1, - rtems_status_code code2 -) -{ - return (code1 == code2); -} - -/* - * _Status_Is_proxy_blocking - * - */ - -STATIC INLINE boolean _Status_Is_proxy_blocking ( - rtems_status_code code -) -{ - return (code == RTEMS_PROXY_BLOCKING); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/tasks.inl b/cpukit/rtems/inline/rtems/rtems/tasks.inl deleted file mode 100644 index d5df18831a..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/tasks.inl +++ /dev/null @@ -1,90 +0,0 @@ -/* tasks.inl - * - * This file contains the static inline implementation of all inlined - * routines in the with RTEMS Tasks Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TASKS_inl -#define __RTEMS_TASKS_inl - -/*PAGE - * - * _RTEMS_tasks_Allocate - * - */ - -STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void ) -{ - return (Thread_Control *) _Objects_Allocate( &_Thread_Information ); -} - -/*PAGE - * - * _RTEMS_tasks_Free - * - */ - -STATIC INLINE void _RTEMS_tasks_Free ( - Thread_Control *the_task -) -{ - _Objects_Free( &_Thread_Information, &the_task->Object ); -} - -/*PAGE - * - * _RTEMS_tasks_Cancel_wait - * - */ - -STATIC INLINE void _RTEMS_tasks_Cancel_wait( - Thread_Control *the_thread -) -{ - States_Control state; - States_Control remote_state; - - state = the_thread->current_state; - - if ( _States_Is_waiting_on_thread_queue( state ) ) { - if ( _States_Is_waiting_for_rpc_reply( state ) && - _States_Is_locally_blocked( state ) ) { - remote_state = _States_Clear( - STATES_WAITING_FOR_RPC_REPLY | STATES_TRANSIENT, - state - ); - - switch ( remote_state ) { - - case STATES_WAITING_FOR_BUFFER: - _Partition_MP_Send_extract_proxy( the_thread ); - break; - case STATES_WAITING_FOR_SEGMENT: - _Region_MP_Send_extract_proxy( the_thread ); - break; - case STATES_WAITING_FOR_SEMAPHORE: - _Semaphore_MP_Send_extract_proxy( the_thread ); - break; - case STATES_WAITING_FOR_MESSAGE: - _Message_queue_MP_Send_extract_proxy( the_thread ); - break; - } - } - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - } - else if ( _Watchdog_Is_active( &the_thread->Timer ) ) - (void) _Watchdog_Remove( &the_thread->Timer ); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/timer.inl b/cpukit/rtems/inline/rtems/rtems/timer.inl deleted file mode 100644 index 7af3b9fa3d..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/timer.inl +++ /dev/null @@ -1,112 +0,0 @@ -/* timer.inl - * - * This file contains the static inline implementation of the inlined routines - * from the Timer Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIMER_inl -#define __TIMER_inl - -/*PAGE - * - * _Timer_Allocate - * - */ - -STATIC INLINE Timer_Control *_Timer_Allocate( void ) -{ - return (Timer_Control *) _Objects_Allocate( &_Timer_Information ); -} - -/*PAGE - * - * _Timer_Free - * - */ - -STATIC INLINE void _Timer_Free ( - Timer_Control *the_timer -) -{ - _Objects_Free( &_Timer_Information, &the_timer->Object ); -} - -/*PAGE - * - * _Timer_Get - * - */ - -STATIC INLINE Timer_Control *_Timer_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Timer_Control *) - _Objects_Get( &_Timer_Information, id, location ); -} - -/*PAGE - * - * _Timer_Is_interval_class - * - */ - -STATIC INLINE boolean _Timer_Is_interval_class ( - Timer_Classes the_class -) -{ - return ( the_class == TIMER_INTERVAL ); -} - -/*PAGE - * - * _Timer_Is_time_of_day_class - * - */ - -STATIC INLINE boolean _Timer_Is_timer_of_day_class ( - Timer_Classes the_class -) -{ - return ( the_class == TIMER_TIME_OF_DAY ); -} - -/*PAGE - * - * _Timer_Is_dormant_class - * - */ - -STATIC INLINE boolean _Timer_Is_dormant_class ( - Timer_Classes the_class -) -{ - return ( the_class == TIMER_DORMANT ); -} - -/*PAGE - * - * _Timer_Is_null - * - */ - -STATIC INLINE boolean _Timer_Is_null ( - Timer_Control *the_timer -) -{ - return ( the_timer == NULL ); -} - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/asr.inl b/cpukit/rtems/macros/rtems/rtems/asr.inl deleted file mode 100644 index 421755879b..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/asr.inl +++ /dev/null @@ -1,89 +0,0 @@ -/* macros/asr.h - * - * This include file contains the implemenation of all routines - * associated with the asynchronous signal handler which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ASR_h -#define __INLINE_ASR_h - -#include - -/*PAGE - * - * _ASR_Initialize - * - */ - -#define _ASR_Initialize( _information ) \ -{ \ - (_information)->handler = NULL; \ - (_information)->mode_set = RTEMS_DEFAULT_MODES; \ - (_information)->signals_posted = 0; \ - (_information)->signals_pending = 0; \ - (_information)->nest_level = 0; \ -} - -/*PAGE - * - * _ASR_Swap_signals - * - */ - -#define _ASR_Swap_signals( _information ) \ -{ \ - rtems_signal_set _signals; \ - ISR_Level _level; \ - \ - _ISR_Disable( _level ); \ - _signals = (_information)->signals_pending; \ - (_information)->signals_pending = (_information)->signals_posted; \ - (_information)->signals_posted = _signals; \ - _ISR_Enable( _level ); \ -} - -/*PAGE - * - * _ASR_Is_null_handler - * - */ - -#define _ASR_Is_null_handler( _asr_handler ) \ - ( (_asr_handler) == NULL ) - -/*PAGE - * - * _ASR_Are_signals_pending - * - */ - -#define _ASR_Are_signals_pending( _information ) \ - ( (_information)->signals_posted != 0 ) - -/*PAGE - * - * _ASR_Post_signals - * - */ - -#define _ASR_Post_signals( _signals, _signal_set ) \ - do { \ - ISR_Level _level; \ - \ - _ISR_Disable( _level ); \ - *(_signal_set) |= (_signals); \ - _ISR_Enable( _level ); \ - } while ( 0 ) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/attr.inl b/cpukit/rtems/macros/rtems/rtems/attr.inl deleted file mode 100644 index 602622ca35..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/attr.inl +++ /dev/null @@ -1,91 +0,0 @@ -/* macros/attr.h - * - * This include file contains all of the inlined routines associated - * with attributes. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_ATTRIBUTES_h -#define __MACROS_ATTRIBUTES_h - -/*PAGE - * - * _Attributes_Set - */ - -#define _Attributes_Set( _new_attributes, _attribute_set ) \ - ( (_attribute_set) | (_new_attributes) ) - -/*PAGE - * - * _Attributes_Clear - */ - -#define _Attributes_Clear( _attribute_set, _mask ) \ - ( (_attribute_set) & ~(_mask) ) - -/*PAGE - * - * _Attributes_Is_floating_point - * - */ - -#define _Attributes_Is_floating_point( _attribute_set ) \ - ( (_attribute_set) & RTEMS_FLOATING_POINT ) - -/*PAGE - * - * _Attributes_Is_global - * - */ - -#define _Attributes_Is_global( _attribute_set ) \ - ( (_attribute_set) & RTEMS_GLOBAL ) - -/*PAGE - * - * _Attributes_Is_priority - * - */ - -#define _Attributes_Is_priority( _attribute_set ) \ - ( (_attribute_set) & RTEMS_PRIORITY ) - -/*PAGE - * - * _Attributes_Is_limit - * - */ - -#define _Attributes_Is_limit( _attribute_set ) \ - ( (_attribute_set) & RTEMS_LIMIT ) - -/*PAGE - * - * _Attributes_Is_binary_semaphore - * - */ - -#define _Attributes_Is_binary_semaphore( _attribute_set ) \ - ( (_attribute_set) & RTEMS_BINARY_SEMAPHORE ) - -/*PAGE - * - * _Attributes_Is_inherit_priority - * - */ - -#define _Attributes_Is_inherit_priority( _attribute_set ) \ - ( (_attribute_set) & RTEMS_INHERIT_PRIORITY ) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/dpmem.inl b/cpukit/rtems/macros/rtems/rtems/dpmem.inl deleted file mode 100644 index 3e1d7bce95..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/dpmem.inl +++ /dev/null @@ -1,59 +0,0 @@ -/* macros/dpmem.h - * - * This include file contains the inline routine used in conjunction - * with the Dual Ported Memory Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_DPMEM_h -#define __MACROS_DPMEM_h - -/*PAGE - * - * _Dual_ported_memory_Allocate - * - */ - -#define _Dual_ported_memory_Allocate() \ - (Dual_ported_memory_Control *) \ - _Objects_Allocate( &_Dual_ported_memory_Information ) - -/*PAGE - * - * _Dual_ported_memory_Free - * - */ - -#define _Dual_ported_memory_Free( _the_port ) \ - _Objects_Free( &_Dual_ported_memory_Information, &(_the_port)->Object ) - -/*PAGE - * - * _Dual_ported_memory_Get - * - */ - -#define _Dual_ported_memory_Get( _id, _location ) \ - (Dual_ported_memory_Control *) \ - _Objects_Get( &_Dual_ported_memory_Information, (_id), (_location) ) - - -/*PAGE - * - * _Dual_ported_memory_Is_null - */ - -#define _Dual_ported_memory_Is_null( _the_port ) \ - ( (_the_port) == NULL ) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/event.inl b/cpukit/rtems/macros/rtems/rtems/event.inl deleted file mode 100644 index 1d4cb78237..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/event.inl +++ /dev/null @@ -1,28 +0,0 @@ -/* macros/event.h - * - * This include file contains the implementation of macros for - * the Event Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_EVENT_h -#define __MACROS_EVENT_h - -/* - * Event_Manager_initialization - */ - -#define _Event_Manager_initialization() \ - _Event_Sync = FALSE - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/eventset.inl b/cpukit/rtems/macros/rtems/rtems/eventset.inl deleted file mode 100644 index 1803d18637..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/eventset.inl +++ /dev/null @@ -1,53 +0,0 @@ -/* eventset.inl - * - * This include file contains the macro implementation of inlined - * routines in the event set object. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __EVENT_SET_inl -#define __EVENT_SET_inl - -/*PAGE - * - * _Event_sets_Is_empty - */ - -#define _Event_sets_Is_empty( _the_event_set ) \ - ((_the_event_set) == 0 ) - -/*PAGE - * - * _Event_sets_Is_empty - */ - -#define _Event_sets_Post( _the_new_events, _the_event_set ) \ - *(_the_event_set) |= (_the_new_events) - -/*PAGE - * - * _Event_sets_Is_empty - */ - -#define _Event_sets_Get( _the_event_set, _the_event_condition ) \ - ((_the_event_set) & (_the_event_condition)) - -/*PAGE - * - * _Event_sets_Clear - */ - -#define _Event_sets_Clear( _the_event_set, _the_mask ) \ - ((_the_event_set) & ~(_the_mask)) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/message.inl b/cpukit/rtems/macros/rtems/rtems/message.inl deleted file mode 100644 index 5415708ac5..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/message.inl +++ /dev/null @@ -1,118 +0,0 @@ -/* message.inl - * - * This include file contains the macro implementation of all - * inlined routines in the Message Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MESSAGE_QUEUE_inl -#define __MESSAGE_QUEUE_inl - -/*PAGE - * - * _Message_queue_Copy_buffer - */ - -#define _Message_queue_Copy_buffer( _source, _destination ) \ - *(Message_queue_Buffer *)(_destination) = \ - *(Message_queue_Buffer *)(_source) - -/*PAGE - * - * _Message_queue_Allocate_message_buffer - * - */ - -#define _Message_queue_Allocate_message_buffer() \ - (Message_queue_Buffer_control *) \ - _Chain_Get( &_Message_queue_Inactive_messages ) - -/*PAGE - * - * _Message_queue_Free_message_buffer - * - */ - -#define _Message_queue_Free_message_buffer( _the_message ) \ - _Chain_Append( &_Message_queue_Inactive_messages, &(_the_message)->Node ) - -/*PAGE - * - * _Message_queue_Get_pending_message - * - */ - -#define _Message_queue_Get_pending_message( _the_message_queue ) \ - (Message_queue_Buffer_control *) \ - _Chain_Get_unprotected( &(_the_message_queue)->Pending_messages ) - -/*PAGE - * - * _Message_queue_Append - * - */ - -#define _Message_queue_Append( _the_message_queue, _the_message ) \ - _Chain_Append( &(_the_message_queue)->Pending_messages, \ - &(_the_message)->Node ) - -/*PAGE - * - * _Message_queue_Prepend - * - */ - -#define _Message_queue_Prepend( _the_message_queue, _the_message ) \ - _Chain_Prepend( &(_the_message_queue)->Pending_messages, \ - &(_the_message)->Node ) - -/*PAGE - * - * _Message_queue_Is_null - * - */ - -#define _Message_queue_Is_null( _the_message_queue ) \ - ( (_the_message_queue) == NULL ) - -/*PAGE - * - * _Message_queue_Allocate - * - */ - -#define _Message_queue_Allocate() \ - (Message_queue_Control *) \ - _Objects_Allocate( &_Message_queue_Information ) - -/*PAGE - * - * _Message_queue_Free - * - */ - -#define _Message_queue_Free( _the_message_queue ) \ - _Objects_Free( &_Message_queue_Information, \ - &(_the_message_queue)->Object ) - -/*PAGE - * - * _Message_queue_Get - * - */ - -#define _Message_queue_Get( _id, _location ) \ - (Message_queue_Control *) \ - _Objects_Get( &_Message_queue_Information, (_id), (_location) ) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/modes.inl b/cpukit/rtems/macros/rtems/rtems/modes.inl deleted file mode 100644 index f8ac061dce..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/modes.inl +++ /dev/null @@ -1,101 +0,0 @@ -/* modes.inl - * - * This include file contains the macro implementation of the - * inlined routines in the Mode Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MODES_inl -#define __MODES_inl - -/*PAGE - * - * RTEMS_INTERRUPT_LEVEL - */ - -#define RTEMS_INTERRUPT_LEVEL( _mode_set ) \ - ( (_mode_set) & RTEMS_INTERRUPT_MASK ) - -/*PAGE - * - * _Modes_Mask_changed - * - */ - -#define _Modes_Mask_changed( _mode_set, _masks ) \ - ( (_mode_set) & (_masks) ) - -/*PAGE - * - * _Modes_Is_asr_disabled - * - */ - -#define _Modes_Is_asr_disabled( _mode_set ) \ - ( (_mode_set) & RTEMS_ASR_MASK ) - -/*PAGE - * - * _Modes_Is_preempt - * - */ - -#define _Modes_Is_preempt( _mode_set ) \ - ( ( (_mode_set) & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT ) - -/*PAGE - * - * _Modes_Is_timeslice - * - */ - -#define _Modes_Is_timeslice( _mode_set ) \ - (((_mode_set) & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) == \ - (RTEMS_TIMESLICE|RTEMS_PREEMPT) ) - -/*PAGE - * - * _Modes_Get_interrupt_level - * - */ - -#define _Modes_Get_interrupt_level( _mode_set ) \ - ( (_mode_set) & RTEMS_INTERRUPT_MASK ) - -/*PAGE - * - * _Modes_Set_interrupt_level - * - */ - -#define _Modes_Set_interrupt_level( _mode_set ) \ - _ISR_Set_level( _Modes_Get_interrupt_level( (_mode_set) ) ) - -/*PAGE - * - * _Modes_Change - * - */ - -#define _Modes_Change( _old_mode_set, _new_mode_set, \ - _mask, _out_mode_set, _changed ) \ - { rtems_mode _out_mode; \ - \ - _out_mode = (_old_mode_set); \ - _out_mode &= ~(_mask); \ - _out_mode |= (_new_mode_set) & (_mask); \ - *(_changed) = _out_mode ^ (_old_mode_set); \ - *(_out_mode_set) = _out_mode; \ - } - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/options.inl b/cpukit/rtems/macros/rtems/rtems/options.inl deleted file mode 100644 index 7c14e4fe4f..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/options.inl +++ /dev/null @@ -1,39 +0,0 @@ -/* options.inl - * - * This file contains the macro implementation of the inlined - * routines from the Options Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OPTIONS_inl -#define __OPTIONS_inl - -/*PAGE - * - * _Options_Is_no_wait - * - */ - -#define _Options_Is_no_wait( _option_set ) \ - ( (_option_set) & RTEMS_NO_WAIT ) - -/*PAGE - * - * _Options_Is_any - * - */ - -#define _Options_Is_any( _option_set ) \ - ( (_option_set) & RTEMS_EVENT_ANY ) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/part.inl b/cpukit/rtems/macros/rtems/rtems/part.inl deleted file mode 100644 index 55c188b210..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/part.inl +++ /dev/null @@ -1,117 +0,0 @@ -/* part.inl - * - * This file contains the macro implementation of all inlined routines - * in the Partition Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PARTITION_inl -#define __PARTITION_inl - -/*PAGE - * - * _Partition_Allocate_buffer - * - */ - -#define _Partition_Allocate_buffer( _the_partition ) \ - _Chain_Get( &(_the_partition)->Memory ) - -/*PAGE - * - * _Partition_Free_buffer - * - */ - -#define _Partition_Free_buffer( _the_partition, _the_buffer ) \ - _Chain_Append( &(_the_partition)->Memory, (_the_buffer) ) - -/*PAGE - * - * _Partition_Is_buffer_on_boundary - * - */ - -#define _Partition_Is_buffer_on_boundary( _the_buffer, _the_partition ) \ - ((((unsigned32) _Addresses_Subtract( \ - (_the_buffer), \ - (_the_partition)->starting_address ) \ - ) % \ - (_the_partition)->buffer_size) == 0) - -/*PAGE - * - * _Partition_Is_buffer_valid - * - */ - -#define _Partition_Is_buffer_valid( _the_buffer, _the_partition ) \ - ( \ - _Addresses_Is_in_range( \ - (_the_buffer), \ - (_the_partition)->starting_address, \ - _Addresses_Add_offset( \ - (_the_partition)->starting_address, \ - (_the_partition)->length \ - ) \ - ) && \ - _Partition_Is_buffer_on_boundary( (_the_buffer), (_the_partition) ) \ - ) - -/*PAGE - * - * _Partition_Is_buffer_size_aligned - * - */ - -#define _Partition_Is_buffer_size_aligned( _buffer_size ) \ - ((_buffer_size) % CPU_PARTITION_ALIGNMENT == 0) - -/*PAGE - * - * _Partition_Allocate - * - */ - -#define _Partition_Allocate() \ - (Partition_Control *) _Objects_Allocate( &_Partition_Information ) - -/*PAGE - * - * _Partition_Free - * - */ - -#define _Partition_Free( _the_partition ) \ - _Objects_Free( &_Partition_Information, &(_the_partition)->Object ) - -/*PAGE - * - * _Partition_Get - * - */ - -#define _Partition_Get( _id, _location ) \ - (Partition_Control *) \ - _Objects_Get( &_Partition_Information, (_id), (_location) ) - -/*PAGE - * - * _Partition_Is_null - * - */ - -#define _Partition_Is_null( _the_partition ) \ - ( (_the_partition) == NULL ) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/ratemon.inl b/cpukit/rtems/macros/rtems/rtems/ratemon.inl deleted file mode 100644 index ebb182e6f1..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/ratemon.inl +++ /dev/null @@ -1,85 +0,0 @@ -/* ratemon.inl - * - * This file contains the macro implementation of the inlined - * routines in the Rate Monotonic Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RATE_MONOTONIC_inl -#define __RATE_MONOTONIC_inl - -/*PAGE - * - * _Rate_monotonic_Allocate - * - */ - -#define _Rate_monotonic_Allocate() \ - (Rate_monotonic_Control *) \ - _Objects_Allocate( &_Rate_monotonic_Information ) - -/*PAGE - * - * _Rate_monotonic_Free - * - */ - -#define _Rate_monotonic_Free( _the_period ) \ - _Objects_Free( &_Rate_monotonic_Information, &(_the_period)->Object ) - -/*PAGE - * - * _Rate_monotonic_Get - * - */ - -#define _Rate_monotonic_Get( _id, _location ) \ - (Rate_monotonic_Control *) \ - _Objects_Get( &_Rate_monotonic_Information, (_id), (_location) ) - -/*PAGE - * - * _Rate_monotonic_Is_active - * - */ - -#define _Rate_monotonic_Is_active( _the_period ) \ - ((_the_period)->state == RATE_MONOTONIC_ACTIVE) - -/*PAGE - * - * _Rate_monotonic_Is_inactive - * - */ - -#define _Rate_monotonic_Is_inactive( _the_period ) \ - ((_the_period)->state == RATE_MONOTONIC_INACTIVE) - -/*PAGE - * - * _Rate_monotonic_Is_expired - * - */ - -#define _Rate_monotonic_Is_expired( _the_period ) \ - ((_the_period)->state == RATE_MONOTONIC_EXPIRED) - -/*PAGE - * - * _Rate_monotonic_Is_null - * - */ - -#define _Rate_monotonic_Is_null( _the_period ) ( (_the_period) == NULL ) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/region.inl b/cpukit/rtems/macros/rtems/rtems/region.inl deleted file mode 100644 index 667d77e307..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/region.inl +++ /dev/null @@ -1,75 +0,0 @@ -/* region.inl - * - * This file contains the macro implementation of the inlined - * routines from the Region Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __REGION_inl -#define __REGION_inl - -/*PAGE - * - * _Region_Allocate - * - */ - -#define _Region_Allocate() \ - (Region_Control *) _Objects_Allocate( &_Region_Information ) - -/*PAGE - * - * _Region_Free - * - */ - -#define _Region_Free( _the_region ) \ - _Objects_Free( &_Region_Information, &(_the_region)->Object ) - -/*PAGE - * - * _Region_Get - * - */ - -#define _Region_Get( _id, _location ) \ - (Region_Control *) \ - _Objects_Get( &_Region_Information, (_id), (_location) ) - -/*PAGE - * - * _Region_Allocate_segment - * - */ - -#define _Region_Allocate_segment( _the_region, _size ) \ - _Heap_Allocate( &(_the_region)->Memory, (_size) ) - -/*PAGE - * - * _Region_Free_segment - * - */ - -#define _Region_Free_segment( _the_region, _the_segment ) \ - _Heap_Free( &(_the_region)->Memory, (_the_segment) ) - -/*PAGE - * - * _Region_Is_null - * - */ - -#define _Region_Is_null( _the_region ) ( (_the_region) == NULL ) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/sem.inl b/cpukit/rtems/macros/rtems/rtems/sem.inl deleted file mode 100644 index 7e94069009..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/sem.inl +++ /dev/null @@ -1,58 +0,0 @@ -/* sem.inl - * - * This file contains the macro implementation of the inlined - * routines from the Semaphore Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SEMAPHORE_inl -#define __SEMAPHORE_inl - -/*PAGE - * - * _Semaphore_Allocate - * - */ - -#define _Semaphore_Allocate() \ - (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information ) - -/*PAGE - * - * _Semaphore_Free - * - */ - -#define _Semaphore_Free( _the_semaphore ) \ - _Objects_Free( &_Semaphore_Information, &(_the_semaphore)->Object ) - -/*PAGE - * - * _Semaphore_Get - * - */ - -#define _Semaphore_Get( _id, _location ) \ - (Semaphore_Control *) \ - _Objects_Get( &_Semaphore_Information, (_id), (_location) ) - -/*PAGE - * - * _Semaphore_Is_null - * - */ - -#define _Semaphore_Is_null( _the_semaphore ) \ - ( (_the_semaphore) == NULL ) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/status.inl b/cpukit/rtems/macros/rtems/rtems/status.inl deleted file mode 100644 index c4f8a523df..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/status.inl +++ /dev/null @@ -1,47 +0,0 @@ -/* macros/status.h - * - * This include file contains the implementations of the inlined - * routines for the status package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_STATUS_h -#define __MACROS_STATUS_h - -/*PAGE - * - * rtems_is_status_successful - * - */ - -#define rtems_is_status_successful( _code ) \ - ( (_code) == RTEMS_SUCCESSFUL ) - -/*PAGE - * - * rtems_are_statuses_equal - * - */ - -#define rtems_are_statuses_equal( _code1, _code2 ) \ - ((_code1) == (_code2)) - -/* - * _Status_Is_proxy_blocking - * - */ - -#define _Status_Is_proxy_blocking( _code ) \ - ( (_code) == RTEMS_PROXY_BLOCKING ) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/tasks.inl b/cpukit/rtems/macros/rtems/rtems/tasks.inl deleted file mode 100644 index 7b40cbf7fd..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/tasks.inl +++ /dev/null @@ -1,82 +0,0 @@ -/* tasks.inl - * - * This file contains the macro implementation of all inlined - * routines in the with RTEMS Tasks Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TASKS_inl -#define __RTEMS_TASKS_inl - -/*PAGE - * - * _RTEMS_tasks_Allocate - * - */ - -#define _RTEMS_tasks_Allocate() \ - (Thread_Control *) _Objects_Allocate( &_Thread_Information ) - -/*PAGE - * - * _RTEMS_tasks_Free - * - */ - -#define _RTEMS_tasks_Free( _the_task ) \ - _Objects_Free( &_Thread_Information, &(_the_task)->Object ) - -/*PAGE - * - * _RTEMS_tasks_Cancel_wait - * - */ - -#define _RTEMS_tasks_Cancel_wait( _the_thread ) \ - { \ - States_Control _state; \ - States_Control _remote_state; \ - \ - _state = (_the_thread)->current_state; \ - \ - if ( _States_Is_waiting_on_thread_queue( _state ) ) { \ - if ( _States_Is_waiting_for_rpc_reply( _state ) && \ - _States_Is_locally_blocked( _state ) ) { \ - _remote_state = _States_Clear( \ - STATES_WAITING_FOR_RPC_REPLY + STATES_TRANSIENT, \ - _state \ - ); \ - \ - switch ( _remote_state ) { \ - \ - case STATES_WAITING_FOR_BUFFER: \ - _Partition_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - case STATES_WAITING_FOR_SEGMENT: \ - _Region_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - case STATES_WAITING_FOR_SEMAPHORE: \ - _Semaphore_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - case STATES_WAITING_FOR_MESSAGE: \ - _Message_queue_MP_Send_extract_proxy( (_the_thread) ); \ - break; \ - } \ - } \ - _Thread_queue_Extract( (_the_thread)->Wait.queue, (_the_thread) ); \ - } \ - else if ( _Watchdog_Is_active( &(_the_thread)->Timer ) ) \ - (void) _Watchdog_Remove( &(_the_thread)->Timer ); \ - } - -#endif -/* end of include file */ diff --git a/cpukit/rtems/macros/rtems/rtems/timer.inl b/cpukit/rtems/macros/rtems/rtems/timer.inl deleted file mode 100644 index 9026bed570..0000000000 --- a/cpukit/rtems/macros/rtems/rtems/timer.inl +++ /dev/null @@ -1,85 +0,0 @@ -/* timer.inl - * - * This file contains the macro implementation of the inlined routines - * from the Timer Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIMER_inl -#define __TIMER_inl - -/*PAGE - * - * _Timer_Allocate - * - */ - -#define _Timer_Allocate() \ - (Timer_Control *) _Objects_Allocate( &_Timer_Information ) - -/*PAGE - * - * _Timer_Free - * - */ - -#define _Timer_Free( _the_timer ) \ - _Objects_Free( &_Timer_Information, &(_the_timer)->Object ) - -/*PAGE - * - * _Timer_Get - * - */ - -#define _Timer_Get( _id, _location ) \ - (Timer_Control *) \ - _Objects_Get( &_Timer_Information, (_id), (_location) ) - -/*PAGE - * - * _Timer_Is_interval_class - * - */ - -#define _Timer_Is_interval_class( _the_class ) \ - ( (_the_class) == TIMER_INTERVAL ) - -/*PAGE - * - * _Timer_Is_time_of_day_class - * - */ - -#define _Timer_Is_time_of_day_class( _the_class ) \ - ( (_the_class) == TIMER_TIME_OF_DAY ) - -/*PAGE - * - * _Timer_Is_dormant_class - * - */ - -#define _Timer_Is_dormant_class( _the_class ) \ - ( (_the_class) == TIMER_DORMANT ) - -/*PAGE - * - * _Timer_Is_null - * - */ - -#define _Timer_Is_null( _the_timer ) \ - ( (_the_timer) == NULL ) - -#endif -/* end of include file */ diff --git a/cpukit/rtems/src/dpmem.c b/cpukit/rtems/src/dpmem.c deleted file mode 100644 index 0aacecec5b..0000000000 --- a/cpukit/rtems/src/dpmem.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - * Dual Port Memory Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/*PAGE - * - * _Dual_ported_memory_Manager_initialization - * - * This routine initializes all dual-ported memory manager related - * data structures. - * - * Input parameters: - * maximum_ports - number of ports to initialize - * - * Output parameters: NONE - */ - -void _Dual_ported_memory_Manager_initialization( - unsigned32 maximum_ports -) -{ - _Objects_Initialize_information( - &_Dual_ported_memory_Information, - FALSE, - maximum_ports, - sizeof( Dual_ported_memory_Control ) - ); -} - -/*PAGE - * - * rtems_port_create - * - * This directive creates a port into a dual-ported memory area. - * - * Input parameters: - * name - user defined port name - * internal_start - internal start address of port - * external_start - external start address of port - * length - physical length in bytes - * id - address of port id to set - * - * Output parameters: - * id - port id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_port_create( - Objects_Name name, - void *internal_start, - void *external_start, - unsigned32 length, - Objects_Id *id -) -{ - register Dual_ported_memory_Control *the_port; - - if ( !_Objects_Is_name_valid( name) ) - return ( RTEMS_INVALID_NAME ); - - if ( !_Addresses_Is_aligned( internal_start ) || - !_Addresses_Is_aligned( external_start ) ) - return( RTEMS_INVALID_ADDRESS ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_port = _Dual_ported_memory_Allocate(); - - if ( !the_port ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_port->internal_base = internal_start; - the_port->external_base = external_start; - the_port->length = length - 1; - - _Objects_Open( &_Dual_ported_memory_Information, - &the_port->Object, name ); - *id = the_port->Object.id; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_port_ident - * - * This directive returns the system ID associated with - * the port name. - * - * Input parameters: - * name - user defined port name - * id - pointer to port id - * - * Output parameters: - * *id - port id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_port_ident( - Objects_Name name, - Objects_Id *id -) -{ - return( - _Objects_Name_to_id( - &_Dual_ported_memory_Information, - name, - RTEMS_SEARCH_ALL_NODES, - id - ) - ); -} - -/*PAGE - * - * rtems_port_delete - * - * This directive allows a thread to delete a dual-ported memory area - * specified by the dual-ported memory identifier. - * - * Input parameters: - * id - dual-ported memory area id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_port_delete( - Objects_Id id -) -{ - register Dual_ported_memory_Control *the_port; - Objects_Locations location; - - the_port = _Dual_ported_memory_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - _Objects_Close( &_Dual_ported_memory_Information, &the_port->Object ); - _Dual_ported_memory_Free( the_port ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_port_internal_to_external - * - * This directive converts an internal dual-ported memory address to an - * external dual-ported memory address. If the given internal address - * is an invalid dual-ported address, then the external address is set - * to the given internal address. - * - * Input parameters: - * id - id of dual-ported memory object - * internal - internal address to set - * external - pointer to external address - * - * Output parameters: - * external - external address - * RTEMS_SUCCESSFUL - always succeeds - */ - -rtems_status_code rtems_port_internal_to_external( - Objects_Id id, - void *internal, - void **external -) -{ - register Dual_ported_memory_Control *the_port; - Objects_Locations location; - unsigned32 ending; - - the_port = _Dual_ported_memory_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - ending = _Addresses_Subtract( internal, the_port->internal_base ); - if ( ending > the_port->length ) - *external = internal; - else - *external = _Addresses_Add_offset( the_port->external_base, - ending ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_port_external_to_internal - * - * This directive converts an external dual-ported memory address to an - * internal dual-ported memory address. If the given external address - * is an invalid dual-ported address, then the internal address is set - * to the given external address. - * - * Input parameters: - * id - id of dp memory object - * external - external address - * internal - pointer of internal address to set - * - * Output parameters: - * internal - internal address - * RTEMS_SUCCESSFUL - always succeeds - */ - -rtems_status_code rtems_port_external_to_internal( - Objects_Id id, - void *external, - void **internal -) -{ - register Dual_ported_memory_Control *the_port; - Objects_Locations location; - unsigned32 ending; - - the_port = _Dual_ported_memory_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - ending = _Addresses_Subtract( external, the_port->external_base ); - if ( ending > the_port->length ) - *internal = external; - else - *internal = _Addresses_Add_offset( the_port->internal_base, - ending ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/cpukit/rtems/src/event.c b/cpukit/rtems/src/event.c deleted file mode 100644 index 6a25ae81c3..0000000000 --- a/cpukit/rtems/src/event.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * Event Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * rtems_event_send - * - * This directive allows a thread send an event set to another thread. - * - * Input parameters: - * id - thread id - * event - event set - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_event_send( - Objects_Id id, - rtems_event_set event_in -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return( - _Event_MP_Send_request_packet( - EVENT_MP_SEND_REQUEST, - id, - event_in - ) - ); - case OBJECTS_LOCAL: - _Event_sets_Post( event_in, &the_thread->pending_events ); - _Event_Surrender( the_thread ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_event_receive - * - * This directive allows a thread to receive a set of events. - * - * Input parameters: - * event_in - input event condition - * option_set - options - * ticks - number of ticks to wait (0 means wait forever) - * event_out - pointer to output event set - * - * Output parameters: - * event out - event set - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_event_receive( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks, - rtems_event_set *event_out -) -{ - if ( _Event_sets_Is_empty( event_in ) ) { - *event_out = _Thread_Executing->pending_events; - return( RTEMS_SUCCESSFUL ); - } - - _Thread_Disable_dispatch(); - _Event_Seize( event_in, option_set, ticks ); - _Thread_Enable_dispatch(); - *event_out = _Thread_Executing->events_out; - return( _Thread_Executing->Wait.return_code ); -} - -/*PAGE - * - * _Event_Seize - * - * This routine attempts to satisfy the requested event condition - * for the running thread. - * - * Input parameters: - * event_in - the event condition to satisfy - * option_set - acquire event options - * ticks - interval to wait - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * available - * wait - * check sync - */ - -void _Event_Seize( - rtems_event_set event_in, - rtems_option option_set, - rtems_interval ticks -) -{ - Thread_Control *executing; - rtems_event_set seized_events; - rtems_event_set pending_events; - ISR_Level level; - - executing = _Thread_Executing; - executing->Wait.return_code = RTEMS_SUCCESSFUL; - - _ISR_Disable( level ); - pending_events = executing->pending_events; - seized_events = _Event_sets_Get( pending_events, event_in ); - - if ( !_Event_sets_Is_empty( seized_events ) && - (seized_events == event_in || _Options_Is_any( option_set )) ) { - executing->pending_events = - _Event_sets_Clear( pending_events, seized_events ); - _ISR_Enable( level ); - executing->events_out = seized_events; - return; - } - - if ( _Options_Is_no_wait( option_set ) ) { - _ISR_Enable( level ); - executing->Wait.return_code = RTEMS_UNSATISFIED; - executing->events_out = seized_events; - return; - } - - _Event_Sync = TRUE; - executing->Wait.option_set = option_set; - executing->Wait.Extra.event_condition = event_in; - - _ISR_Enable( level ); - _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT ); - - if ( ticks ) { - _Watchdog_Initialize( - &executing->Timer, - _Event_Timeout, - executing->Object.id, - NULL - ); - _Watchdog_Insert_ticks( - &executing->Timer, - ticks, - WATCHDOG_NO_ACTIVATE - ); - } - - _ISR_Disable( level ); - if ( _Event_Sync == TRUE ) { - _Event_Sync = FALSE; - if ( ticks ) - _Watchdog_Activate( &executing->Timer ); - _ISR_Enable( level ); - return; - } - _ISR_Enable( level ); - (void) _Watchdog_Remove( &executing->Timer ); - _Thread_Unblock( executing ); - return; -} - -/*PAGE - * - * _Event_Surrender - * - * This routines remove a thread from the specified threadq. - * - * Input parameters: - * the_thread - pointer to thread to be dequeued - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * before flash - * after flash - * check sync - */ - -void _Event_Surrender( - Thread_Control *the_thread -) -{ - ISR_Level level; - rtems_event_set pending_events; - rtems_event_set event_condition; - rtems_event_set seized_events; - - _ISR_Disable( level ); - pending_events = the_thread->pending_events; - event_condition = the_thread->Wait.Extra.event_condition; - - seized_events = _Event_sets_Get( pending_events, event_condition ); - - if ( !_Event_sets_Is_empty( seized_events ) ) { - if ( _States_Is_waiting_for_event( the_thread->current_state ) ) { - if ( seized_events == event_condition || - _Options_Is_any( the_thread->Wait.option_set ) ) { - the_thread->pending_events = - _Event_sets_Clear( pending_events, seized_events ); - (rtems_event_set *)the_thread->events_out = seized_events; - - _ISR_Flash( level ); - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } - else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - return; - } - } - else if ( _Thread_Is_executing( the_thread ) && _Event_Sync == TRUE ) { - if ( seized_events == event_condition || - _Options_Is_any( the_thread->Wait.option_set ) ) { - the_thread->pending_events = - _Event_sets_Clear( pending_events,seized_events ); - (rtems_event_set *)the_thread->events_out = seized_events; - _Event_Sync = FALSE; - } - } - } - _ISR_Enable( level ); -} - -/*PAGE - * - * _Event_Timeout - * - * This routine processes a thread which timeouts while waiting to - * receive an event_set. It is called by the watchdog handler. - * - * Input parameters: - * id - thread id - * - * Output parameters: NONE - */ - -void _Event_Timeout( - Objects_Id id, - void *ignored -) -{ - Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: /* impossible */ - break; - case OBJECTS_LOCAL: - the_thread->Wait.return_code = RTEMS_TIMEOUT; - _Thread_Unblock( the_thread ); - _Thread_Unnest_dispatch(); - break; - } -} diff --git a/cpukit/rtems/src/eventmp.c b/cpukit/rtems/src/eventmp.c deleted file mode 100644 index 4bc5925c2a..0000000000 --- a/cpukit/rtems/src/eventmp.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Multiprocessing Support for the Event Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Event_MP_Send_process_packet - * - * This subprogram is not needed since there are no process - * packets to be sent by this manager. - * - */ - -/*PAGE - * - * _Event_MP_Send_request_packet - * - */ - -rtems_status_code _Event_MP_Send_request_packet ( - Event_MP_Remote_operations operation, - Objects_Id event_id, - rtems_event_set event_in -) -{ - Event_MP_Packet *the_packet; - - switch ( operation ) { - - case EVENT_MP_SEND_REQUEST: - - the_packet = _Event_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_EVENT; - the_packet->Prefix.length = sizeof ( Event_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Event_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = event_id; - the_packet->event_in = event_in; - - return - _MPCI_Send_request_packet( - rtems_get_node( event_id ), - &the_packet->Prefix, - STATES_READY - ); - - break; - - case EVENT_MP_SEND_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _Event_MP_Send_response_packet - * - */ - -void _Event_MP_Send_response_packet ( - Event_MP_Remote_operations operation, - Thread_Control *the_thread -) -{ - Event_MP_Packet *the_packet; - - switch ( operation ) { - - case EVENT_MP_SEND_RESPONSE: - - the_packet = ( Event_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case EVENT_MP_SEND_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Event_MP_Process_packet - * - */ - -void _Event_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Event_MP_Packet *the_packet; - Thread_Control *the_thread; - - the_packet = (Event_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case EVENT_MP_SEND_REQUEST: - - the_packet->Prefix.return_code = rtems_event_send( - the_packet->Prefix.id, - the_packet->event_in - ); - - _Event_MP_Send_response_packet( - EVENT_MP_SEND_RESPONSE, - _Thread_Executing - ); - break; - - case EVENT_MP_SEND_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - - break; - - } -} - -/*PAGE - * - * _Event_MP_Send_object_was_deleted - * - * This subprogram is not needed since there are no objects - * deleted by this manager. - * - */ - -/*PAGE - * - * _Event_MP_Send_extract_proxy - * - * This subprogram is not needed since there are no objects - * deleted by this manager. - * - */ - -/*PAGE - * - * _Event_MP_Get_packet - * - */ - -Event_MP_Packet *_Event_MP_Get_packet ( void ) -{ - return ( (Event_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/cpukit/rtems/src/intr.c b/cpukit/rtems/src/intr.c deleted file mode 100644 index 25f5176967..0000000000 --- a/cpukit/rtems/src/intr.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Interrupt Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/* _Interrupt_Manager_initialization - * - * This routine initializes the interrupt manager. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void _Interrupt_Manager_initialization( void ) -{ -#if ( CPU_ALLOCATE_INTERRUPT_STACK == TRUE ) - - if ( _CPU_Table.interrupt_stack_size < RTEMS_MINIMUM_STACK_SIZE ) - rtems_fatal_error_occurred( RTEMS_INVALID_SIZE ); - - _CPU_Interrupt_stack_low = - _Workspace_Allocate_or_fatal_error( _CPU_Table.interrupt_stack_size ); - - _CPU_Interrupt_stack_high = _Addresses_Add_offset( - _CPU_Interrupt_stack_low, - _CPU_Table.interrupt_stack_size - ); - -#endif - -#if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE ) - _CPU_Install_interrupt_stack(); -#endif - -} - -/* rtems_interrupt_catch - * - * This directive allows a thread to specify what action to take when - * catching signals. - * - * Input parameters: - * new_isr_handler - address of interrupt service routine (isr) - * vector - interrupt vector number - * old_isr_handler - address at which to store previous ISR address - * - * Output parameters: - * RTEMS_SUCCESSFUL - always succeeds - * *old_isr_handler - previous ISR address - */ - -rtems_status_code rtems_interrupt_catch( - rtems_isr_entry new_isr_handler, - rtems_vector_number vector, - rtems_isr_entry *old_isr_handler -) -{ - if ( !_ISR_Is_vector_number_valid( vector ) ) - return( RTEMS_INVALID_NUMBER ); - - if ( !_ISR_Is_valid_user_handler( new_isr_handler ) ) - return( RTEMS_INVALID_ADDRESS ); - - _ISR_Install_vector( - vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler ); - - return( RTEMS_SUCCESSFUL ); -} diff --git a/cpukit/rtems/src/mp.c b/cpukit/rtems/src/mp.c deleted file mode 100644 index f9522b2296..0000000000 --- a/cpukit/rtems/src/mp.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Multiprocessing Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Multiprocessing_Manager_initialization - * - */ - -void _Multiprocessing_Manager_initialization ( void ) -{ - if ( _Configuration_MP_table->node < 1 || - _Configuration_MP_table->node > _Configuration_MP_table->maximum_nodes ) - rtems_fatal_error_occurred( RTEMS_INVALID_NODE ); - - _Internal_threads_Set_MP_receive_server( _Multiprocessing_Receive_server ); -} - -/*PAGE - * - * rtems_multiprocessing_announce - * - */ - -void rtems_multiprocessing_announce ( void ) -{ - _Thread_MP_Ready(); -} - -/*PAGE - * - * _Multiprocessing_Receive_server - * - */ - -Thread _Multiprocessing_Receive_server ( - Thread_Argument ignored -) -{ - - rtems_packet_prefix *the_packet; - - _Thread_Dispatch_disable_level = 1; - - for ( ; ; ) { - - _Internal_threads_System_initialization_thread->Notepads[ 0 ] = 1; - - the_packet = _MPCI_Receive_packet(); - - if ( ! the_packet ) { - _Thread_MP_Block(); - _Thread_Dispatch_disable_level = 1; - } - else { - - _Thread_Executing->receive_packet = the_packet; - - switch ( the_packet->the_class ) { - - case RTEMS_MP_PACKET_INTERNAL_THREADS: - _Internal_threads_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_TASKS: - _RTEMS_tasks_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_MESSAGE_QUEUE: - _Message_queue_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_SEMAPHORE: - _Semaphore_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_PARTITION: - _Partition_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_REGION: - /* Global regions are unsupported at this time */ - break; - - case RTEMS_MP_PACKET_EVENT: - _Event_MP_Process_packet( the_packet ); - break; - - case RTEMS_MP_PACKET_SIGNAL: - _Signal_MP_Process_packet( the_packet ); - break; - } - } - } -} - -/* end of file */ diff --git a/cpukit/rtems/src/msg.c b/cpukit/rtems/src/msg.c deleted file mode 100644 index 7cfe683ce5..0000000000 --- a/cpukit/rtems/src/msg.c +++ /dev/null @@ -1,708 +0,0 @@ -/* - * Message Queue Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Message_queue_Manager_initialization - * - * This routine initializes all message queue manager related - * data structures. - * - * Input parameters: - * maximum_message_queues - number of message queues to initialize - * maximum_message - number of messages per queue - * - * Output parameters: NONE - */ - -void _Message_queue_Manager_initialization( - unsigned32 maximum_message_queues, - unsigned32 maximum_messages -) -{ - - _Objects_Initialize_information( - &_Message_queue_Information, - TRUE, - maximum_message_queues, - sizeof( Message_queue_Control ) - ); - - if ( maximum_messages == 0 ) { - - _Chain_Initialize_empty( &_Message_queue_Inactive_messages ); - - } else { - - - _Chain_Initialize( - &_Message_queue_Inactive_messages, - _Workspace_Allocate_or_fatal_error( - maximum_messages * sizeof( Message_queue_Buffer_control ) - ), - maximum_messages, - sizeof( Message_queue_Buffer_control ) - ); - - } -} - -/*PAGE - * - * rtems_message_queue_create - * - * This directive creates a message queue by allocating and initializing - * a message queue data structure. - * - * Input parameters: - * name - user defined queue name - * count - maximum message and reserved buffer count - * attribute_set - process method - * id - pointer to queue - * - * Output parameters: - * id - queue id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - register Message_queue_Control *the_message_queue; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - if ( _Attributes_Is_global( attribute_set ) && - !_Configuration_Is_multiprocessing() ) - return( RTEMS_MP_NOT_CONFIGURED ); - - _Thread_Disable_dispatch(); /* protects object pointer */ - - the_message_queue = _Message_queue_Allocate(); - - if ( !the_message_queue ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - if ( _Attributes_Is_global( attribute_set ) && - !( _Objects_MP_Open( &_Message_queue_Information, name, - the_message_queue->Object.id, FALSE ) ) ) { - _Message_queue_Free( the_message_queue ); - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - if ( _Attributes_Is_limit( attribute_set ) ) - the_message_queue->maximum_pending_messages = count; - else - the_message_queue->maximum_pending_messages = 0xffffffff; - - the_message_queue->attribute_set = attribute_set; - the_message_queue->number_of_pending_messages = 0; - - _Chain_Initialize_empty( &the_message_queue->Pending_messages ); - - _Thread_queue_Initialize( &the_message_queue->Wait_queue, attribute_set, - STATES_WAITING_FOR_MESSAGE ); - - _Objects_Open( &_Message_queue_Information, - &the_message_queue->Object, name ); - - *id = the_message_queue->Object.id; - - if ( _Attributes_Is_global( attribute_set ) ) - _Message_queue_MP_Send_process_packet( - MESSAGE_QUEUE_MP_ANNOUNCE_CREATE, - the_message_queue->Object.id, - name, - 0 - ); - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_message_queue_ident - * - * This directive returns the system ID associated with - * the message queue name. - * - * Input parameters: - * name - user defined message queue name - * node - node(s) to be searched - * id - pointer to message queue id - * - * Output parameters: - * *id - message queue id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( _Objects_Name_to_id( &_Message_queue_Information, name, - node, id ) ); -} - -/*PAGE - * - * rtems_message_queue_delete - * - * This directive allows a thread to delete the message queue specified - * by the given queue identifier. - * - * Input parameters: - * id - queue id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_delete( - Objects_Id id -) -{ - register Message_queue_Control *the_message_queue; - Objects_Locations location; - - the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - _Objects_Close( &_Message_queue_Information, - &the_message_queue->Object ); - - if ( the_message_queue->number_of_pending_messages != 0 ) - (void) _Message_queue_Flush_support( the_message_queue ); - else - _Thread_queue_Flush( - &the_message_queue->Wait_queue, - _Message_queue_MP_Send_object_was_deleted - ); - - _Message_queue_Free( the_message_queue ); - - if ( _Attributes_Is_global( the_message_queue->attribute_set ) ) { - _Objects_MP_Close( - &_Message_queue_Information, - the_message_queue->Object.id - ); - - _Message_queue_MP_Send_process_packet( - MESSAGE_QUEUE_MP_ANNOUNCE_DELETE, - the_message_queue->Object.id, - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ); - } - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_message_queue_send - * - * This routine implements the directives q_send. It sends a - * message to the specified message queue. - * - * Input parameters: - * id - pointer to message queue - * buffer - pointer to message buffer - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_send( - Objects_Id id, - void *buffer -) -{ - return( _Message_queue_Submit( - id, - (Message_queue_Buffer *) buffer, - MESSAGE_QUEUE_SEND_REQUEST - ) - ); -} - -/*PAGE - * - * rtems_message_queue_urgent - * - * This routine implements the directives q_urgent. It urgents a - * message to the specified message queue. - * - * Input parameters: - * id - pointer to message queue - * buffer - pointer to message buffer - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_urgent( - Objects_Id id, - void *buffer -) -{ - return( _Message_queue_Submit( - id, - (Message_queue_Buffer *) buffer, - MESSAGE_QUEUE_URGENT_REQUEST - ) - ); -} - -/*PAGE - * - * rtems_message_queue_broadcast - * - * This directive sends a message for every thread waiting on the queue - * designated by id. - * - * Input parameters: - * id - pointer to message queue - * buffer - pointer to message buffer - * count - pointer to area to store number of threads made ready - * - * Output parameters: - * count - number of threads made ready - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_broadcast( - Objects_Id id, - void *buffer, - unsigned32 *count -) -{ - register Message_queue_Control *the_message_queue; - Objects_Locations location; - Thread_Control *the_thread; - unsigned32 number_broadcasted; - - the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = count; - - return - _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_BROADCAST_REQUEST, - id, - (Message_queue_Buffer *) buffer, - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ); - - case OBJECTS_LOCAL: - number_broadcasted = 0; - while ( (the_thread = - _Thread_queue_Dequeue(&the_message_queue->Wait_queue)) ) { - number_broadcasted += 1; - _Message_queue_Copy_buffer( - (Message_queue_Buffer *) buffer, - the_thread->Wait.return_argument - ); - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) { - the_thread->receive_packet->return_code = RTEMS_SUCCESSFUL; - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_RECEIVE_RESPONSE, - id, - the_thread - ); - } - } - _Thread_Enable_dispatch(); - *count = number_broadcasted; - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_message_queue_receive - * - * This directive dequeues a message from the designated message queue - * and copies it into the requesting thread's buffer. - * - * Input parameters: - * id - queue id - * buffer - pointer to message buffer - * option_set - options on receive - * timeout - number of ticks to wait - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_receive( - Objects_Id id, - void *buffer, - unsigned32 option_set, - rtems_interval timeout -) -{ - register Message_queue_Control *the_message_queue; - Objects_Locations location; - - the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = buffer; - return - _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_RECEIVE_REQUEST, - id, - buffer, - option_set, - timeout - ); - - case OBJECTS_LOCAL: - if ( !_Message_queue_Seize( the_message_queue, option_set, buffer ) ) - _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); - _Thread_Enable_dispatch(); - return( _Thread_Executing->Wait.return_code ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_message_queue_flush - * - * This directive removes all pending messages from a queue and returns - * the number of messages removed. If no messages were present then - * a count of zero is returned. - * - * Input parameters: - * id - queue id - * count - return area for count - * - * Output parameters: - * count - number of messages removed ( 0 = empty queue ) - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_message_queue_flush( - Objects_Id id, - unsigned32 *count -) -{ - register Message_queue_Control *the_message_queue; - Objects_Locations location; - - the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = count; - - return - _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_FLUSH_REQUEST, - id, - 0, /* Not used */ - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ); - - case OBJECTS_LOCAL: - if ( the_message_queue->number_of_pending_messages != 0 ) - *count = _Message_queue_Flush_support( the_message_queue ); - else - *count = 0; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * _Message_queue_Seize - * - * This kernel routine dequeues a message, copies the message buffer to - * a given destination buffer, and frees the message buffer to the - * inactive message pool. - * - * Input parameters: - * the_message_queue - pointer to message queue - * option_set - options on receive - * the_buffer - pointer to message buffer to be filled - * - * Output parameters: - * TRUE - if message received or RTEMS_NO_WAIT and no message - * FALSE - if thread is to block - * - * NOTE: Dependent on BUFFER_LENGTH - * - * INTERRUPT LATENCY: - * available - * wait - */ - -boolean _Message_queue_Seize( - Message_queue_Control *the_message_queue, - rtems_option option_set, - Message_queue_Buffer *buffer -) -{ - ISR_Level level; - Message_queue_Buffer_control *the_message; - Thread_Control *executing; - - executing = _Thread_Executing; - executing->Wait.return_code = RTEMS_SUCCESSFUL; - _ISR_Disable( level ); - if ( the_message_queue->number_of_pending_messages != 0 ) { - the_message_queue->number_of_pending_messages -= 1; - - the_message = _Message_queue_Get_pending_message( the_message_queue ); - _ISR_Enable( level ); - _Message_queue_Copy_buffer( &the_message->Contents, buffer ); - _Message_queue_Free_message_buffer( the_message ); - return( TRUE ); - } - - if ( _Options_Is_no_wait( option_set ) ) { - _ISR_Enable( level ); - executing->Wait.return_code = RTEMS_UNSATISFIED; - return( TRUE ); - } - - the_message_queue->Wait_queue.sync = TRUE; - executing->Wait.queue = &the_message_queue->Wait_queue; - executing->Wait.id = the_message_queue->Object.id; - executing->Wait.option_set = option_set; - executing->Wait.return_argument = (unsigned32 *)buffer; - _ISR_Enable( level ); - return( FALSE ); -} - -/*PAGE - * - * _Message_queue_Flush_support - * - * This message manager routine removes all messages from a message queue - * and returns them to the inactive message pool. - * - * Input parameters: - * the_message_queue - pointer to message queue - * - * Output parameters: - * returns - number of messages placed on inactive chain - * - * INTERRUPT LATENCY: - * only case - */ - -unsigned32 _Message_queue_Flush_support( - Message_queue_Control *the_message_queue -) -{ - ISR_Level level; - Chain_Node *inactive_first; - Chain_Node *message_queue_first; - Chain_Node *message_queue_last; - unsigned32 count; - - _ISR_Disable( level ); - inactive_first = _Message_queue_Inactive_messages.first; - message_queue_first = the_message_queue->Pending_messages.first; - message_queue_last = the_message_queue->Pending_messages.last; - - _Message_queue_Inactive_messages.first = message_queue_first; - message_queue_last->next = inactive_first; - inactive_first->previous = message_queue_last; - message_queue_first->previous = - _Chain_Head( &_Message_queue_Inactive_messages ); - - _Chain_Initialize_empty( &the_message_queue->Pending_messages ); - - count = the_message_queue->number_of_pending_messages; - the_message_queue->number_of_pending_messages = 0; - _ISR_Enable( level ); - return( count ); -} - -/*PAGE - * - * _Message_queue_Submit - * - * This routine implements the directives q_send and q_urgent. It - * processes a message that is to be submitted to the designated - * message queue. The message will either be processed as a send - * send message which it will be inserted at the rear of the queue - * or it will be processed as an urgent message which will be inserted - * at the front of the queue. - * - * Input parameters: - * id - pointer to message queue - * the_buffer - pointer to message buffer - * submit_type - send or urgent message - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code _Message_queue_Submit( - Objects_Id id, - Message_queue_Buffer *buffer, - Message_queue_Submit_types submit_type -) -{ - register Message_queue_Control *the_message_queue; - Objects_Locations location; - Thread_Control *the_thread; - Message_queue_Buffer_control *the_message; - - the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - switch ( submit_type ) { - case MESSAGE_QUEUE_SEND_REQUEST: - return - _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_SEND_REQUEST, - id, - buffer, - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ); - - case MESSAGE_QUEUE_URGENT_REQUEST: - return - _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_URGENT_REQUEST, - id, - buffer, - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ); - } - case OBJECTS_LOCAL: - the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue ); - - if ( the_thread ) { - - _Message_queue_Copy_buffer( - buffer, - the_thread->Wait.return_argument - ); - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) { - the_thread->receive_packet->return_code = RTEMS_SUCCESSFUL; - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_RECEIVE_RESPONSE, - id, - the_thread - ); - - } - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - if ( the_message_queue->number_of_pending_messages == - the_message_queue->maximum_pending_messages ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_message = _Message_queue_Allocate_message_buffer(); - - if ( !the_message ) { - _Thread_Enable_dispatch(); - return( RTEMS_UNSATISFIED ); - } - - _Message_queue_Copy_buffer( buffer, &the_message->Contents ); - - the_message_queue->number_of_pending_messages += 1; - - switch ( submit_type ) { - case MESSAGE_QUEUE_SEND_REQUEST: - _Message_queue_Append( the_message_queue, the_message ); - break; - case MESSAGE_QUEUE_URGENT_REQUEST: - _Message_queue_Prepend( the_message_queue, the_message ); - break; - } - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/cpukit/rtems/src/msgmp.c b/cpukit/rtems/src/msgmp.c deleted file mode 100644 index d3a1a02f33..0000000000 --- a/cpukit/rtems/src/msgmp.c +++ /dev/null @@ -1,397 +0,0 @@ -/* - * Multiprocessing Support for the Message Queue Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Message_queue_MP_Send_process_packet - * - */ - -void _Message_queue_MP_Send_process_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Objects_Name name, - Objects_Id proxy_id -) -{ - Message_queue_MP_Packet *the_packet; - unsigned32 node; - - switch ( operation ) { - - case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE: - case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE: - case MESSAGE_QUEUE_MP_EXTRACT_PROXY: - - the_packet = _Message_queue_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_MESSAGE_QUEUE; - the_packet->Prefix.length = sizeof ( Message_queue_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Message_queue_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = message_queue_id; - the_packet->name = name; - the_packet->proxy_id = proxy_id; - - if ( operation == MESSAGE_QUEUE_MP_EXTRACT_PROXY ) - node = rtems_get_node( message_queue_id ); - else - node = MPCI_ALL_NODES; - - _MPCI_Send_process_packet( node, &the_packet->Prefix ); - break; - - case MESSAGE_QUEUE_MP_RECEIVE_REQUEST: - case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE: - case MESSAGE_QUEUE_MP_SEND_REQUEST: - case MESSAGE_QUEUE_MP_SEND_RESPONSE: - case MESSAGE_QUEUE_MP_URGENT_REQUEST: - case MESSAGE_QUEUE_MP_URGENT_RESPONSE: - case MESSAGE_QUEUE_MP_BROADCAST_REQUEST: - case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: - case MESSAGE_QUEUE_MP_FLUSH_REQUEST: - case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: - break; - - } -} - -/*PAGE - * - * _Message_queue_MP_Send_request_packet - * - */ - -rtems_status_code _Message_queue_MP_Send_request_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Message_queue_Buffer *buffer, - rtems_option option_set, - rtems_interval timeout -) -{ - Message_queue_MP_Packet *the_packet; - - switch ( operation ) { - - case MESSAGE_QUEUE_MP_RECEIVE_REQUEST: - case MESSAGE_QUEUE_MP_SEND_REQUEST: - case MESSAGE_QUEUE_MP_URGENT_REQUEST: - case MESSAGE_QUEUE_MP_BROADCAST_REQUEST: - case MESSAGE_QUEUE_MP_FLUSH_REQUEST: - - the_packet = _Message_queue_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_MESSAGE_QUEUE; - the_packet->Prefix.length = sizeof ( Message_queue_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Message_queue_MP_Packet ) - - sizeof ( Message_queue_Buffer ); - if ( ! _Options_Is_no_wait(option_set)) - the_packet->Prefix.timeout = timeout; - - the_packet->operation = operation; - the_packet->Prefix.id = message_queue_id; - the_packet->option_set = option_set; - - if ( buffer ) - _Message_queue_Copy_buffer( buffer, &the_packet->Buffer ); - - return - _MPCI_Send_request_packet( - rtems_get_node( message_queue_id ), - &the_packet->Prefix, - STATES_WAITING_FOR_MESSAGE - ); - break; - - case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE: - case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE: - case MESSAGE_QUEUE_MP_EXTRACT_PROXY: - case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE: - case MESSAGE_QUEUE_MP_SEND_RESPONSE: - case MESSAGE_QUEUE_MP_URGENT_RESPONSE: - case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: - case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _Message_queue_MP_Send_response_packet - * - */ - -void _Message_queue_MP_Send_response_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - Thread_Control *the_thread -) -{ - Message_queue_MP_Packet *the_packet; - - switch ( operation ) { - - case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE: - case MESSAGE_QUEUE_MP_SEND_RESPONSE: - case MESSAGE_QUEUE_MP_URGENT_RESPONSE: - case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: - case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: - - the_packet = ( Message_queue_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE: - case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE: - case MESSAGE_QUEUE_MP_EXTRACT_PROXY: - case MESSAGE_QUEUE_MP_RECEIVE_REQUEST: - case MESSAGE_QUEUE_MP_SEND_REQUEST: - case MESSAGE_QUEUE_MP_URGENT_REQUEST: - case MESSAGE_QUEUE_MP_BROADCAST_REQUEST: - case MESSAGE_QUEUE_MP_FLUSH_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Message_queue_MP_Process_packet - * - */ - -void _Message_queue_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Message_queue_MP_Packet *the_packet; - Thread_Control *the_thread; - boolean ignored; - - the_packet = (Message_queue_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE: - - ignored = _Objects_MP_Open( - &_Message_queue_Information, - the_packet->name, - the_packet->Prefix.id, - TRUE - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE: - - _Objects_MP_Close( &_Message_queue_Information, the_packet->Prefix.id ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_EXTRACT_PROXY: - - the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id ); - - if ( ! _Thread_Is_null( the_thread ) ) - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_RECEIVE_REQUEST: - - the_packet->Prefix.return_code = rtems_message_queue_receive( - the_packet->Prefix.id, - &the_packet->Buffer, - the_packet->option_set, - the_packet->Prefix.timeout - ); - - if ( ! _Status_Is_proxy_blocking( the_packet->Prefix.return_code ) ) - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_RECEIVE_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _Message_queue_Copy_buffer( - &the_packet->Buffer, - (Message_queue_Buffer *) the_thread->Wait.return_argument - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_SEND_REQUEST: - - the_packet->Prefix.return_code = rtems_message_queue_send( - the_packet->Prefix.id, - &the_packet->Buffer - ); - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_SEND_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case MESSAGE_QUEUE_MP_SEND_RESPONSE: - case MESSAGE_QUEUE_MP_URGENT_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_URGENT_REQUEST: - - the_packet->Prefix.return_code = rtems_message_queue_urgent( - the_packet->Prefix.id, - &the_packet->Buffer - ); - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_URGENT_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case MESSAGE_QUEUE_MP_BROADCAST_REQUEST: - - the_packet->Prefix.return_code = rtems_message_queue_broadcast( - the_packet->Prefix.id, - &the_packet->Buffer, - &the_packet->count - ); - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_BROADCAST_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: - case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - *(unsigned32 *)the_thread->Wait.return_argument = the_packet->count; - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case MESSAGE_QUEUE_MP_FLUSH_REQUEST: - - the_packet->Prefix.return_code = rtems_message_queue_flush( - the_packet->Prefix.id, - &the_packet->count - ); - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_FLUSH_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - } -} - -/*PAGE - * - * _Message_queue_MP_Send_object_was_deleted - * - */ - -void _Message_queue_MP_Send_object_was_deleted ( - Thread_Control *the_proxy -) -{ - the_proxy->receive_packet->return_code = RTEMS_OBJECT_WAS_DELETED; - - _Message_queue_MP_Send_response_packet( - MESSAGE_QUEUE_MP_RECEIVE_RESPONSE, - the_proxy->Wait.id, - the_proxy - ); -} - -/*PAGE - * - * _Message_queue_MP_Send_extract_proxy - * - */ - -void _Message_queue_MP_Send_extract_proxy ( - Thread_Control *the_thread -) -{ - _Message_queue_MP_Send_process_packet( - MESSAGE_QUEUE_MP_EXTRACT_PROXY, - the_thread->Wait.id, - (Objects_Name) 0, - the_thread->Object.id - ); -} - -/*PAGE - * - * _Message_queue_MP_Get_packet - * - */ - -Message_queue_MP_Packet *_Message_queue_MP_Get_packet ( void ) -{ - return ( (Message_queue_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/cpukit/rtems/src/part.c b/cpukit/rtems/src/part.c deleted file mode 100644 index 1fa2e0e716..0000000000 --- a/cpukit/rtems/src/part.c +++ /dev/null @@ -1,322 +0,0 @@ -/* - * Partition Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Partition_Manager_initialization - * - * This routine initializes all partition manager related - * data structures. - * - * Input parameters: - * maximum_partitions - number of partitions to initialize - * - * Output parameters: NONE - */ - -void _Partition_Manager_initialization( - unsigned32 maximum_partitions -) -{ - _Objects_Initialize_information( - &_Partition_Information, - TRUE, - maximum_partitions, - sizeof( Partition_Control ) - ); - -} - -/*PAGE - * - * rtems_partition_create - * - * This directive creates a partiton of fixed sized buffers from the - * given contiguous memory area. - * - * Input parameters: - * name - user defined partition name - * starting_address - physical start address of partition - * length - physical length in bytes - * buffer_size - size of buffers in bytes - * attribute_set - partition attributes - * id - pointer to partition id - * - * Output parameters: - * id - partition id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_partition_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 buffer_size, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - register Partition_Control *the_partition; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - if ( length == 0 || buffer_size == 0 || length < buffer_size || - !_Partition_Is_buffer_size_aligned( buffer_size ) ) - return ( RTEMS_INVALID_SIZE ); - - if ( !_Addresses_Is_aligned( starting_address ) ) - return( RTEMS_INVALID_ADDRESS ); - - if ( _Attributes_Is_global( attribute_set ) && - !_Configuration_Is_multiprocessing() ) - return( RTEMS_MP_NOT_CONFIGURED ); - - _Thread_Disable_dispatch(); /* prevents deletion */ - - the_partition = _Partition_Allocate(); - - if ( !the_partition ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - if ( _Attributes_Is_global( attribute_set ) && - !( _Objects_MP_Open( &_Partition_Information, name, - the_partition->Object.id, FALSE ) ) ) { - _Partition_Free( the_partition ); - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - the_partition->starting_address = starting_address; - the_partition->length = length; - the_partition->buffer_size = buffer_size; - the_partition->attribute_set = attribute_set; - the_partition->number_of_used_blocks = 0; - - _Chain_Initialize( &the_partition->Memory, starting_address, - length / buffer_size, buffer_size ); - - _Objects_Open( &_Partition_Information, &the_partition->Object, name ); - - *id = the_partition->Object.id; - if ( _Attributes_Is_global( attribute_set ) ) - _Partition_MP_Send_process_packet( - PARTITION_MP_ANNOUNCE_CREATE, - the_partition->Object.id, - name, - 0 /* Not used */ - ); - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_partition_ident - * - * This directive returns the system ID associated with - * the partition name. - * - * Input parameters: - * name - user defined partition name - * node - node(s) to be searched - * id - pointer to partition id - * - * Output parameters: - * *id - partition id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_partition_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( _Objects_Name_to_id( &_Partition_Information, name, node, id ) ); -} - -/*PAGE - * - * rtems_partition_delete - * - * This directive allows a thread to delete a partition specified by - * the partition identifier, provided that none of its buffers are - * still allocated. - * - * Input parameters: - * id - partition id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_partition_delete( - Objects_Id id -) -{ - register Partition_Control *the_partition; - Objects_Locations location; - - the_partition = _Partition_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - if ( the_partition->number_of_used_blocks == 0 ) { - _Objects_Close( &_Partition_Information, &the_partition->Object ); - _Partition_Free( the_partition ); - if ( _Attributes_Is_global( the_partition->attribute_set ) ) { - - _Objects_MP_Close( - &_Partition_Information, - the_partition->Object.id - ); - - _Partition_MP_Send_process_packet( - PARTITION_MP_ANNOUNCE_DELETE, - the_partition->Object.id, - 0, /* Not used */ - 0 /* Not used */ - ); - } - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_RESOURCE_IN_USE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_partition_get_buffer - * - * This directive will obtain a buffer from a buffer partition. - * - * Input parameters: - * id - partition id - * buffer - pointer to buffer address - * - * Output parameters: - * buffer - pointer to buffer address filled in - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_partition_get_buffer( - Objects_Id id, - void **buffer -) -{ - register Partition_Control *the_partition; - Objects_Locations location; - void *the_buffer; - - the_partition = _Partition_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = buffer; - return( - _Partition_MP_Send_request_packet( - PARTITION_MP_GET_BUFFER_REQUEST, - id, - 0 /* Not used */ - ) - ); - case OBJECTS_LOCAL: - the_buffer = _Partition_Allocate_buffer( the_partition ); - if ( the_buffer ) { - the_partition->number_of_used_blocks += 1; - _Thread_Enable_dispatch(); - *buffer = the_buffer; - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_UNSATISFIED ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_partition_return_buffer - * - * This directive will return the given buffer to the specified - * buffer partition. - * - * Input parameters: - * id - partition id - * buffer - pointer to buffer address - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_partition_return_buffer( - Objects_Id id, - void *buffer -) -{ - register Partition_Control *the_partition; - Objects_Locations location; - - the_partition = _Partition_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return( - _Partition_MP_Send_request_packet( - PARTITION_MP_RETURN_BUFFER_REQUEST, - id, - buffer - ) - ); - case OBJECTS_LOCAL: - if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) { - _Partition_Free_buffer( the_partition, buffer ); - the_partition->number_of_used_blocks -= 1; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INVALID_ADDRESS ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/cpukit/rtems/src/partmp.c b/cpukit/rtems/src/partmp.c deleted file mode 100644 index 9cc1723106..0000000000 --- a/cpukit/rtems/src/partmp.c +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Multiprocessing Support for the Partition Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Partition_MP_Send_process_packet - * - */ - -void _Partition_MP_Send_process_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - Objects_Name name, - Objects_Id proxy_id -) -{ - Partition_MP_Packet *the_packet; - unsigned32 node; - - switch ( operation ) { - - case PARTITION_MP_ANNOUNCE_CREATE: - case PARTITION_MP_ANNOUNCE_DELETE: - case PARTITION_MP_EXTRACT_PROXY: - - the_packet = _Partition_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_PARTITION; - the_packet->Prefix.length = sizeof ( Partition_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Partition_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = partition_id; - the_packet->name = name; - the_packet->proxy_id = proxy_id; - - if ( operation == PARTITION_MP_EXTRACT_PROXY ) - node = rtems_get_node( partition_id ); - else - node = MPCI_ALL_NODES; - - _MPCI_Send_process_packet( node, &the_packet->Prefix ); - break; - - case PARTITION_MP_GET_BUFFER_REQUEST: - case PARTITION_MP_GET_BUFFER_RESPONSE: - case PARTITION_MP_RETURN_BUFFER_REQUEST: - case PARTITION_MP_RETURN_BUFFER_RESPONSE: - break; - } -} - -/*PAGE - * - * _Partition_MP_Send_request_packet - * - */ - -rtems_status_code _Partition_MP_Send_request_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - void *buffer -) -{ - Partition_MP_Packet *the_packet; - - switch ( operation ) { - - case PARTITION_MP_GET_BUFFER_REQUEST: - case PARTITION_MP_RETURN_BUFFER_REQUEST: - - the_packet = _Partition_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_PARTITION; - the_packet->Prefix.length = sizeof ( Partition_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Partition_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = partition_id; - the_packet->buffer = buffer; - - return - _MPCI_Send_request_packet( - rtems_get_node( partition_id ), - &the_packet->Prefix, - STATES_READY /* Not used */ - ); - - break; - - case PARTITION_MP_ANNOUNCE_CREATE: - case PARTITION_MP_ANNOUNCE_DELETE: - case PARTITION_MP_EXTRACT_PROXY: - case PARTITION_MP_GET_BUFFER_RESPONSE: - case PARTITION_MP_RETURN_BUFFER_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _Partition_MP_Send_response_packet - * - */ - -void _Partition_MP_Send_response_packet ( - Partition_MP_Remote_operations operation, - Objects_Id partition_id, - Thread_Control *the_thread -) -{ - Partition_MP_Packet *the_packet; - - switch ( operation ) { - - case PARTITION_MP_GET_BUFFER_RESPONSE: - case PARTITION_MP_RETURN_BUFFER_RESPONSE: - - the_packet = ( Partition_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case PARTITION_MP_ANNOUNCE_CREATE: - case PARTITION_MP_ANNOUNCE_DELETE: - case PARTITION_MP_EXTRACT_PROXY: - case PARTITION_MP_GET_BUFFER_REQUEST: - case PARTITION_MP_RETURN_BUFFER_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Partition_MP_Process_packet - * - */ - -void _Partition_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Partition_MP_Packet *the_packet; - Thread_Control *the_thread; - boolean ignored; - - the_packet = (Partition_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case PARTITION_MP_ANNOUNCE_CREATE: - - ignored = _Objects_MP_Open( - &_Partition_Information, - the_packet->name, - the_packet->Prefix.id, - TRUE - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case PARTITION_MP_ANNOUNCE_DELETE: - - _Objects_MP_Close( &_Partition_Information, the_packet->Prefix.id ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case PARTITION_MP_EXTRACT_PROXY: - - the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id ); - - if ( ! _Thread_Is_null( the_thread ) ) - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case PARTITION_MP_GET_BUFFER_REQUEST: - - the_packet->Prefix.return_code = rtems_partition_get_buffer( - the_packet->Prefix.id, - &the_packet->buffer - ); - - _Partition_MP_Send_response_packet( - PARTITION_MP_GET_BUFFER_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case PARTITION_MP_GET_BUFFER_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - *(void **)the_thread->Wait.return_argument = the_packet->buffer; - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case PARTITION_MP_RETURN_BUFFER_REQUEST: - - the_packet->Prefix.return_code = rtems_partition_return_buffer( - the_packet->Prefix.id, - the_packet->buffer - ); - - _Partition_MP_Send_response_packet( - PARTITION_MP_RETURN_BUFFER_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case PARTITION_MP_RETURN_BUFFER_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - } -} - -/*PAGE - * - * _Partition_MP_Send_object_was_deleted - * - * This routine is not needed by the Partition since a partition - * cannot be deleted when buffers are in use. - * - */ - -/*PAGE - * - * _Partition_MP_Send_extract_proxy - * - */ - -void _Partition_MP_Send_extract_proxy ( - Thread_Control *the_thread -) -{ - _Partition_MP_Send_process_packet( - PARTITION_MP_EXTRACT_PROXY, - the_thread->Wait.id, - (Objects_Name) 0, - the_thread->Object.id - ); - -} - -/*PAGE - * - * _Partition_MP_Get_packet - * - */ - -Partition_MP_Packet *_Partition_MP_Get_packet ( void ) -{ - return ( (Partition_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/cpukit/rtems/src/ratemon.c b/cpukit/rtems/src/ratemon.c deleted file mode 100644 index 3c0733a3ab..0000000000 --- a/cpukit/rtems/src/ratemon.c +++ /dev/null @@ -1,401 +0,0 @@ -/* - * Rate Monotonic Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/*PAGE - * - * _Rate_monotonic_Manager_initialization - * - * This routine initializes all Rate Monotonic Manager related - * data structures. - * - * Input parameters: - * maximum_periods - number of periods timers to initialize - * - * Output parameters: NONE - * - * NOTE: The Rate Monotonic Manager is built on top of the Watchdog - * Handler. - */ - -void _Rate_monotonic_Manager_initialization( - unsigned32 maximum_periods -) -{ - _Objects_Initialize_information( - &_Rate_monotonic_Information, - FALSE, - maximum_periods, - sizeof( Rate_monotonic_Control ) - ); -} - -/*PAGE - * - * rtems_rate_monotonic_create - * - * This directive creates a rate monotonic timer and performs - * some initialization. - * - * Input parameters: - * name - name of period - * id - pointer to rate monotonic id - * - * Output parameters: - * id - rate monotonic id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_rate_monotonic_create( - Objects_Name name, - Objects_Id *id -) -{ - Rate_monotonic_Control *the_period; - - if ( !_Objects_Is_name_valid( name ) ) - return( RTEMS_INVALID_NAME ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_period = _Rate_monotonic_Allocate(); - - if ( !the_period ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_period->owner = _Thread_Executing; - the_period->state = RATE_MONOTONIC_INACTIVE; - - _Objects_Open( &_Rate_monotonic_Information, &the_period->Object, name ); - - *id = the_period->Object.id; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_rate_monotonic_ident - * - * This directive returns the system ID associated with - * the rate monotonic period name. - * - * Input parameters: - * name - user defined period name - * id - pointer to period id - * - * Output parameters: - * *id - region id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_rate_monotonic_ident( - Objects_Name name, - Objects_Id *id -) -{ - return _Objects_Name_to_id( - &_Rate_monotonic_Information, - name, - RTEMS_SEARCH_LOCAL_NODE, - id - ); -} - -/*PAGE - * - * rtems_rate_monotonic_cancel - * - * This directive allows a thread to cancel a rate monotonic timer. - * - * Input parameters: - * id - rate monotonic id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful and caller is not the owning thread - * error code - if unsuccessful - */ - -rtems_status_code rtems_rate_monotonic_cancel( - Objects_Id id -) -{ - Rate_monotonic_Control *the_period; - Objects_Locations location; - - the_period = _Rate_monotonic_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( !_Thread_Is_executing( the_period->owner ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_NOT_OWNER_OF_RESOURCE ); - } - (void) _Watchdog_Remove( &the_period->Timer ); - the_period->state = RATE_MONOTONIC_INACTIVE; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_rate_monotonic_delete - * - * This directive allows a thread to delete a rate monotonic timer. - * - * Input parameters: - * id - rate monotonic id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_rate_monotonic_delete( - Objects_Id id -) -{ - Rate_monotonic_Control *the_period; - Objects_Locations location; - - the_period = _Rate_monotonic_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - _Objects_Close( &_Rate_monotonic_Information, &the_period->Object ); - (void) _Watchdog_Remove( &the_period->Timer ); - the_period->state = RATE_MONOTONIC_INACTIVE; - _Rate_monotonic_Free( the_period ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_rate_monotonic_period - * - * This directive allows a thread to manipulate a rate monotonic timer. - * - * Input parameters: - * id - rate monotonic id - * length - length of period (in ticks) - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_rate_monotonic_period( - Objects_Id id, - rtems_interval length -) -{ - Rate_monotonic_Control *the_period; - Objects_Locations location; - rtems_status_code return_value; - - the_period = _Rate_monotonic_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( !_Thread_Is_executing( the_period->owner ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_NOT_OWNER_OF_RESOURCE ); - } - - if ( length == RTEMS_PERIOD_STATUS ) { - switch ( the_period->state ) { - case RATE_MONOTONIC_INACTIVE: - return_value = RTEMS_NOT_DEFINED; - break; - case RATE_MONOTONIC_ACTIVE: - return_value = RTEMS_SUCCESSFUL; - break; - case RATE_MONOTONIC_EXPIRED: - return_value = RTEMS_TIMEOUT; - break; - default: /* unreached -- only to remove warnings */ - return_value = RTEMS_INTERNAL_ERROR; - break; - } - _Thread_Enable_dispatch(); - return( return_value ); - } - - switch ( the_period->state ) { - case RATE_MONOTONIC_INACTIVE: - the_period->state = RATE_MONOTONIC_ACTIVE; - _Watchdog_Initialize( - &the_period->Timer, - _Rate_monotonic_Timeout, - id, - NULL - ); - _Watchdog_Insert_ticks( - &the_period->Timer, length, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - - case RATE_MONOTONIC_ACTIVE: -/* following is and could be a critical section problem */ - _Thread_Executing->Wait.id = the_period->Object.id; - if ( _Rate_monotonic_Set_state( the_period ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - /* has expired -- fall into next case */ - case RATE_MONOTONIC_EXPIRED: - the_period->state = RATE_MONOTONIC_ACTIVE; - _Watchdog_Insert_ticks( - &the_period->Timer, length, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_TIMEOUT ); - } - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * _Rate_monotonic_Set_state - * - * This kernel routine sets the STATES_WAITING_FOR_PERIOD state in - * the running thread's tcb if the specified period has not expired. - * The ready chain is adjusted if necessary. - * - * Input parameters: - * the_period - pointer to period control block - * - * Output parameters: - * TRUE - if blocked successfully for period - * FALSE - if period has expired - * - * INTERRUPT LATENCY: - * delete node - * priority map - * select heir - */ - -boolean _Rate_monotonic_Set_state( -Rate_monotonic_Control *the_period -) -{ - Thread_Control *executing; - Chain_Control *ready; - ISR_Level level; - States_Control old_state; - - executing = _Thread_Executing; - ready = executing->ready; - _ISR_Disable( level ); - - old_state = executing->current_state; - - if ( _Rate_monotonic_Is_expired( the_period ) ) { - _ISR_Enable( level ); - return( FALSE ); - } - - executing->current_state = - _States_Set( STATES_WAITING_FOR_PERIOD, old_state ); - - if ( _States_Is_ready( old_state ) ) { - if ( _Chain_Has_only_one_node( ready ) ) { - _Chain_Initialize_empty( ready ); - _Priority_Remove_from_bit_map( &executing->Priority_map ); - _ISR_Flash( level ); - } else { - _Chain_Extract_unprotected( &executing->Object.Node ); - _ISR_Flash( level ); - } - - if ( _Thread_Is_heir( executing ) ) - _Thread_Calculate_heir(); - - _Context_Switch_necessary = TRUE; - } - - _ISR_Enable( level ); - return( TRUE ); -} - -/*PAGE - * - * _Rate_monotonic_Timeout - * - * This routine processes a period ending. If the owning thread - * is waiting for the period, that thread is unblocked and the - * period reinitiated. Otherwise, the period is expired. - * This routine is called by the watchdog handler. - * - * Input parameters: - * id - period id - * - * Output parameters: NONE - */ - -void _Rate_monotonic_Timeout( - Objects_Id id, - void *ignored -) -{ - Rate_monotonic_Control *the_period; - Objects_Locations location; - Thread_Control *the_thread; - - the_period = _Rate_monotonic_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: /* impossible */ - break; - case OBJECTS_LOCAL: - the_thread = the_period->owner; - if ( _States_Is_waiting_for_period( the_thread->current_state ) && - the_thread->Wait.id == the_period->Object.id ) { - _Thread_Unblock( the_thread ); - _Watchdog_Reset( &the_period->Timer ); - } - else - the_period->state = RATE_MONOTONIC_EXPIRED; - _Thread_Unnest_dispatch(); - break; - } -} - diff --git a/cpukit/rtems/src/region.c b/cpukit/rtems/src/region.c deleted file mode 100644 index c62214eaf6..0000000000 --- a/cpukit/rtems/src/region.c +++ /dev/null @@ -1,456 +0,0 @@ -/* - * Region Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Region_Manager_initialization - * - * This routine initializes all region manager related data structures. - * - * Input parameters: - * maximum_regions - number of regions to initialize - * - * Output parameters: NONE - */ - -void _Region_Manager_initialization( - unsigned32 maximum_regions -) -{ - _Objects_Initialize_information( - &_Region_Information, - FALSE, - maximum_regions, - sizeof( Region_Control ) - ); -} - -/*PAGE - * - * rtems_region_create - * - * This directive creates a region of physical contiguous memory area - * from which variable sized segments can be allocated. - * - * Input parameters: - * name - user defined region name - * starting_address - physical start address of region - * length - physical length in bytes - * page_size - page size in bytes - * attribute_set - region attributes - * id - address of region id to set - * - * Output parameters: - * id - region id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_create( - Objects_Name name, - void *starting_address, - unsigned32 length, - unsigned32 page_size, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - Region_Control *the_region; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - if ( !_Addresses_Is_aligned( starting_address ) ) - return( RTEMS_INVALID_ADDRESS ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_region = _Region_Allocate(); - - if ( !the_region ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_region->maximum_segment_size = - _Heap_Initialize(&the_region->Memory, starting_address, length, page_size); - - if ( !the_region->maximum_segment_size ) { - _Region_Free( the_region ); - _Thread_Enable_dispatch(); - return( RTEMS_INVALID_SIZE ); - } - - the_region->starting_address = starting_address; - the_region->length = length; - the_region->page_size = page_size; - the_region->attribute_set = attribute_set; - the_region->number_of_used_blocks = 0; - - _Thread_queue_Initialize( - &the_region->Wait_queue, attribute_set, STATES_WAITING_FOR_SEGMENT ); - - _Objects_Open( &_Region_Information, &the_region->Object, name ); - - *id = the_region->Object.id; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_region_ident - * - * This directive returns the system ID associated with - * the region name. - * - * Input parameters: - * name - user defined region name - * id - pointer to region id - * - * Output parameters: - * *id - region id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_ident( - Objects_Name name, - Objects_Id *id -) -{ - return _Objects_Name_to_id( - &_Region_Information, - name, - RTEMS_SEARCH_LOCAL_NODE, - id - ); -} - -/*PAGE - * - * rtems_region_delete - * - * This directive allows a thread to delete a region specified by - * the region identifier, provided that none of its segments are - * still allocated. - * - * Input parameters: - * id - region id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_delete( - Objects_Id id -) -{ - register Region_Control *the_region; - Objects_Locations location; - - the_region = _Region_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - _Region_Debug_Walk( the_region, 5 ); - if ( the_region->number_of_used_blocks == 0 ) { - _Objects_Close( &_Region_Information, &the_region->Object ); - _Region_Free( the_region ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_RESOURCE_IN_USE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_region_extend - * - * This directive attempts to grow a region of physical contiguous memory area - * from which variable sized segments can be allocated. - * - * Input parameters: - * id - id of region to grow - * start - starting address of memory area for extension - * length - physical length in bytes to grow the region - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_extend( - Objects_Id id, - void *starting_address, - unsigned32 length -) -{ - Region_Control *the_region; - Objects_Locations location; - unsigned32 amount_extended; - Heap_Extend_status heap_status; - rtems_status_code status; - - status = RTEMS_SUCCESSFUL; - - the_region = _Region_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - - heap_status = _Heap_Extend( - &the_region->Memory, - starting_address, - length, - &amount_extended - ); - - switch ( heap_status ) { - case HEAP_EXTEND_SUCCESSFUL: - the_region->length += amount_extended; - the_region->maximum_segment_size += amount_extended; - break; - case HEAP_EXTEND_ERROR: - status = RTEMS_INVALID_ADDRESS; - break; - case HEAP_EXTEND_NOT_IMPLEMENTED: - status = RTEMS_NOT_IMPLEMENTED; - break; - } - _Thread_Enable_dispatch(); - return( status ); - } - - return( RTEMS_INTERNAL_ERROR ); -} - -/*PAGE - * - * rtems_region_get_segment - * - * This directive will obtain a segment from the given region. - * - * Input parameters: - * id - region id - * size - segment size in bytes - * option_set - wait option - * timeout - number of ticks to wait (0 means wait forever) - * segment - pointer to segment address - * - * Output parameters: - * segment - pointer to segment address filled in - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_get_segment( - Objects_Id id, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout, - void **segment -) -{ - register Region_Control *the_region; - Objects_Locations location; - Thread_Control *executing; - void *the_segment; - - if ( size == 0 ) - return( RTEMS_INVALID_SIZE ); - - executing = _Thread_Executing; - the_region = _Region_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( size > the_region->maximum_segment_size ) { - _Thread_Enable_dispatch(); - return( RTEMS_INVALID_SIZE ); - } - - _Region_Debug_Walk( the_region, 1 ); - - the_segment = _Region_Allocate_segment( the_region, size ); - - _Region_Debug_Walk( the_region, 2 ); - - if ( the_segment ) { - the_region->number_of_used_blocks += 1; - _Thread_Enable_dispatch(); - *segment = the_segment; - return( RTEMS_SUCCESSFUL ); - } - - if ( _Options_Is_no_wait( option_set ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_UNSATISFIED ); - } - - executing->Wait.queue = &the_region->Wait_queue; - executing->Wait.id = id; - executing->Wait.Extra.segment_size = size; - executing->Wait.return_argument = (unsigned32 *) segment; - - the_region->Wait_queue.sync = TRUE; - - _Thread_queue_Enqueue( &the_region->Wait_queue, timeout ); - - _Thread_Enable_dispatch(); - return( executing->Wait.return_code ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} -/*PAGE - * - * rtems_region_get_segment_size - * - * This directive will return the size of the segment indicated - * - * Input parameters: - * id - region id - * segment - segment address - * size - pointer to segment size in bytes - * - * Output parameters: - * size - segment size in bytes filled in - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_get_segment_size( - Objects_Id id, - void *segment, - unsigned32 *size -) -{ - register Region_Control *the_region; - Objects_Locations location; - Thread_Control *executing; - - executing = _Thread_Executing; - the_region = _Region_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - - if ( _Heap_Size_of_user_area( &the_region->Memory, segment, size ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INVALID_ADDRESS ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_region_return_segment - * - * This directive will return a segment to its region. - * - * Input parameters: - * id - region id - * segment - pointer to segment address - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_region_return_segment( - Objects_Id id, - void *segment -) -{ - register Region_Control *the_region; - Thread_Control *the_thread; - Objects_Locations location; - void **the_segment; - int status; - - the_region = _Region_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* this error cannot be returned */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - - _Region_Debug_Walk( the_region, 3 ); - - status = _Region_Free_segment( the_region, segment ); - - _Region_Debug_Walk( the_region, 4 ); - - if ( !status ) { - _Thread_Enable_dispatch(); - return( RTEMS_INVALID_ADDRESS ); - } - - the_region->number_of_used_blocks -= 1; - for ( ; ; ) { - the_thread = _Thread_queue_First( &the_region->Wait_queue ); - - if ( the_thread == NULL ) - break; - - the_segment = _Region_Allocate_segment( - the_region, the_thread->Wait.Extra.segment_size ); - - if ( the_segment == NULL ) - break; - - *(void **)the_thread->Wait.return_argument = the_segment; - the_region->number_of_used_blocks += 1; - _Thread_queue_Extract( &the_region->Wait_queue, the_thread ); - the_thread->Wait.return_code = RTEMS_SUCCESSFUL; - } - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/cpukit/rtems/src/regionmp.c b/cpukit/rtems/src/regionmp.c deleted file mode 100644 index 558ae1639a..0000000000 --- a/cpukit/rtems/src/regionmp.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - * Multiprocessing Support for the Region Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Region_MP_Send_process_packet - * - */ - -void _Region_MP_Send_process_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - Objects_Name name, - Objects_Id proxy_id -) -{ - Region_MP_Packet *the_packet; - unsigned32 node; - - switch ( operation ) { - - case REGION_MP_ANNOUNCE_CREATE: - case REGION_MP_ANNOUNCE_DELETE: - case REGION_MP_EXTRACT_PROXY: - - the_packet = _Region_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_REGION; - the_packet->Prefix.length = sizeof ( Region_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Region_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = region_id; - the_packet->name = name; - the_packet->proxy_id = proxy_id; - - if ( operation == REGION_MP_EXTRACT_PROXY ) - node = rtems_get_node( region_id ); - else - node = MPCI_ALL_NODES; - - _MPCI_Send_process_packet( node, &the_packet->Prefix ); - break; - - case REGION_MP_GET_SEGMENT_REQUEST: - case REGION_MP_GET_SEGMENT_RESPONSE: - case REGION_MP_RETURN_SEGMENT_REQUEST: - case REGION_MP_RETURN_SEGMENT_RESPONSE: - break; - } -} - -/*PAGE - * - * _Region_MP_Send_request_packet - * - */ - -rtems_status_code _Region_MP_Send_request_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - void *segment, - unsigned32 size, - rtems_option option_set, - rtems_interval timeout -) -{ - Region_MP_Packet *the_packet; - - switch ( operation ) { - - case REGION_MP_GET_SEGMENT_REQUEST: - case REGION_MP_RETURN_SEGMENT_REQUEST: - - the_packet = _Region_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_REGION; - the_packet->Prefix.length = sizeof ( Region_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Region_MP_Packet ); - if ( ! _Options_Is_no_wait(option_set)) - the_packet->Prefix.timeout = timeout; - - the_packet->operation = operation; - the_packet->Prefix.id = region_id; - the_packet->segment = segment; - the_packet->size = size; - the_packet->option_set = option_set; - - return _MPCI_Send_request_packet( - rtems_get_node( region_id ), - &the_packet->Prefix, - STATES_READY /* Not used */ - ); - break; - - case REGION_MP_ANNOUNCE_CREATE: - case REGION_MP_ANNOUNCE_DELETE: - case REGION_MP_EXTRACT_PROXY: - case REGION_MP_GET_SEGMENT_RESPONSE: - case REGION_MP_RETURN_SEGMENT_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_INTERNAL_ERROR; -} - -/*PAGE - * - * _Region_MP_Send_response_packet - * - */ - -void _Region_MP_Send_response_packet ( - Region_MP_Remote_operations operation, - Objects_Id region_id, - Thread_Control *the_thread -) -{ - Region_MP_Packet *the_packet; - - switch ( operation ) { - - case REGION_MP_GET_SEGMENT_RESPONSE: - case REGION_MP_RETURN_SEGMENT_RESPONSE: - - the_packet = ( Region_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case REGION_MP_ANNOUNCE_CREATE: - case REGION_MP_ANNOUNCE_DELETE: - case REGION_MP_EXTRACT_PROXY: - case REGION_MP_GET_SEGMENT_REQUEST: - case REGION_MP_RETURN_SEGMENT_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Region_MP_Process_packet - * - */ - -void _Region_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Region_MP_Packet *the_packet; - Thread_Control *the_thread; - boolean ignored; - - the_packet = (Region_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case REGION_MP_ANNOUNCE_CREATE: - - ignored = _Objects_MP_Open( - &_Region_Information, - the_packet->name, - the_packet->Prefix.id, - TRUE - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case REGION_MP_ANNOUNCE_DELETE: - - _Objects_MP_Close( &_Region_Information, the_packet->Prefix.id ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case REGION_MP_EXTRACT_PROXY: - - the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id ); - - if ( ! _Thread_Is_null( the_thread ) ) - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case REGION_MP_GET_SEGMENT_REQUEST: - - the_packet->Prefix.return_code = rtems_region_get_segment( - the_packet->Prefix.id, - the_packet->size, - the_packet->option_set, - the_packet->Prefix.timeout, - &the_packet->segment - ); - - _Region_MP_Send_response_packet( - REGION_MP_GET_SEGMENT_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case REGION_MP_GET_SEGMENT_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - *(void **)the_thread->Wait.return_argument = the_packet->segment; - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case REGION_MP_RETURN_SEGMENT_REQUEST: - - the_packet->Prefix.return_code = rtems_region_return_segment( - the_packet->Prefix.id, - the_packet->segment - ); - - _Region_MP_Send_response_packet( - REGION_MP_RETURN_SEGMENT_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case REGION_MP_RETURN_SEGMENT_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - } -} - -/*PAGE - * - * _Region_MP_Send_object_was_deleted - * - * This routine is not needed by the Region since a region - * cannot be deleted when segments are in use. - * - */ - -/*PAGE - * - * _Region_MP_Send_extract_proxy - * - */ - -void _Region_MP_Send_extract_proxy ( - Thread_Control *the_thread -) -{ - _Region_MP_Send_process_packet( - REGION_MP_EXTRACT_PROXY, - the_thread->Wait.id, - (Objects_Name) 0, - the_thread->Object.id - ); -} - -/*PAGE - * - * _Region_MP_Get_packet - * - */ - -Region_MP_Packet *_Region_MP_Get_packet ( void ) -{ - return ( (Region_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/cpukit/rtems/src/rtclock.c b/cpukit/rtems/src/rtclock.c deleted file mode 100644 index f82baa6337..0000000000 --- a/cpukit/rtems/src/rtclock.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Clock Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * rtems_clock_get - * - * This directive returns the current date and time. If the time has - * not been set by a tm_set then an error is returned. - * - * Input parameters: - * option - which value to return - * time_buffer - pointer to output buffer (a time and date structure - * or an interval) - * - * Output parameters: - * time_buffer - output filled in - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_clock_get( - rtems_clock_get_options option, - void *time_buffer -) -{ - ISR_Level level; - rtems_interval tmp; - - switch ( option ) { - case RTEMS_CLOCK_GET_TOD: - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - *(rtems_time_of_day *)time_buffer = _TOD_Current; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH: - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - *(rtems_interval *)time_buffer = _TOD_Seconds_since_epoch; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_TICKS_SINCE_BOOT: - *(rtems_interval *)time_buffer = _TOD_Ticks_since_boot; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_TICKS_PER_SECOND: - *(rtems_interval *)time_buffer = _TOD_Ticks_per_second; - return( RTEMS_SUCCESSFUL ); - - case RTEMS_CLOCK_GET_TIME_VALUE: - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - _ISR_Disable( level ); - ((rtems_clock_time_value *)time_buffer)->seconds = - _TOD_Seconds_since_epoch; - tmp = _TOD_Current.ticks; - _ISR_Enable( level ); - - tmp *= _Configuration_Table->microseconds_per_tick; - ((rtems_clock_time_value *)time_buffer)->microseconds = tmp; - - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_SUCCESSFUL ); /* should never get here */ - -} - -/*PAGE - * - * rtems_clock_set - * - * This directive sets the date and time for this node. - * - * Input parameters: - * time_buffer - pointer to the time and date structure - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_clock_set( - rtems_time_of_day *time_buffer -) -{ - rtems_status_code local_result; - rtems_interval seconds; - - local_result = _TOD_Validate( time_buffer ); - if ( rtems_is_status_successful( local_result ) ) { - seconds = _TOD_To_seconds( time_buffer ); - _Thread_Disable_dispatch(); - _TOD_Set( time_buffer, seconds ); - _Thread_Enable_dispatch(); - - } - return( local_result ); -} - -/*PAGE - * - * rtems_clock_tick - * - * This directive notifies the executve that a tick has occurred. - * When the tick occurs the time manager updates and maintains - * the calendar time, timeslicing, and any timeout delays. - * - * Input parameters: NONE - * - * Output parameters: - * RTEMS_SUCCESSFUL - always succeeds - * - * NOTE: This routine only works for leap-years through 2099. - */ - -rtems_status_code rtems_clock_tick( void ) -{ - _TOD_Tickle_ticks(); - - _Watchdog_Tickle_ticks(); - - _Thread_Tickle_timeslice(); - - if ( _Thread_Is_context_switch_necessary() && - _Thread_Is_dispatching_enabled() ) - _Thread_Dispatch(); - - return( RTEMS_SUCCESSFUL ); -} diff --git a/cpukit/rtems/src/rtemstimer.c b/cpukit/rtems/src/rtemstimer.c deleted file mode 100644 index 076091bee4..0000000000 --- a/cpukit/rtems/src/rtemstimer.c +++ /dev/null @@ -1,343 +0,0 @@ -/* - * Timer Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Timer_Manager_initialization - * - * This routine initializes all timer manager related data structures. - * - * Input parameters: - * maximum_timers - number of timers to initialize - * - * Output parameters: NONE - */ - -void _Timer_Manager_initialization( - unsigned32 maximum_timers -) -{ - _Objects_Initialize_information( - &_Timer_Information, - FALSE, - maximum_timers, - sizeof( Timer_Control ) - ); -} - -/*PAGE - * - * rtems_timer_create - * - * This directive creates a timer and performs some initialization. - * - * Input parameters: - * name - timer name - * id - pointer to timer id - * - * Output parameters: - * id - timer id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_create( - Objects_Name name, - Objects_Id *id -) -{ - Timer_Control *the_timer; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_timer = _Timer_Allocate(); - - if ( !the_timer ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_timer->the_class = TIMER_DORMANT; - - _Objects_Open( &_Timer_Information, &the_timer->Object, name ); - - *id = the_timer->Object.id; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_timer_ident - * - * This directive returns the system ID associated with - * the timer name. - * - * Input parameters: - * name - user defined message queue name - * id - pointer to timer id - * - * Output parameters: - * *id - message queue id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_ident( - Objects_Name name, - Objects_Id *id -) -{ - return _Objects_Name_to_id( - &_Timer_Information, - name, - RTEMS_SEARCH_LOCAL_NODE, - id - ); -} - -/*PAGE - * - * rtems_timer_cancel - * - * This directive allows a thread to cancel a timer. - * - * Input parameters: - * id - timer id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_cancel( - Objects_Id id -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( !_Timer_Is_dormant_class( the_timer->the_class ) ) { - (void) _Watchdog_Remove( &the_timer->Ticker ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INCORRECT_STATE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_delete - * - * This directive allows a thread to delete a timer. - * - * Input parameters: - * id - timer id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_delete( - Objects_Id id -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - _Objects_Close( &_Timer_Information, &the_timer->Object ); - (void) _Watchdog_Remove( &the_timer->Ticker ); - _Timer_Free( the_timer ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_fire_after - * - * This directive allows a thread to start a timer. - * - * Input parameters: - * id - timer id - * ticks - interval until routine is fired - * routine - routine to schedule - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_fire_after( - Objects_Id id, - rtems_interval ticks, - Timer_Service routine, - void *user_data -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - if ( ticks == 0 ) - return( RTEMS_INVALID_NUMBER ); - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - (void) _Watchdog_Remove( &the_timer->Ticker ); - the_timer->the_class = TIMER_INTERVAL; - _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); - _Watchdog_Insert_ticks( &the_timer->Ticker, - ticks, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_fire_when - * - * This directive allows a thread to start a timer. - * - * Input parameters: - * id - timer id - * wall_time - time of day to fire timer - * routine - routine to schedule - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_fire_when( - Objects_Id id, - rtems_time_of_day *wall_time, - Timer_Service routine, - void *user_data -) -{ - Timer_Control *the_timer; - Objects_Locations location; - rtems_status_code validate_status; - rtems_interval seconds; - - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - validate_status = _TOD_Validate( wall_time ); - if ( !rtems_is_status_successful( validate_status ) ) - return( validate_status ); - - seconds = _TOD_To_seconds( wall_time ); - if ( seconds <= _TOD_Seconds_since_epoch ) - return( RTEMS_INVALID_CLOCK ); - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - (void) _Watchdog_Remove( &the_timer->Ticker ); - the_timer->the_class = TIMER_TIME_OF_DAY; - _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); - _Watchdog_Insert_seconds( &the_timer->Ticker, - seconds - _TOD_Seconds_since_epoch, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_timer_reset - * - * This directive allows a thread to reset a timer. - * - * Input parameters: - * id - timer id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_timer_reset( - Objects_Id id -) -{ - Timer_Control *the_timer; - Objects_Locations location; - - the_timer = _Timer_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INTERNAL_ERROR ); - case OBJECTS_LOCAL: - if ( _Timer_Is_interval_class( the_timer->the_class ) ) { - _Watchdog_Reset( &the_timer->Ticker ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_NOT_DEFINED ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/cpukit/rtems/src/sem.c b/cpukit/rtems/src/sem.c deleted file mode 100644 index 19410c62f1..0000000000 --- a/cpukit/rtems/src/sem.c +++ /dev/null @@ -1,483 +0,0 @@ -/* - * Semaphore Manager - * - * DESCRIPTION: - * - * This package is the implementation of the Semaphore Manager. - * This manager utilizes standard Dijkstra counting semaphores to provide - * synchronization and mutual exclusion capabilities. - * - * Directives provided are: - * - * + create a semaphore - * + get an ID of a semaphore - * + delete a semaphore - * + acquire a semaphore - * + release a semaphore - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Semaphore_Manager_initialization - * - * This routine initializes all semaphore manager related data structures. - * - * Input parameters: - * maximum_semaphores - maximum configured semaphores - * - * Output parameters: NONE - */ - -void _Semaphore_Manager_initialization( - unsigned32 maximum_semaphores -) -{ - _Objects_Initialize_information( - &_Semaphore_Information, - TRUE, - maximum_semaphores, - sizeof( Semaphore_Control ) - ); -} - -/*PAGE - * - * rtems_semaphore_create - * - * This directive creates a semaphore and sets the initial value based - * on the given count. A semaphore id is returned. - * - * Input parameters: - * name - user defined semaphore name - * count - initial count of semaphore - * attribute_set - semaphore attributes - * id - pointer to semaphore id - * - * Output parameters: - * id - semaphore id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_semaphore_create( - Objects_Name name, - unsigned32 count, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - register Semaphore_Control *the_semaphore; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - if ( _Attributes_Is_global( attribute_set ) ) { - - if ( !_Configuration_Is_multiprocessing() ) - return( RTEMS_MP_NOT_CONFIGURED ); - - if ( _Attributes_Is_inherit_priority( attribute_set ) ) - return( RTEMS_NOT_DEFINED ); - - } else if ( _Attributes_Is_inherit_priority( attribute_set ) ) { - - if ( ! ( _Attributes_Is_binary_semaphore( attribute_set ) && - _Attributes_Is_priority( attribute_set ) ) ) - return( RTEMS_NOT_DEFINED ); - - } - - if ( _Attributes_Is_binary_semaphore( attribute_set ) && ( count > 1 ) ) - return( RTEMS_INVALID_NUMBER ); - - _Thread_Disable_dispatch(); /* prevents deletion */ - - the_semaphore = _Semaphore_Allocate(); - - if ( !the_semaphore ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - if ( _Attributes_Is_global( attribute_set ) && - !( _Objects_MP_Open( &_Semaphore_Information, name, - the_semaphore->Object.id, FALSE ) ) ) { - _Semaphore_Free( the_semaphore ); - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_semaphore->attribute_set = attribute_set; - the_semaphore->count = count; - - if ( _Attributes_Is_binary_semaphore( attribute_set ) && count == 0 ) { - the_semaphore->nest_count = 1; - the_semaphore->holder = _Thread_Executing; - the_semaphore->holder_id = _Thread_Executing->Object.id; - _Thread_Executing->resource_count++; - } else { - the_semaphore->nest_count = 0; - the_semaphore->holder = NULL; - the_semaphore->holder_id = 0; - } - - _Thread_queue_Initialize( &the_semaphore->Wait_queue, - attribute_set, STATES_WAITING_FOR_SEMAPHORE ); - - _Objects_Open( &_Semaphore_Information, &the_semaphore->Object, name ); - - *id = the_semaphore->Object.id; - - if ( _Attributes_Is_global( attribute_set ) ) - _Semaphore_MP_Send_process_packet( - SEMAPHORE_MP_ANNOUNCE_CREATE, - the_semaphore->Object.id, - name, - 0 /* Not used */ - ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_semaphore_ident - * - * This directive returns the system ID associated with - * the semaphore name. - * - * Input parameters: - * name - user defined semaphore name - * node - node(s) to be searched - * id - pointer to semaphore id - * - * Output parameters: - * *id - semaphore id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_semaphore_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - return( _Objects_Name_to_id( &_Semaphore_Information, name, node, id ) ); -} - -/*PAGE - * - * rtems_semaphore_delete - * - * This directive allows a thread to delete a semaphore specified by - * the semaphore id. The semaphore is freed back to the inactive - * semaphore chain. - * - * Input parameters: - * id - semaphore id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_semaphore_delete( - Objects_Id id -) -{ - register Semaphore_Control *the_semaphore; - Objects_Locations location; - - the_semaphore = _Semaphore_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set) && - ( the_semaphore->count == 0 ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_RESOURCE_IN_USE ); - } - - _Objects_Close( &_Semaphore_Information, &the_semaphore->Object ); - - _Thread_queue_Flush( - &the_semaphore->Wait_queue, - _Semaphore_MP_Send_object_was_deleted - ); - - _Semaphore_Free( the_semaphore ); - - if ( _Attributes_Is_global( the_semaphore->attribute_set ) ) { - - _Objects_MP_Close( &_Semaphore_Information, the_semaphore->Object.id ); - - _Semaphore_MP_Send_process_packet( - SEMAPHORE_MP_ANNOUNCE_DELETE, - the_semaphore->Object.id, - 0, /* Not used */ - 0 /* Not used */ - ); - } - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_semaphore_obtain - * - * This directive allows a thread to acquire a semaphore. - * - * Input parameters: - * id - semaphore id - * option_set - wait option - * timeout - number of ticks to wait (0 means wait forever) - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_semaphore_obtain( - Objects_Id id, - unsigned32 option_set, - rtems_interval timeout -) -{ - register Semaphore_Control *the_semaphore; - Objects_Locations location; - - the_semaphore = _Semaphore_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return _Semaphore_MP_Send_request_packet( - SEMAPHORE_MP_OBTAIN_REQUEST, - id, - option_set, - timeout - ); - case OBJECTS_LOCAL: - if ( !_Semaphore_Seize( the_semaphore, option_set ) ) { - if ( _Attributes_Is_inherit_priority( the_semaphore->attribute_set ) && - the_semaphore->holder->current_priority > - _Thread_Executing->current_priority ) { - _Thread_Change_priority( - the_semaphore->holder, _Thread_Executing->current_priority ); - } - _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout ); - } - _Thread_Enable_dispatch(); - return( _Thread_Executing->Wait.return_code ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_semaphore_release - * - * This directive allows a thread to release a semaphore. - * - * Input parameters: - * id - semaphore id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_semaphore_release( - Objects_Id id -) -{ - register Semaphore_Control *the_semaphore; - Objects_Locations location; - Thread_Control *the_thread; - - the_semaphore = _Semaphore_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return( - _Semaphore_MP_Send_request_packet( - SEMAPHORE_MP_RELEASE_REQUEST, - id, - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ) - ); - case OBJECTS_LOCAL: - if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set)) { - - if ( !_Objects_Are_ids_equal( - _Thread_Executing->Object.id, the_semaphore->holder_id ) ) { - _Thread_Enable_dispatch(); - return( RTEMS_NOT_OWNER_OF_RESOURCE ); - } - - the_semaphore->nest_count--; - - if ( the_semaphore->nest_count != 0 ) { - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - _Thread_Executing->resource_count--; - the_semaphore->holder = NULL; - the_semaphore->holder_id = 0; - - /* - * Whether or not someone is waiting for the semaphore, an - * inherited priority must be lowered if this is the last - * semaphore (i.e. resource) this task has. - */ - - if ( _Attributes_Is_inherit_priority(the_semaphore->attribute_set) && - _Thread_Executing->resource_count == 0 && - _Thread_Executing->real_priority != - _Thread_Executing->current_priority ) { - _Thread_Change_priority( - _Thread_Executing, _Thread_Executing->real_priority ); - } - - } - - if ( (the_thread = _Thread_queue_Dequeue(&the_semaphore->Wait_queue)) ) { - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) { - the_thread->receive_packet->return_code = RTEMS_SUCCESSFUL; - - if ( _Attributes_Is_binary_semaphore(the_semaphore->attribute_set) ) { - the_semaphore->holder = NULL; - the_semaphore->holder_id = the_thread->Object.id; - the_semaphore->nest_count = 1; - } - - _Semaphore_MP_Send_response_packet( - SEMAPHORE_MP_OBTAIN_RESPONSE, - id, - the_thread - ); - } else { - - if ( _Attributes_Is_binary_semaphore(the_semaphore->attribute_set) ) { - the_semaphore->holder = the_thread; - the_semaphore->holder_id = the_thread->Object.id; - the_thread->resource_count++; - the_semaphore->nest_count = 1; - } - - /* - * No special action for priority inheritance because the_thread - * is guaranteed to be the highest priority thread waiting for - * the semaphore. - */ - } - } else - the_semaphore->count += 1; - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * _Semaphore_Seize - * - * This routine attempts to allocate a semaphore to the calling thread. - * - * Input parameters: - * the_semaphore - pointer to semaphore control block - * option_set - acquire semaphore options - * - * Output parameters: - * TRUE - if semaphore allocated - * FALSE - if semaphore NOT allocated - * - * INTERRUPT LATENCY: - * available - * wait - */ - -boolean _Semaphore_Seize( - Semaphore_Control *the_semaphore, - rtems_option option_set -) -{ - Thread_Control *executing; - ISR_Level level; - - executing = _Thread_Executing; - executing->Wait.return_code = RTEMS_SUCCESSFUL; - _ISR_Disable( level ); - if ( the_semaphore->count != 0 ) { - the_semaphore->count -= 1; - if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set ) ) { - the_semaphore->holder = executing; - the_semaphore->holder_id = executing->Object.id; - the_semaphore->nest_count = 1; - executing->resource_count++; - } - _ISR_Enable( level ); - return( TRUE ); - } - - if ( _Options_Is_no_wait( option_set ) ) { - _ISR_Enable( level ); - executing->Wait.return_code = RTEMS_UNSATISFIED; - return( TRUE ); - } - - if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set ) ) { - if ( _Objects_Are_ids_equal( - _Thread_Executing->Object.id, the_semaphore->holder_id ) ) { - the_semaphore->nest_count++; - _ISR_Enable( level ); - return( TRUE ); - } - } - - the_semaphore->Wait_queue.sync = TRUE; - executing->Wait.queue = &the_semaphore->Wait_queue; - executing->Wait.id = the_semaphore->Object.id; - executing->Wait.option_set = option_set; - _ISR_Enable( level ); - return( FALSE ); -} diff --git a/cpukit/rtems/src/semmp.c b/cpukit/rtems/src/semmp.c deleted file mode 100644 index d131d48150..0000000000 --- a/cpukit/rtems/src/semmp.c +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Multiprocessing Support for the Semaphore Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Semaphore_MP_Send_process_packet - * - */ - -void _Semaphore_MP_Send_process_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - Objects_Name name, - Objects_Id proxy_id -) -{ - Semaphore_MP_Packet *the_packet; - unsigned32 node; - - switch ( operation ) { - - case SEMAPHORE_MP_ANNOUNCE_CREATE: - case SEMAPHORE_MP_ANNOUNCE_DELETE: - case SEMAPHORE_MP_EXTRACT_PROXY: - - the_packet = _Semaphore_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_SEMAPHORE; - the_packet->Prefix.length = sizeof ( Semaphore_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Semaphore_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = semaphore_id; - the_packet->name = name; - the_packet->proxy_id = proxy_id; - - if ( operation == SEMAPHORE_MP_EXTRACT_PROXY ) - node = rtems_get_node( semaphore_id ); - else - node = MPCI_ALL_NODES; - - _MPCI_Send_process_packet( node, &the_packet->Prefix ); - break; - - case SEMAPHORE_MP_OBTAIN_REQUEST: - case SEMAPHORE_MP_OBTAIN_RESPONSE: - case SEMAPHORE_MP_RELEASE_REQUEST: - case SEMAPHORE_MP_RELEASE_RESPONSE: - break; - } -} - -/*PAGE - * - * _Semaphore_MP_Send_request_packet - * - */ - -rtems_status_code _Semaphore_MP_Send_request_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - rtems_option option_set, - rtems_interval timeout -) -{ - Semaphore_MP_Packet *the_packet; - - switch ( operation ) { - - case SEMAPHORE_MP_OBTAIN_REQUEST: - case SEMAPHORE_MP_RELEASE_REQUEST: - - the_packet = _Semaphore_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_SEMAPHORE; - the_packet->Prefix.length = sizeof ( Semaphore_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Semaphore_MP_Packet ); - if ( ! _Options_Is_no_wait(option_set)) - the_packet->Prefix.timeout = timeout; - - the_packet->operation = operation; - the_packet->Prefix.id = semaphore_id; - the_packet->option_set = option_set; - - return _MPCI_Send_request_packet( - rtems_get_node( semaphore_id ), - &the_packet->Prefix, - STATES_WAITING_FOR_SEMAPHORE - ); - break; - - case SEMAPHORE_MP_ANNOUNCE_CREATE: - case SEMAPHORE_MP_ANNOUNCE_DELETE: - case SEMAPHORE_MP_EXTRACT_PROXY: - case SEMAPHORE_MP_OBTAIN_RESPONSE: - case SEMAPHORE_MP_RELEASE_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _Semaphore_MP_Send_response_packet - * - */ - -void _Semaphore_MP_Send_response_packet ( - Semaphore_MP_Remote_operations operation, - Objects_Id semaphore_id, - Thread_Control *the_thread -) -{ - Semaphore_MP_Packet *the_packet; - - switch ( operation ) { - - case SEMAPHORE_MP_OBTAIN_RESPONSE: - case SEMAPHORE_MP_RELEASE_RESPONSE: - - the_packet = ( Semaphore_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case SEMAPHORE_MP_ANNOUNCE_CREATE: - case SEMAPHORE_MP_ANNOUNCE_DELETE: - case SEMAPHORE_MP_EXTRACT_PROXY: - case SEMAPHORE_MP_OBTAIN_REQUEST: - case SEMAPHORE_MP_RELEASE_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Semaphore_MP_Process_packet - * - */ - -void _Semaphore_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Semaphore_MP_Packet *the_packet; - Thread_Control *the_thread; - boolean ignored; - - the_packet = (Semaphore_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case SEMAPHORE_MP_ANNOUNCE_CREATE: - - ignored = _Objects_MP_Open( - &_Semaphore_Information, - the_packet->name, - the_packet->Prefix.id, - TRUE - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case SEMAPHORE_MP_ANNOUNCE_DELETE: - - _Objects_MP_Close( &_Semaphore_Information, the_packet->Prefix.id ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case SEMAPHORE_MP_EXTRACT_PROXY: - - the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id ); - - if ( ! _Thread_Is_null( the_thread ) ) - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case SEMAPHORE_MP_OBTAIN_REQUEST: - - the_packet->Prefix.return_code = rtems_semaphore_obtain( - the_packet->Prefix.id, - the_packet->option_set, - the_packet->Prefix.timeout - ); - - if ( ! _Status_Is_proxy_blocking( the_packet->Prefix.return_code ) ) - _Semaphore_MP_Send_response_packet( - SEMAPHORE_MP_OBTAIN_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - - case SEMAPHORE_MP_OBTAIN_RESPONSE: - case SEMAPHORE_MP_RELEASE_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case SEMAPHORE_MP_RELEASE_REQUEST: - - the_packet->Prefix.return_code = rtems_semaphore_release( - the_packet->Prefix.id - ); - - _Semaphore_MP_Send_response_packet( - SEMAPHORE_MP_RELEASE_RESPONSE, - the_packet->Prefix.id, - _Thread_Executing - ); - break; - } -} - -/*PAGE - * - * _Semaphore_MP_Send_object_was_deleted - * - */ - -void _Semaphore_MP_Send_object_was_deleted ( - Thread_Control *the_proxy -) -{ - the_proxy->receive_packet->return_code = RTEMS_OBJECT_WAS_DELETED; - - _Semaphore_MP_Send_response_packet( - SEMAPHORE_MP_OBTAIN_RESPONSE, - the_proxy->Wait.id, - the_proxy - ); - -} - -/*PAGE - * - * _Semaphore_MP_Send_extract_proxy - * - */ - -void _Semaphore_MP_Send_extract_proxy ( - Thread_Control *the_thread -) -{ - _Semaphore_MP_Send_process_packet( - SEMAPHORE_MP_EXTRACT_PROXY, - the_thread->Wait.id, - (Objects_Name) 0, - the_thread->Object.id - ); - -} - -/*PAGE - * - * _Semaphore_MP_Get_packet - * - */ - -Semaphore_MP_Packet *_Semaphore_MP_Get_packet ( void ) -{ - return ( (Semaphore_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/cpukit/rtems/src/signal.c b/cpukit/rtems/src/signal.c deleted file mode 100644 index 411df5d86c..0000000000 --- a/cpukit/rtems/src/signal.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Signal Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * rtems_signal_catch - * - * This directive allows a thread to specify what action to take when - * catching signals. - * - * Input parameters: - * handler - address of asynchronous signal routine (asr) - * ( NULL indicates asr is invalid ) - * mode_set - mode value for asr - * - * Output parameters: - * RTEMS_SUCCESSFUL - always succeeds - */ - -rtems_status_code rtems_signal_catch( - rtems_asr_entry handler, - rtems_mode mode_set -) -{ - Thread_Control *executing; - - executing = _Thread_Executing; - _Thread_Disable_dispatch(); /* cannot reschedule while */ - /* the thread is inconsistent */ - - if ( ! _ASR_Is_null_handler( handler ) ) { - executing->Signal.mode_set = mode_set; - executing->Signal.handler = handler; - } - else - _ASR_Initialize( &executing->Signal ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_signal_send - * - * This directive allows a thread to send signals to a thread. - * - * Input parameters: - * id - thread id - * signal_set - signal set - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_signal_send( - Objects_Id id, - rtems_signal_set signal_set -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return _Signal_MP_Send_request_packet( - SIGNAL_MP_SEND_REQUEST, - id, - signal_set - ); - case OBJECTS_LOCAL: - if ( ! _ASR_Is_null_handler( the_thread->Signal.handler ) ) { - if ( _Modes_Is_asr_disabled( the_thread->current_modes ) ) - _ASR_Post_signals( signal_set, &the_thread->Signal.signals_pending ); - else { - _ASR_Post_signals( signal_set, &the_thread->Signal.signals_posted ); - if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) - _ISR_Signals_to_thread_executing = TRUE; - } - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_NOT_DEFINED ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/cpukit/rtems/src/signalmp.c b/cpukit/rtems/src/signalmp.c deleted file mode 100644 index 4ac8123766..0000000000 --- a/cpukit/rtems/src/signalmp.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Multiprocessing Support for the Signal Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Signal_MP_Send_process_packet - * - * This subprogram is not needed since there are no process - * packets to be sent by this manager. - * - */ - -/*PAGE - * - * _Signal_MP_Send_request_packet - * - */ - -rtems_status_code _Signal_MP_Send_request_packet ( - Signal_MP_Remote_operations operation, - Objects_Id task_id, - rtems_signal_set signal_in -) -{ - Signal_MP_Packet *the_packet; - - switch ( operation ) { - - case SIGNAL_MP_SEND_REQUEST: - - the_packet = _Signal_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_SIGNAL; - the_packet->Prefix.length = sizeof ( Signal_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( Signal_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = task_id; - the_packet->signal_in = signal_in; - - return _MPCI_Send_request_packet( - rtems_get_node( task_id ), - &the_packet->Prefix, - STATES_READY /* Not used */ - ); - break; - - case SIGNAL_MP_SEND_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_INTERNAL_ERROR; -} - -/*PAGE - * - * _Signal_MP_Send_response_packet - * - */ - -void _Signal_MP_Send_response_packet ( - Signal_MP_Remote_operations operation, - Thread_Control *the_thread -) -{ - Signal_MP_Packet *the_packet; - - switch ( operation ) { - - case SIGNAL_MP_SEND_RESPONSE: - - the_packet = ( Signal_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case SIGNAL_MP_SEND_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _Signal_MP_Process_packet - * - */ - -void _Signal_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - Signal_MP_Packet *the_packet; - Thread_Control *the_thread; - - the_packet = (Signal_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case SIGNAL_MP_SEND_REQUEST: - - the_packet->Prefix.return_code = rtems_signal_send( - the_packet->Prefix.id, - the_packet->signal_in - ); - - _Signal_MP_Send_response_packet( - SIGNAL_MP_SEND_RESPONSE, - _Thread_Executing - ); - break; - - case SIGNAL_MP_SEND_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - } -} - -/*PAGE - * - * _Signal_MP_Send_object_was_deleted - * - * This subprogram is not needed since there are no objects - * deleted by this manager. - * - */ - -/*PAGE - * - * _Signal_MP_Send_extract_proxy - * - * This subprogram is not needed since there are no objects - * deleted by this manager. - * - */ - -/*PAGE - * - * _Signal_MP_Get_packet - * - */ - -Signal_MP_Packet *_Signal_MP_Get_packet ( void ) -{ - return ( (Signal_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/cpukit/rtems/src/taskmp.c b/cpukit/rtems/src/taskmp.c deleted file mode 100644 index b938c60c53..0000000000 --- a/cpukit/rtems/src/taskmp.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Multiprocessing Support for the RTEMS Task Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _RTEMS_tasks_MP_Send_process_packet - * - */ - -void _RTEMS_tasks_MP_Send_process_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Objects_Id task_id, - Objects_Name name -) -{ - RTEMS_tasks_MP_Packet *the_packet; - - switch ( operation ) { - - case RTEMS_TASKS_MP_ANNOUNCE_CREATE: - case RTEMS_TASKS_MP_ANNOUNCE_DELETE: - - the_packet = _RTEMS_tasks_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_TASKS; - the_packet->Prefix.length = sizeof ( RTEMS_tasks_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( RTEMS_tasks_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = task_id; - the_packet->name = name; - - _MPCI_Send_process_packet( MPCI_ALL_NODES, &the_packet->Prefix ); - break; - - case RTEMS_TASKS_MP_SUSPEND_REQUEST: - case RTEMS_TASKS_MP_SUSPEND_RESPONSE: - case RTEMS_TASKS_MP_RESUME_REQUEST: - case RTEMS_TASKS_MP_RESUME_RESPONSE: - case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST: - case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE: - case RTEMS_TASKS_MP_GET_NOTE_REQUEST: - case RTEMS_TASKS_MP_GET_NOTE_RESPONSE: - case RTEMS_TASKS_MP_SET_NOTE_REQUEST: - case RTEMS_TASKS_MP_SET_NOTE_RESPONSE: - break; - } -} - -/*PAGE - * - * _RTEMS_tasks_MP_Send_request_packet - * - */ - -rtems_status_code _RTEMS_tasks_MP_Send_request_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Objects_Id task_id, - rtems_task_priority new_priority, - unsigned32 notepad, - unsigned32 note -) -{ - RTEMS_tasks_MP_Packet *the_packet; - - switch ( operation ) { - - case RTEMS_TASKS_MP_SUSPEND_REQUEST: - case RTEMS_TASKS_MP_RESUME_REQUEST: - case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST: - case RTEMS_TASKS_MP_GET_NOTE_REQUEST: - case RTEMS_TASKS_MP_SET_NOTE_REQUEST: - - the_packet = _RTEMS_tasks_MP_Get_packet(); - the_packet->Prefix.the_class = RTEMS_MP_PACKET_TASKS; - the_packet->Prefix.length = sizeof ( RTEMS_tasks_MP_Packet ); - the_packet->Prefix.to_convert = sizeof ( RTEMS_tasks_MP_Packet ); - the_packet->operation = operation; - the_packet->Prefix.id = task_id; - the_packet->the_priority = new_priority; - the_packet->notepad = notepad; - the_packet->note = note; - - return _MPCI_Send_request_packet( - rtems_get_node( task_id ), - &the_packet->Prefix, - STATES_READY /* Not used */ - ); - break; - - case RTEMS_TASKS_MP_ANNOUNCE_CREATE: - case RTEMS_TASKS_MP_ANNOUNCE_DELETE: - case RTEMS_TASKS_MP_SUSPEND_RESPONSE: - case RTEMS_TASKS_MP_RESUME_RESPONSE: - case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE: - case RTEMS_TASKS_MP_GET_NOTE_RESPONSE: - case RTEMS_TASKS_MP_SET_NOTE_RESPONSE: - break; - - } - /* - * The following line is included to satisfy compilers which - * produce warnings when a function does not end with a return. - */ - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _RTEMS_tasks_MP_Send_response_packet - * - */ - -void _RTEMS_tasks_MP_Send_response_packet ( - RTEMS_tasks_MP_Remote_operations operation, - Thread_Control *the_thread -) -{ - RTEMS_tasks_MP_Packet *the_packet; - - switch ( operation ) { - - case RTEMS_TASKS_MP_SUSPEND_RESPONSE: - case RTEMS_TASKS_MP_RESUME_RESPONSE: - case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE: - case RTEMS_TASKS_MP_GET_NOTE_RESPONSE: - case RTEMS_TASKS_MP_SET_NOTE_RESPONSE: - - the_packet = (RTEMS_tasks_MP_Packet *) the_thread->receive_packet; - -/* - * The packet being returned already contains the class, length, and - * to_convert fields, therefore they are not set in this routine. - */ - the_packet->operation = operation; - the_packet->Prefix.id = the_packet->Prefix.source_tid; - - _MPCI_Send_response_packet( - rtems_get_node( the_packet->Prefix.source_tid ), - &the_packet->Prefix - ); - break; - - case RTEMS_TASKS_MP_ANNOUNCE_CREATE: - case RTEMS_TASKS_MP_ANNOUNCE_DELETE: - case RTEMS_TASKS_MP_SUSPEND_REQUEST: - case RTEMS_TASKS_MP_RESUME_REQUEST: - case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST: - case RTEMS_TASKS_MP_GET_NOTE_REQUEST: - case RTEMS_TASKS_MP_SET_NOTE_REQUEST: - break; - - } -} - -/*PAGE - * - * - * _RTEMS_tasks_MP_Process_packet - * - */ - -void _RTEMS_tasks_MP_Process_packet ( - rtems_packet_prefix *the_packet_prefix -) -{ - RTEMS_tasks_MP_Packet *the_packet; - Thread_Control *the_thread; - boolean ignored; - - the_packet = (RTEMS_tasks_MP_Packet *) the_packet_prefix; - - switch ( the_packet->operation ) { - - case RTEMS_TASKS_MP_ANNOUNCE_CREATE: - - ignored = _Objects_MP_Open( - &_Thread_Information, - the_packet->name, - the_packet->Prefix.id, - TRUE - ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case RTEMS_TASKS_MP_ANNOUNCE_DELETE: - - _Objects_MP_Close( &_Thread_Information, the_packet->Prefix.id ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case RTEMS_TASKS_MP_SUSPEND_REQUEST: - - the_packet->Prefix.return_code = rtems_task_suspend( - the_packet->Prefix.id - ); - - _RTEMS_tasks_MP_Send_response_packet( - RTEMS_TASKS_MP_SUSPEND_RESPONSE, - _Thread_Executing - ); - break; - - case RTEMS_TASKS_MP_SUSPEND_RESPONSE: - case RTEMS_TASKS_MP_RESUME_RESPONSE: - case RTEMS_TASKS_MP_SET_NOTE_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case RTEMS_TASKS_MP_RESUME_REQUEST: - - the_packet->Prefix.return_code = rtems_task_resume( - the_packet->Prefix.id - ); - - _RTEMS_tasks_MP_Send_response_packet( - RTEMS_TASKS_MP_RESUME_RESPONSE, - _Thread_Executing - ); - break; - - case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST: - - the_packet->Prefix.return_code = rtems_task_set_priority( - the_packet->Prefix.id, - the_packet->the_priority, - &the_packet->the_priority - ); - - _RTEMS_tasks_MP_Send_response_packet( - RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE, - _Thread_Executing - ); - break; - - case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - *(rtems_task_priority *)the_thread->Wait.return_argument = - the_packet->the_priority; - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case RTEMS_TASKS_MP_GET_NOTE_REQUEST: - - the_packet->Prefix.return_code = rtems_task_get_note( - the_packet->Prefix.id, - the_packet->notepad, - &the_packet->note - ); - - _RTEMS_tasks_MP_Send_response_packet( - RTEMS_TASKS_MP_GET_NOTE_RESPONSE, - _Thread_Executing - ); - break; - - case RTEMS_TASKS_MP_GET_NOTE_RESPONSE: - - the_thread = _MPCI_Process_response( the_packet_prefix ); - - *(unsigned32 *)the_thread->Wait.return_argument = the_packet->note; - - _MPCI_Return_packet( the_packet_prefix ); - break; - - case RTEMS_TASKS_MP_SET_NOTE_REQUEST: - - the_packet->Prefix.return_code = rtems_task_set_note( - the_packet->Prefix.id, - the_packet->notepad, - the_packet->note - ); - - _RTEMS_tasks_MP_Send_response_packet( - RTEMS_TASKS_MP_SET_NOTE_RESPONSE, - _Thread_Executing - ); - break; - } -} - -/*PAGE - * - * _RTEMS_tasks_MP_Send_object_was_deleted - * - * This routine is not neededby the Tasks since a task - * cannot be globally deleted. - * - */ - -/*PAGE - * - * _RTEMS_tasks_MP_Send_extract_proxy - * - * This routine is not neededby the Tasks since a task - * cannot be globally deleted. - * - */ - -/*PAGE - * - * _RTEMS_tasks_MP_Get_packet - * - */ - -RTEMS_tasks_MP_Packet *_RTEMS_tasks_MP_Get_packet ( void ) -{ - return ( (RTEMS_tasks_MP_Packet *) _MPCI_Get_packet() ); -} - -/* end of file */ diff --git a/cpukit/rtems/src/tasks.c b/cpukit/rtems/src/tasks.c deleted file mode 100644 index edba524d94..0000000000 --- a/cpukit/rtems/src/tasks.c +++ /dev/null @@ -1,816 +0,0 @@ -/* - * RTEMS Task Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * rtems_task_create - * - * This directive creates a thread by allocating and initializing a - * thread control block and a stack. The newly created thread is - * placed in the dormant state. - * - * Input parameters: - * name - user defined thread name - * initial_priority - thread priority - * stack_size - stack size in bytes - * initial_modes - initial thread mode - * attribute_set - thread attributes - * id - pointer to thread id - * - * Output parameters: - * id - thread id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_create( - Objects_Name name, - rtems_task_priority initial_priority, - unsigned32 stack_size, - rtems_mode initial_modes, - rtems_attribute attribute_set, - Objects_Id *id -) -{ - register Thread_Control *the_thread; - unsigned32 actual_stack_size; - unsigned32 memory_needed; - void *memory; - rtems_attribute the_attribute_set; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - -#if 0 - if ( !_Stack_Is_enough( stack_size ) ) - return( RTEMS_INVALID_SIZE ); -#endif - - if ( !_Stack_Is_enough( stack_size ) ) - actual_stack_size = RTEMS_MINIMUM_STACK_SIZE; - else - actual_stack_size = stack_size; - - if ( !_Priority_Is_valid( initial_priority ) ) - return( RTEMS_INVALID_PRIORITY ); - - /* - * Fix the attribute set to match the attributes which - * this processor (1) requires and (2) is able to support. - * First add in the required flags for attribute_set - * Typically this might include FP if the platform - * or application required all tasks to be fp aware. - * Then turn off the requested bits which are not supported. - */ - - the_attribute_set = _Attributes_Set( attribute_set, ATTRIBUTES_REQUIRED ); - the_attribute_set = - _Attributes_Clear( the_attribute_set, ATTRIBUTES_NOT_SUPPORTED ); - - if ( _Attributes_Is_global( the_attribute_set ) && - !_Configuration_Is_multiprocessing() ) - return( RTEMS_MP_NOT_CONFIGURED ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_thread = _RTEMS_tasks_Allocate(); - - if ( !the_thread ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - actual_stack_size = _Stack_Adjust_size( actual_stack_size ); - memory_needed = actual_stack_size; - - if ( _Attributes_Is_floating_point( the_attribute_set ) ) - memory_needed += CONTEXT_FP_SIZE; - - memory = _Workspace_Allocate( memory_needed ); - - if ( !memory ) { - _RTEMS_tasks_Free( the_thread ); - _Thread_Enable_dispatch(); - return( RTEMS_UNSATISFIED ); - } - - /* - * Stack is put in the lower address regions of the allocated memory. - * The optional floating point context area goes into the higher part - * of the allocated memory. - */ - - _Stack_Initialize( - &the_thread->Start.Initial_stack, memory, actual_stack_size ); - - if ( _Attributes_Is_floating_point( the_attribute_set ) ) - the_thread->fp_context = _Context_Fp_start( memory, actual_stack_size ); - else - the_thread->fp_context = NULL; - - the_thread->Start.fp_context = the_thread->fp_context; - - if ( _Attributes_Is_global( the_attribute_set ) && - !( _Objects_MP_Open( &_Thread_Information, name, - the_thread->Object.id, FALSE ) ) ) { - _RTEMS_tasks_Free( the_thread ); - (void) _Workspace_Free( memory ); - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - the_thread->name = name; - the_thread->attribute_set = the_attribute_set; - the_thread->current_state = STATES_DORMANT; - the_thread->current_modes = initial_modes; - the_thread->pending_events = EVENT_SETS_NONE_PENDING; - the_thread->resource_count = 0; - the_thread->real_priority = initial_priority; - the_thread->Start.initial_priority = initial_priority; - the_thread->Start.initial_modes = initial_modes; - - _Thread_Set_priority( the_thread, initial_priority ); - - _ASR_Initialize( &the_thread->Signal ); - - _Objects_Open( &_Thread_Information, &the_thread->Object, name ); - - *id = the_thread->Object.id; - - _User_extensions_Task_create( the_thread ); - - if ( _Attributes_Is_global( the_attribute_set ) ) - _RTEMS_tasks_MP_Send_process_packet( - RTEMS_TASKS_MP_ANNOUNCE_CREATE, - the_thread->Object.id, - name - ); - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_task_ident - * - * This directive returns the system ID associated with - * the thread name. - * - * Input parameters: - * name - user defined thread name - * node - node(s) to be searched - * id - pointer to thread id - * - * Output parameters: - * *id - thread id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_ident( - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - if ( name != OBJECTS_ID_OF_SELF ) - return( _Objects_Name_to_id( &_Thread_Information, name, node, id ) ); - - *id = _Thread_Executing->Object.id; - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_task_start - * - * This directive readies the thread identified by the "id" - * based on its current priorty, to await execution. A thread - * can be started only from the dormant state. - * - * Input parameters: - * id - thread id - * entry_point - start execution address of thread - * argument - thread argument - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_start( - Objects_Id id, - rtems_task_entry entry_point, - unsigned32 argument -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - if ( entry_point == NULL ) - return( RTEMS_INVALID_ADDRESS ); - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - if ( _States_Is_dormant( the_thread->current_state ) ) { - - the_thread->Start.entry_point = entry_point; - the_thread->Start.initial_argument = argument; - - _Thread_Load_environment( the_thread ); - - _Thread_Ready( the_thread ); - - _User_extensions_Task_start( the_thread ); - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INCORRECT_STATE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_restart - * - * This directive readies the specified thread. It restores - * the thread environment to the original values established - * at thread creation and start time. A thread can be restarted - * from any state except the dormant state. - * - * Input parameters: - * id - thread id - * argument - thread argument - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_restart( - Objects_Id id, - unsigned32 argument -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - if ( !_States_Is_dormant( the_thread->current_state ) ) { - - _Thread_Set_transient( the_thread ); - _ASR_Initialize( &the_thread->Signal ); - the_thread->pending_events = EVENT_SETS_NONE_PENDING; - the_thread->resource_count = 0; - the_thread->current_modes = the_thread->Start.initial_modes; - the_thread->Start.initial_argument = argument; - - _RTEMS_tasks_Cancel_wait( the_thread ); - - if ( the_thread->current_priority != - the_thread->Start.initial_priority ) { - the_thread->real_priority = the_thread->Start.initial_priority; - _Thread_Set_priority( the_thread, - the_thread->Start.initial_priority ); - } - - _Thread_Load_environment( the_thread ); - - _Thread_Ready( the_thread ); - - _User_extensions_Task_restart( the_thread ); - - if ( _Thread_Is_executing ( the_thread ) ) - _Thread_Restart_self(); - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INCORRECT_STATE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_delete - * - * This directive allows a thread to delete itself or the thread - * identified in the id field. The executive halts execution - * of the thread and frees the thread control block. - * - * Input parameters: - * id - thread id - * - * Output parameters: - * nothing - if id is the requesting thread (always succeeds) - * RTEMS_SUCCESSFUL - if successful and id is - * not the requesting thread - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_delete( - Objects_Id id -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT ); - case OBJECTS_LOCAL: - _Objects_Close( &_Thread_Information, &the_thread->Object ); - - _Thread_Set_state( the_thread, STATES_TRANSIENT ); - - _User_extensions_Task_delete( the_thread ); - -#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE ) - if ( _Thread_Is_allocated_fp( the_thread ) ) - _Thread_Deallocate_fp(); -#endif - the_thread->fp_context = NULL; - - _RTEMS_tasks_Cancel_wait( the_thread ); - - (void) _Workspace_Free( the_thread->Start.Initial_stack.area ); - - _RTEMS_tasks_Free( the_thread ); - - if ( _Attributes_Is_global( the_thread->attribute_set ) ) { - - _Objects_MP_Close( &_Thread_Information, the_thread->Object.id ); - - _RTEMS_tasks_MP_Send_process_packet( - RTEMS_TASKS_MP_ANNOUNCE_DELETE, - the_thread->Object.id, - 0 /* Not used */ - ); - } - - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_suspend - * - * This directive will place the specified thread in the "suspended" - * state. Note that the suspended state can be in addition to - * other waiting states. - * - * Input parameters: - * id - thread id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_suspend( - Objects_Id id -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return( - _RTEMS_tasks_MP_Send_request_packet( - RTEMS_TASKS_MP_SUSPEND_REQUEST, - id, - 0, /* Not used */ - 0, /* Not used */ - 0 /* Not used */ - ) - ); - case OBJECTS_LOCAL: - if ( !_States_Is_suspended( the_thread->current_state ) ) { - _Thread_Set_state( the_thread, STATES_SUSPENDED ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_ALREADY_SUSPENDED ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_resume - * - * This directive will remove the specified thread - * from the suspended state. - * - * Input parameters: - * id - thread id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_resume( - Objects_Id id -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return( - _RTEMS_tasks_MP_Send_request_packet( - RTEMS_TASKS_MP_RESUME_REQUEST, - id, - 0, /* Not used */ - 0, /* Not used */ - 0 /* Not used */ - ) - ); - case OBJECTS_LOCAL: - if ( _States_Is_suspended( the_thread->current_state ) ) { - _Thread_Resume( the_thread ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - _Thread_Enable_dispatch(); - return( RTEMS_INCORRECT_STATE ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_set_priority - * - * This directive changes the priority of the specified thread. - * The specified thread can be any thread in the system including - * the requesting thread. - * - * Input parameters: - * id - thread id (0 indicates requesting thread) - * new_priority - thread priority (0 indicates current priority) - * old_priority - pointer to previous priority - * - * Output parameters: - * old_priority - previous priority - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_set_priority( - Objects_Id id, - rtems_task_priority new_priority, - rtems_task_priority *old_priority -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - if ( new_priority != RTEMS_CURRENT_PRIORITY && - !_Priority_Is_valid( new_priority ) ) - return( RTEMS_INVALID_PRIORITY ); - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = old_priority; - return( - _RTEMS_tasks_MP_Send_request_packet( - RTEMS_TASKS_MP_SET_PRIORITY_REQUEST, - id, - new_priority, - 0, /* Not used */ - 0 /* Not used */ - ) - ); - case OBJECTS_LOCAL: - *old_priority = the_thread->current_priority; - if ( new_priority != RTEMS_CURRENT_PRIORITY ) { - the_thread->real_priority = new_priority; - if ( the_thread->resource_count == 0 || - the_thread->current_priority > new_priority ) - _Thread_Change_priority( the_thread, new_priority ); - } - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_mode - * - * This directive enables and disables several modes of - * execution for the requesting thread. - * - * Input parameters: - * mode_set - new mode - * mask - mask - * previous_mode_set - address of previous mode set - * - * Output: - * *previous_mode_set - previous mode set - * always returns RTEMS_SUCCESSFUL - */ - -rtems_status_code rtems_task_mode( - rtems_mode mode_set, - rtems_mode mask, - rtems_mode *previous_mode_set -) -{ - if ( _Thread_Change_mode( mode_set, mask, previous_mode_set ) ) - _Thread_Dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_task_get_note - * - * This directive obtains the note from the specified notepad - * of the specified thread. - * - * Input parameters: - * id - thread id - * notepad - notepad number - * note - pointer to note - * - * Output parameters: - * note - filled in if successful - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_get_note( - Objects_Id id, - unsigned32 notepad, - unsigned32 *note -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - /* - * NOTE: There is no check for < RTEMS_NOTEPAD_FIRST because that would - * be checking an unsigned number for being negative. - */ - - if ( notepad > RTEMS_NOTEPAD_LAST ) - return( RTEMS_INVALID_NUMBER ); - - /* - * Optimize the most likely case to avoid the Thread_Dispatch. - */ - - if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || - _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { - *note = _Thread_Executing->Notepads[ notepad ]; - return( RTEMS_SUCCESSFUL ); - } - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - _Thread_Executing->Wait.return_argument = note; - - return _RTEMS_tasks_MP_Send_request_packet( - RTEMS_TASKS_MP_GET_NOTE_REQUEST, - id, - 0, /* Not used */ - notepad, - 0 /* Not used */ - ); - case OBJECTS_LOCAL: - *note= the_thread->Notepads[ notepad ]; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_set_note - * - * This directive sets the specified notepad contents to the given - * note. - * - * Input parameters: - * id - thread id - * notepad - notepad number - * note - note value - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_set_note( - Objects_Id id, - unsigned32 notepad, - unsigned32 note -) -{ - register Thread_Control *the_thread; - Objects_Locations location; - - /* - * NOTE: There is no check for < RTEMS_NOTEPAD_FIRST because that would - * be checking an unsigned number for being negative. - */ - - if ( notepad > RTEMS_NOTEPAD_LAST ) - return( RTEMS_INVALID_NUMBER ); - - /* - * Optimize the most likely case to avoid the Thread_Dispatch. - */ - - if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || - _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { - _Thread_Executing->Notepads[ notepad ] = note; - return( RTEMS_SUCCESSFUL ); - } - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - return( RTEMS_INVALID_ID ); - case OBJECTS_REMOTE: - return _RTEMS_tasks_MP_Send_request_packet( - RTEMS_TASKS_MP_SET_NOTE_REQUEST, - id, - 0, /* Not used */ - notepad, - note - ); - - case OBJECTS_LOCAL: - the_thread->Notepads[ notepad ] = note; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} - -/*PAGE - * - * rtems_task_wake_after - * - * This directive suspends the requesting thread for the given amount - * of ticks. - * - * Input parameters: - * ticks - number of ticks to wait - * - * Output parameters: - * RTEMS_SUCCESSFUL - always successful - */ - -rtems_status_code rtems_task_wake_after( - rtems_interval ticks -) -{ - if ( ticks == 0 ) { - _Thread_Yield_processor(); - _Thread_Dispatch(); - } else { - _Thread_Disable_dispatch(); - _Thread_Set_state( _Thread_Executing, STATES_DELAYING ); - _Watchdog_Initialize( - &_Thread_Executing->Timer, - _Thread_Delay_ended, - _Thread_Executing->Object.id, - NULL - ); - _Watchdog_Insert_ticks( &_Thread_Executing->Timer, - ticks, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - } - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_task_wake_when - * - * This directive blocks the requesting thread until the given date and - * time is reached. - * - * Input parameters: - * time_buffer - pointer to the time and date structure - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_task_wake_when( -rtems_time_of_day *time_buffer -) -{ - rtems_interval seconds; - rtems_status_code local_result; - - if ( !_TOD_Is_set() ) - return( RTEMS_NOT_DEFINED ); - - time_buffer->ticks = 0; - - local_result = _TOD_Validate( time_buffer ); - - if ( !rtems_is_status_successful( local_result ) ) - return( local_result ); - - seconds = _TOD_To_seconds( time_buffer ); - - if ( seconds <= _TOD_Seconds_since_epoch ) - return( RTEMS_INVALID_CLOCK ); - - _Thread_Disable_dispatch(); - _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME ); - _Watchdog_Initialize( - &_Thread_Executing->Timer, - _Thread_Delay_ended, - _Thread_Executing->Object.id, - NULL - ); - _Watchdog_Insert_seconds( &_Thread_Executing->Timer, - seconds - _TOD_Seconds_since_epoch, WATCHDOG_ACTIVATE_NOW ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} diff --git a/cpukit/sapi/include/rtems/config.h b/cpukit/sapi/include/rtems/config.h deleted file mode 100644 index b5080b6133..0000000000 --- a/cpukit/sapi/include/rtems/config.h +++ /dev/null @@ -1,321 +0,0 @@ -/* config.h - * - * This include file contains the table of user defined configuration - * parameters. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CONFIGURATION_h -#define __RTEMS_CONFIGURATION_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following records define the Initialization Tasks Table. - * Each entry contains the information required by RTEMS to - * create and start a user task automatically at executive - * initialization time. - */ - -typedef struct { - Objects_Name name; /* task name */ - unsigned32 stack_size; /* task stack size */ - rtems_task_priority initial_priority; /* task priority */ - rtems_attribute attribute_set; /* task attributes */ - rtems_task_entry entry_point; /* task entry point */ - rtems_mode mode_set; /* task initial mode */ - unsigned32 argument; /* task argument */ -} rtems_initialization_tasks_table; - -/* - * - * The following defines the types for: - * - * + major and minor numbers - * + the return type of a device driver entry - * + a pointer to a device driver entry - * + an entry in the the Device Driver Address Table. Each entry in this - * table corresponds to an application provided device driver and - * defines the entry points for that device driver. - */ - -typedef unsigned32 rtems_device_major_number; -typedef unsigned32 rtems_device_minor_number; - -typedef void rtems_device_driver; - -typedef rtems_device_driver ( *rtems_device_driver_entry )( - rtems_device_major_number, - rtems_device_minor_number, - void *, - Objects_Id, - unsigned32 * - ); - -typedef struct { - rtems_device_driver_entry initialization; /* initialization procedure */ - rtems_device_driver_entry open; /* open request procedure */ - rtems_device_driver_entry close; /* close request procedure */ - rtems_device_driver_entry read; /* read request procedure */ - rtems_device_driver_entry write; /* write request procedure */ - rtems_device_driver_entry control; /* special functions procedure */ -} rtems_driver_address_table; - -/* - * The following records defines the User Extension Table. - * This table defines the application dependent routines which - * are invoked at critical points in the life of each task and - * the system as a whole. - */ - -typedef void rtems_extension; - -typedef rtems_extension ( *rtems_task_create_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_delete_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_start_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_restart_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_switch_extension )( - rtems_tcb *, - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_begin_extension )( - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_task_exitted_extension )( - rtems_tcb * - ); - -typedef rtems_extension ( *rtems_fatal_extension )( - unsigned32 - ); - -typedef struct { - rtems_task_create_extension rtems_task_create; - rtems_task_start_extension rtems_task_start; - rtems_task_restart_extension rtems_task_restart; - rtems_task_delete_extension rtems_task_delete; - rtems_task_switch_extension task_switch; - rtems_task_begin_extension task_begin; - rtems_task_exitted_extension task_exitted; - rtems_fatal_extension fatal; -} rtems_extensions_table; - -/* - * The following records define the Multiprocessor Communications - * Interface (MPCI) Table. This table defines the user-provided - * MPCI which is a required part of a multiprocessor RTEMS system. - * - * For non-blocking local operations that become remote operations, - * we need a timeout. This is a per-driver timeout: default_timeout - */ - -/* XXX FORWARD REFERENCES */ - -typedef struct Configuration_Table rtems_configuration_table; -typedef struct Configuration_Table_MP rtems_multiprocessing_table; - -typedef void rtems_mpci_entry; - -typedef rtems_mpci_entry ( *rtems_mpci_initialization_entry )( - rtems_configuration_table *, - rtems_cpu_table *, - rtems_multiprocessing_table * - ); - -typedef rtems_mpci_entry ( *rtems_mpci_get_packet_entry )( - rtems_packet_prefix ** - ); - -typedef rtems_mpci_entry ( *rtems_mpci_return_packet_entry )( - rtems_packet_prefix * - ); - -typedef rtems_mpci_entry ( *rtems_mpci_send_entry )( - unsigned32, - rtems_packet_prefix * - ); - -typedef rtems_mpci_entry ( *rtems_mpci_receive_entry )( - rtems_packet_prefix ** - ); - -typedef struct { - unsigned32 default_timeout; /* in ticks */ - rtems_mpci_initialization_entry initialization; - rtems_mpci_get_packet_entry get_packet; - rtems_mpci_return_packet_entry return_packet; - rtems_mpci_send_entry send_packet; - rtems_mpci_receive_entry receive_packet; -} rtems_mpci_table; - -/* - * The following records define the Multiprocessor Configuration - * Table. This table defines the multiprocessor system - * characteristics which must be known by RTEMS in a multiprocessor - * system. - */ - -struct Configuration_Table_MP { - unsigned32 node; /* local node number */ - unsigned32 maximum_nodes; /* maximum # nodes in system */ - unsigned32 maximum_global_objects; /* maximum # global objects */ - unsigned32 maximum_proxies; /* maximum # proxies */ - rtems_mpci_table *User_mpci_table; - /* pointer to MPCI table */ -}; - -/* - * The following records define the Configuration Table. The - * information contained in this table is required in all - * RTEMS systems, whether single or multiprocessor. This - * table primarily defines the following: - * - * + location and size of the RTEMS Workspace - * + required number of each object type - * + microseconds per clock tick - * + clock ticks per task timeslice - */ - -struct Configuration_Table { - void *work_space_start; - unsigned32 work_space_size; - unsigned32 maximum_tasks; - unsigned32 maximum_timers; - unsigned32 maximum_semaphores; - unsigned32 maximum_message_queues; - unsigned32 maximum_messages; - unsigned32 maximum_partitions; - unsigned32 maximum_regions; - unsigned32 maximum_ports; - unsigned32 maximum_periods; - unsigned32 maximum_extensions; - unsigned32 microseconds_per_tick; - unsigned32 ticks_per_timeslice; - unsigned32 number_of_initialization_tasks; - rtems_initialization_tasks_table *User_initialization_tasks_table; - unsigned32 number_of_device_drivers; - rtems_driver_address_table *Device_driver_table; - rtems_extensions_table *User_extension_table; - rtems_multiprocessing_table *User_multiprocessing_table; -}; - -/* - * The following defines the default Multiprocessing Configuration - * Table. This table is used in a single processor system. - */ - -extern const rtems_multiprocessing_table - _Configuration_Default_multiprocessing_table; - -/* - * The following define the internal pointers to the user's - * configuration information. - */ - -EXTERN rtems_configuration_table *_Configuration_Table; -EXTERN rtems_multiprocessing_table *_Configuration_MP_table; -EXTERN rtems_mpci_table *_Configuration_MPCI_table; - -/* - * - * _Configuration_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _Configuration_Handler_initialization( - rtems_configuration_table *configuration_table, - rtems_multiprocessing_table *multiprocessing_table, - rtems_mpci_table *users_mpci_table -); - -/* - * _Configuration_Is_multiprocessing - * - * DESCRIPTION: - * - * This function determines if a multiprocessing application has been - * configured, if so, TRUE is returned, otherwise FALSE is returned. - */ - -STATIC INLINE boolean _Configuration_Is_multiprocessing( void ); - -/* - * _Configuration_Is_null_driver_address_table_pointer - * - * DESCRIPTION: - * - * This function returns TRUE if the_table is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Configuration_Is_null_driver_address_table_pointer( - rtems_driver_address_table *the_table -); - -/* - * _Configuration_Is_null_extension_table_pointer - * - * DESCRIPTION: - * - * This function returns TRUE if the_table is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Configuration_Is_null_extension_table_pointer( - rtems_extensions_table *the_table -); - -/* - * _Configuration_Is_null_initialization_tasks_table_pointer - * - * DESCRIPTION: - * - * This function returns TRUE if the_table is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean - _Configuration_Is_null_initialization_tasks_table_pointer( - rtems_initialization_tasks_table *the_table -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/include/rtems/extension.h b/cpukit/sapi/include/rtems/extension.h deleted file mode 100644 index 1e20fe6470..0000000000 --- a/cpukit/sapi/include/rtems/extension.h +++ /dev/null @@ -1,169 +0,0 @@ -/* extension.h - * - * This include file contains all the constants, structures, and - * prototypes associated with the User Extension Manager. This manager - * provides a mechanism for manipulating sets of user-defined extensions. - * - * Directives provided are: - * - * + create user extension set - * + get ID of user extension set - * + delete user extension set - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EXTENSION_MANAGER_h -#define __RTEMS_EXTENSION_MANAGER_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following defines the information control block used to manage - * this class of objects. - */ - -EXTERN Objects_Information _Extension_Information; - -/* - * The following records define the control block used to manage - * each extension. - */ - -typedef struct { - Objects_Control Object; - User_extensions_Control Extension; -} Extension_Control; - -/* - * _Extension_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Extension_Manager_initialization( - unsigned32 maximum_extensions -); - -/* - * rtems_extension_create - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_create directive. The - * extension will have the name name. The entry points of the - * routines which constitute this extension set are in EXTENSION_TABLE. - * It returns the id of the created extension in ID. - */ - -rtems_status_code rtems_extension_create( - Objects_Name name, - rtems_extensions_table *extension_table, - Objects_Id *id -); - -/* - * rtems_extension_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_ident directive. - * This directive returns the extension ID associated with name. - * If more than one extension is named name, then the extension - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_extension_ident( - Objects_Name name, - Objects_Id *id -); - -/* - * rtems_extension_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_delete directive. The - * extension indicated by ID is deleted. - */ - -rtems_status_code rtems_extension_delete( - Objects_Id id -); - -/* - * _Extension_Allocate - * - * DESCRIPTION: - * - * This function allocates a extension control block from - * the inactive chain of free extension control blocks. - */ - -STATIC INLINE Extension_Control *_Extension_Allocate( void ); - -/* - * _Extension_Free - * - * DESCRIPTION: - * - * This routine frees a extension control block to the - * inactive chain of free extension control blocks. - */ - -STATIC INLINE void _Extension_Free ( - Extension_Control *the_extension -); - -/* - * _Extension_Get - * - * DESCRIPTION: - * - * This function maps extension IDs to extension control blocks. - * If ID corresponds to a local extension, then it returns - * the extension control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the returned value is undefined. - */ - -STATIC INLINE Extension_Control *_Extension_Get ( - Objects_Id id, - Objects_Locations *location -); - -/* - * _Extension_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_extension is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Extension_Is_null( - Extension_Control *the_extension -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/include/rtems/fatal.h b/cpukit/sapi/include/rtems/fatal.h deleted file mode 100644 index f61b4183f3..0000000000 --- a/cpukit/sapi/include/rtems/fatal.h +++ /dev/null @@ -1,49 +0,0 @@ -/* fatal.h - * - * This include file contains constants and prototypes related - * to the Fatal Error Manager. This manager processes all fatal or - * irrecoverable errors. - * - * This manager provides directives to: - * - * + announce a fatal error has occurred - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_FATAL_h -#define __RTEMS_FATAL_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * rtems_fatal_error_occurred - * - * DESCRIPTION: - * - * This is the routine which implements the rtems_fatal_error_occurred - * directive. It is invoked when the application or RTEMS - * determines that a fatal error has occurred. - */ - -void volatile rtems_fatal_error_occurred( - unsigned32 the_error -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/include/rtems/init.h b/cpukit/sapi/include/rtems/init.h deleted file mode 100644 index a5ed1688b7..0000000000 --- a/cpukit/sapi/include/rtems/init.h +++ /dev/null @@ -1,101 +0,0 @@ -/* init.h - * - * This include file contains all the constants and structures associated - * with the Initialization Manager. This manager is responsible for - * initializing RTEMS, creating and starting all configured initialization - * tasks, invoking the initialization routine for each user-supplied device - * driver, and initializing the optional multiprocessor layer. - * - * This manager provides directives to: - * - * + initialize the RTEMS executive - * + shutdown the RTEMS executive - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_INIT_h -#define __RTEMS_INIT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * rtems_initialize_executive - * - * DESCRIPTION: - * - * This routine implements the rtems_initialize_executive directive. This - * directive is invoked at system startup to initialize the RTEMS - * multitasking environment. - */ - -void rtems_initialize_executive( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -); - -/* - * rtems_initialize_executive_early - * - * DESCRIPTION: - * - * This routine implements the early portion of rtems_initialize_executive - * directive up to the pretasking hook. This directive is invoked at system - * startup to initialize the RTEMS multitasking environment. - */ - -rtems_interrupt_level rtems_initialize_executive_early( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -); - -/* - * rtems_initialize_executive_late - * - * DESCRIPTION: - * - * This routine implements the early portion of rtems_initialize_executive - * directive up to the pretasking hook. This directive is invoked at system - * startup to initialize the RTEMS multitasking environment. - */ - -void rtems_initialize_executive_late( - rtems_interrupt_level bsp_level -); - -/* - * rtems_shutdown_executive - * - * DESCRIPTION: - * - * This routine implements the rtems_shutdown_executive directive. The - * invocation of this directive results in the RTEMS environment being - * shutdown and multitasking halted. From the application's perspective, - * invocation of this directive results in the rtems_initialize_executive - * directive exitting to the startup code which invoked it. - */ - -void rtems_shutdown_executive( - unsigned32 result -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/include/rtems/io.h b/cpukit/sapi/include/rtems/io.h deleted file mode 100644 index 6824377170..0000000000 --- a/cpukit/sapi/include/rtems/io.h +++ /dev/null @@ -1,204 +0,0 @@ -/* io.h - * - * This include file contains all the constants and structures associated - * with the Input/Output Manager. This manager provides a well defined - * mechanism for accessing device drivers and a structured methodology for - * organizing device drivers. - * - * Directives provided are: - * - * + initialize a device driver - * + open a device driver - * + close a device driver - * + read from a device driver - * + write to a device driver - * + special device services - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_IO_h -#define __RTEMS_IO_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the set of IO operations which are - * recognized by _IO_Handler and can be supported by a RTEMS - * device driver. - */ - -typedef enum { - IO_INITIALIZE_OPERATION = 0, - IO_OPEN_OPERATION = 1, - IO_CLOSE_OPERATION = 2, - IO_READ_OPERATION = 3, - IO_WRITE_OPERATION = 4, - IO_CONTROL_OPERATION = 5 -} IO_operations; - -/* - * The following declare the data required to manage the Device Driver - * Address Table. - */ - -EXTERN unsigned32 _IO_Number_of_drivers; -EXTERN rtems_driver_address_table *_IO_Driver_address_table; - -/* - * _IO_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -STATIC INLINE void _IO_Manager_initialization( - rtems_driver_address_table *driver_table, - unsigned32 number_of_drivers -); - -/* - * rtems_io_initialize - * - * DESCRIPTION: - * - * This routine implements the rtems_io_initialize directive. It is invoked - * to initialize a device driver or an individual device. - */ - -rtems_status_code rtems_io_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_open - * - * DESCRIPTION: - * - * This routine implements the rtems_io_open directive. It is invoked - * to open a device. - */ - -rtems_status_code rtems_io_open( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_close - * - * DESCRIPTION: - * - * This routine implements the rtems_io_close directive. It is invoked - * to close a device. - */ - -rtems_status_code rtems_io_close( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_read - * - * DESCRIPTION: - * - * This routine implements the rtems_io_read directive. It is invoked - * to read from a device. - */ - -rtems_status_code rtems_io_read( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_write - * - * DESCRIPTION: - * - * This routine implements the rtems_io_write directive. It is invoked - * to write to a device. - */ - -rtems_status_code rtems_io_write( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * rtems_io_control - * - * DESCRIPTION: - * - * This routine implements the rtems_io_control directive. It is invoked - * to perform a device specific operation on a device. - */ - -rtems_status_code rtems_io_control( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -/* - * _IO_Initialize_all_drivers - * - * DESCRIPTION: - * - * This routine initializes all of the device drivers configured - * in the Device Driver Address Table. - */ - -void _IO_Initialize_all_drivers( void ); - -/* - * _IO_Handler_routine - * - * DESCRIPTION: - * - * This routine provides the common foundation for all of the IO - * Manager's directives. - */ - -rtems_status_code _IO_Handler_routine( - IO_operations operation, - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/include/rtems/mptables.h b/cpukit/sapi/include/rtems/mptables.h deleted file mode 100644 index b8e4c6de43..0000000000 --- a/cpukit/sapi/include/rtems/mptables.h +++ /dev/null @@ -1,29 +0,0 @@ -/* mptables.h - * - * This include file contains the executive's pre-initialized tables - * used in a multiprocessor configuration. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MPTABLES_h -#define __RTEMS_MPTABLES_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/inline/rtems/extension.inl b/cpukit/sapi/inline/rtems/extension.inl deleted file mode 100644 index 27941923b0..0000000000 --- a/cpukit/sapi/inline/rtems/extension.inl +++ /dev/null @@ -1,73 +0,0 @@ -/* extension.inl - * - * This file contains the static inline implementation of the inlined routines - * from the Extension Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __EXTENSION_MANAGER_inl -#define __EXTENSION_MANAGER_inl - -/*PAGE - * - * _Extension_Allocate - * - */ - -STATIC INLINE Extension_Control *_Extension_Allocate( void ) -{ - return (Extension_Control *) _Objects_Allocate( &_Extension_Information ); -} - -/*PAGE - * - * _Extension_Free - * - */ - -STATIC INLINE void _Extension_Free ( - Extension_Control *the_extension -) -{ - _Objects_Free( &_Extension_Information, &the_extension->Object ); -} - -/*PAGE - * - * _Extension_Get - * - */ - -STATIC INLINE Extension_Control *_Extension_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Extension_Control *) - _Objects_Get( &_Extension_Information, id, location ); -} - -/*PAGE - * - * _Extension_Is_null - * - */ - -STATIC INLINE boolean _Extension_Is_null ( - Extension_Control *the_extension -) -{ - return ( the_extension == NULL ); -} - -#endif -/* end of include file */ diff --git a/cpukit/sapi/macros/rtems/extension.inl b/cpukit/sapi/macros/rtems/extension.inl deleted file mode 100644 index 96fb9d1b3e..0000000000 --- a/cpukit/sapi/macros/rtems/extension.inl +++ /dev/null @@ -1,58 +0,0 @@ -/* extension.inl - * - * This file contains the macro implementation of the inlined routines - * from the Extension Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __EXTENSION_inl -#define __EXTENSION_inl - -/*PAGE - * - * _Extension_Allocate - * - */ - -#define _Extension_Allocate() \ - (Extension_Control *) _Objects_Allocate( &_Extension_Information ) - -/*PAGE - * - * _Extension_Free - * - */ - -#define _Extension_Free( _the_extension ) \ - _Objects_Free( &_Extension_Information, &(_the_extension)->Object ) - -/*PAGE - * - * _Extension_Get - * - */ - -#define _Extension_Get( _id, _location ) \ - (Extension_Control *) \ - _Objects_Get( &_Extension_Information, (_id), (_location) ) - -/*PAGE - * - * _Extension_Is_null - * - */ - -#define _Extension_Is_null( _the_extension ) \ - ( (_the_extension) == NULL ) - -#endif -/* end of include file */ diff --git a/cpukit/sapi/src/debug.c b/cpukit/sapi/src/debug.c deleted file mode 100644 index 5c42fa92f6..0000000000 --- a/cpukit/sapi/src/debug.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Debug Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include - -/*PAGE - * - * _Debug_Manager_initialization - */ - -void _Debug_Manager_initialization( void ) -{ - rtems_debug_disable( RTEMS_DEBUG_ALL_MASK ); -} - -/*PAGE - * - * rtems_debug_enable - */ - -void rtems_debug_enable ( - rtems_debug_control to_be_enabled -) -{ - _Debug_Level |= to_be_enabled; -} - -/*PAGE - * - * rtems_debug_disable - */ - -void rtems_debug_disable ( - rtems_debug_control to_be_disabled -) -{ - _Debug_Level &= ~to_be_disabled; -} - -/*PAGE - * - * _Debug_Is_enabled - */ - -boolean _Debug_Is_enabled( - rtems_debug_control level -) -{ - return (_Debug_Level & level); -} diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c deleted file mode 100644 index cc45a11c94..0000000000 --- a/cpukit/sapi/src/exinit.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Initialization Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -/* - * INIT is defined so all of the data will be included in this - * file. - */ - -#define INIT - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -/*PAGE - * - * rtems_initialize_executive - * - * This directive initializes all the kernels data structures - * to the states necessary for the kernel to begin execution. All - * include files that contain global variable definitions should be - * included in this file. The system threads and initialization threads - * are created and started by this routine. This routine then - * initiates multithreading. - * - * Input parameters: - * configuration_table - pointer to the user's configuration table - * cpu_table - pointer to the user's CPU configuration table - * - * Output parameters: NONE - */ - -struct months { - unsigned32 months[2][13]; -}; - -void rtems_initialize_executive( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -) -{ - rtems_interrupt_level bsp_level; - - bsp_level = rtems_initialize_executive_early(configuration_table, cpu_table); - rtems_initialize_executive_late( bsp_level ); -} - -rtems_interrupt_level rtems_initialize_executive_early( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -) -{ - rtems_interrupt_level bsp_level; - rtems_multiprocessing_table *multiprocessing_table; - - /* - * Dispatching and interrupts are disabled until the end of the - * initialization sequence. This prevents an inadvertent context - * switch before the executive is initialized. - */ - - _ISR_Disable( bsp_level ); - - _System_state_Set( SYSTEM_STATE_BEFORE_INITIALIZATION ); - - _CPU_Initialize( cpu_table, _Thread_Dispatch ); - - multiprocessing_table = configuration_table->User_multiprocessing_table; - if ( multiprocessing_table == NULL ) - multiprocessing_table = - (void *) &_Configuration_Default_multiprocessing_table; - - _Configuration_Handler_initialization( - configuration_table, - multiprocessing_table, - multiprocessing_table->User_mpci_table - ); - - _Attributes_Handler_initialization(); - - _Thread_Dispatch_initialization(); - - _User_extensions_Handler_initialization( - configuration_table->User_extension_table - ); - - _Workspace_Handler_initialization( - (void *)configuration_table->work_space_start, - configuration_table->work_space_size - ); - - _ISR_Handler_initialization(); - - _Objects_Handler_initialization( - multiprocessing_table->node, - multiprocessing_table->maximum_global_objects - ); - - _Priority_Handler_initialization(); - - _Watchdog_Handler_initialization(); - - _TOD_Handler_initialization( configuration_table->microseconds_per_tick ); - - _Thread_Handler_initialization( - configuration_table->maximum_tasks, - configuration_table->ticks_per_timeslice, - multiprocessing_table->maximum_proxies - ); - - _MPCI_Handler_initialization(); - -/* MANAGERS */ - - _Interrupt_Manager_initialization(); - - _Multiprocessing_Manager_initialization(); - - _Timer_Manager_initialization( configuration_table->maximum_timers ); - - _Extension_Manager_initialization( configuration_table->maximum_extensions ); - - _IO_Manager_initialization( - configuration_table->Device_driver_table, - configuration_table->number_of_device_drivers - ); - - _Event_Manager_initialization(); - - _Message_queue_Manager_initialization( - configuration_table->maximum_message_queues, - configuration_table->maximum_messages - ); - - _Semaphore_Manager_initialization( - configuration_table->maximum_semaphores - ); - - _Partition_Manager_initialization( - configuration_table->maximum_partitions - ); - - _Region_Manager_initialization( configuration_table->maximum_regions ); - - _Dual_ported_memory_Manager_initialization( - configuration_table->maximum_ports - ); - - _Rate_monotonic_Manager_initialization( - configuration_table->maximum_periods - ); - - _Internal_threads_Initialization(); - - if ( cpu_table->pretasking_hook ) - (*cpu_table->pretasking_hook)(); - - _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING ); - - return bsp_level; -} - -void rtems_initialize_executive_late( - rtems_interrupt_level bsp_level -) -{ - - _System_state_Set( SYSTEM_STATE_BEGIN_MULTITASKING ); - - _Thread_Start_multitasking( - _Internal_threads_System_initialization_thread, - _Internal_threads_Idle_thread - ); - - /* - * Restore the interrupt level to what the BSP had. Technically, - * this is unnecessary since the BSP should have all interrupts - * disabled when rtems_initialize_executive is invoked. But this keeps - * the ISR Disable/Enable calls paired. - */ - - _ISR_Enable( bsp_level ); -} - -/*PAGE - * - * rtems_shutdown_executive - * - * This kernel routine shutdowns the executive. It halts multitasking - * and returns control to the application execution "thread" which - * initialially invoked the rtems_initialize_executive directive. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void rtems_shutdown_executive( - unsigned32 result -) -{ - _Thread_Stop_multitasking(); -} diff --git a/cpukit/sapi/src/extension.c b/cpukit/sapi/src/extension.c deleted file mode 100644 index 10c974ef8e..0000000000 --- a/cpukit/sapi/src/extension.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Extension Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/*PAGE - * - * _Extension_Manager_initialization - * - * This routine initializes all extension manager related data structures. - * - * Input parameters: - * maximum_extensions - number of extensions to initialize - * - * Output parameters: NONE - */ - -void _Extension_Manager_initialization( - unsigned32 maximum_extensions -) -{ - _Objects_Initialize_information( - &_Extension_Information, - FALSE, - maximum_extensions, - sizeof( Extension_Control ) - ); -} - -/*PAGE - * - * rtems_extension_create - * - * This directive creates a extension and performs some initialization. - * - * Input parameters: - * name - extension name - * extension_table - pointer to extension set information - * id - pointer to extension id - * - * Output parameters: - * id - extension id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_extension_create( - Objects_Name name, - rtems_extensions_table *extension_table, - Objects_Id *id -) -{ - Extension_Control *the_extension; - - if ( !_Objects_Is_name_valid( name ) ) - return ( RTEMS_INVALID_NAME ); - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_extension = _Extension_Allocate(); - - if ( !the_extension ) { - _Thread_Enable_dispatch(); - return( RTEMS_TOO_MANY ); - } - - _User_extensions_Add_set( &the_extension->Extension, extension_table ); - - _Objects_Open( &_Extension_Information, &the_extension->Object, name ); - - *id = the_extension->Object.id; - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); -} - -/*PAGE - * - * rtems_extension_ident - * - * This directive returns the system ID associated with - * the extension name. - * - * Input parameters: - * name - user defined message queue name - * id - pointer to extension id - * - * Output parameters: - * *id - message queue id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_extension_ident( - Objects_Name name, - Objects_Id *id -) -{ - return _Objects_Name_to_id( - &_Extension_Information, - name, - RTEMS_SEARCH_LOCAL_NODE, - id - ); -} - -/*PAGE - * - * rtems_extension_delete - * - * This directive allows a thread to delete a extension. - * - * Input parameters: - * id - extension id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_extension_delete( - Objects_Id id -) -{ - Extension_Control *the_extension; - Objects_Locations location; - - the_extension = _Extension_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: /* should never return this */ - return( RTEMS_INVALID_ID ); - case OBJECTS_LOCAL: - _User_extensions_Remove_set( &the_extension->Extension ); - _Objects_Close( &_Extension_Information, &the_extension->Object ); - _Extension_Free( the_extension ); - _Thread_Enable_dispatch(); - return( RTEMS_SUCCESSFUL ); - } - - return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */ -} diff --git a/cpukit/sapi/src/fatal.c b/cpukit/sapi/src/fatal.c deleted file mode 100644 index 2ecc73ff3f..0000000000 --- a/cpukit/sapi/src/fatal.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Fatal Error Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/*PAGE - * - * rtems_fatal_error_occurred - * - * This directive 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_error - fatal error status code - * - * Output parameters: - * the_error - on stack - * status register - on stack - * - * NOTE: The the_error is not necessarily a directive status code. - */ - -void volatile rtems_fatal_error_occurred( - unsigned32 the_error -) -{ - - _User_extensions_Fatal( the_error ); - - _System_state_Set( SYSTEM_STATE_FAILED ); - - _CPU_Fatal_halt( the_error ); - -/* will not return from this routine */ -} diff --git a/cpukit/sapi/src/io.c b/cpukit/sapi/src/io.c deleted file mode 100644 index cf78bb9f71..0000000000 --- a/cpukit/sapi/src/io.c +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Input/Output Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/*PAGE - * - * _IO_Initialize_all_drivers - * - * This routine initializes all device drivers - * - * Input Paramters: NONE - * - * Output Parameters: NONE - */ - -void _IO_Initialize_all_drivers( void ) -{ - rtems_device_major_number major; - unsigned32 ignored; - - for ( major=0 ; major < _IO_Number_of_drivers ; major ++ ) - (void) rtems_io_initialize( major, 0, _Configuration_Table, &ignored ); -} - -/*PAGE - * - * rtems_io_initialize - * - * This routine is the initialization directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_INITIALIZE_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * rtems_io_open - * - * This routine is the open directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_open( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_OPEN_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * rtems_io_close - * - * This routine is the close directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_close( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_CLOSE_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * rtems_io_read - * - * This routine is the read directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_read( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_READ_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * rtems_io_write - * - * This routine is the write directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_write( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_WRITE_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * rtems_io_control - * - * This routine is the control directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code rtems_io_control( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - return _IO_Handler_routine( - IO_CONTROL_OPERATION, - major, - minor, - argument, - return_value - ); -} - -/*PAGE - * - * _IO_Handler_routine - * - * This routine implements all IO manager directives. - * - * Input Paramters: - * operation - I/O operation to be performed - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * return_value - pointer to driver's return value - * - * Output Parameters: - * returns - return code - * *return_value - driver's return code - */ - -rtems_status_code _IO_Handler_routine( - IO_operations operation, - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument, - unsigned32 *return_value -) -{ - rtems_device_driver_entry io_callout; - - /* - * NOTE: There is no range checking as in Ada because: - * + arrays in Ada are not always zero based. - * + with zero based arrays, a comparison of an unsigned - * number being less than zero would be necessary to - * check it as a range. This would cause a warning for - * checking an unsigned number for being negative. - */ - - if ( major >= _IO_Number_of_drivers ) - return ( RTEMS_INVALID_NUMBER ); - - switch ( operation ) { - case IO_INITIALIZE_OPERATION: - io_callout = _IO_Driver_address_table[ major ].initialization; - break; - case IO_OPEN_OPERATION: - io_callout = _IO_Driver_address_table[ major ].open; - break; - case IO_CLOSE_OPERATION: - io_callout = _IO_Driver_address_table[ major ].close; - break; - case IO_READ_OPERATION: - io_callout = _IO_Driver_address_table[ major ].read; - break; - case IO_WRITE_OPERATION: - io_callout = _IO_Driver_address_table[ major ].write; - break; - case IO_CONTROL_OPERATION: - io_callout = _IO_Driver_address_table[ major ].control; - break; - default: /* unreached -- only to remove warnings */ - io_callout = NULL; - break; - } - - if ( io_callout != NULL ) - (*io_callout)( - major, - minor, - argument, - _Thread_Executing->Object.id, - return_value - ); - else - *return_value = 0; - - return( RTEMS_SUCCESSFUL ); -} diff --git a/cpukit/score/cpu/hppa1.1/cpu.c b/cpukit/score/cpu/hppa1.1/cpu.c deleted file mode 100644 index b69a172b4e..0000000000 --- a/cpukit/score/cpu/hppa1.1/cpu.c +++ /dev/null @@ -1,313 +0,0 @@ -/* - * HP PA-RISC Dependent Source - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -rtems_status_code hppa_external_interrupt_initialize(void); -void hppa_external_interrupt_enable(unsigned32); -void hppa_external_interrupt_disable(unsigned32); -void hppa_external_interrupt(unsigned32, CPU_Interrupt_frame *); - -/* - * Our interrupt handlers take a 2nd argument: - * a pointer to a CPU_Interrupt_frame - * So we use our own prototype instead of rtems_isr_entry - */ - -typedef rtems_isr ( *hppa_rtems_isr_entry )( - rtems_vector_number, - CPU_Interrupt_frame * - ); - - -/* - * who are we? cpu number - * Not used by executive proper, just kept (or not) as a convenience - * for libcpu and libbsp stuff that wants it. - * - * Defaults to 0. If the BSP doesn't like it, it can change it. - */ - -int cpu_number; /* from 0; cpu number in a multi cpu system */ - - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - address of disptaching routine - * - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - register unsigned8 *fp_context; - unsigned32 iva; - unsigned32 iva_table; - int i; - - extern void IVA_Table(void); - - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - /* - * XXX; need to setup fpsr smarter perhaps - */ - - fp_context = (unsigned8*) &_CPU_Null_fp_context; - for (i=0 ; i= HPPA_INTERRUPT_EXTERNAL_BASE) - { - unsigned32 external_vector; - - external_vector = vector - HPPA_INTERRUPT_EXTERNAL_BASE; - if (new_handler) - hppa_external_interrupt_enable(external_vector); - else - /* XXX this can never happen due to _ISR_Is_valid_user_handler */ - hppa_external_interrupt_disable(external_vector); - } -} - - -/* - * Support for external and spurious interrupts on HPPA - * - * TODO: - * delete interrupt.c etc. - * Count interrupts - * make sure interrupts disabled properly - * should handler check again for more interrupts before exit? - * How to enable interrupts from an interrupt handler? - * Make sure there is an entry for everything in ISR_Vector_Table - */ - -#define DISMISS(mask) set_eirr(mask) -#define DISABLE(mask) set_eiem(get_eiem() & ~(mask)) -#define ENABLE(mask) set_eiem(get_eiem() | (mask)) -#define VECTOR_TO_MASK(v) (1 << (31 - (v))) - -/* - * Init the external interrupt scheme - * called by bsp_start() - */ - -rtems_status_code -hppa_external_interrupt_initialize(void) -{ - rtems_isr_entry ignore; - - /* mark them all unused */ - - DISABLE(~0); - DISMISS(~0); - - /* install the external interrupt handler */ - rtems_interrupt_catch((rtems_isr_entry) hppa_external_interrupt, - HPPA_INTERRUPT_EXTERNAL_INTERRUPT, &ignore) ; - - return RTEMS_SUCCESSFUL; -} - -/* - * Enable a specific external interrupt - */ - -void -hppa_external_interrupt_enable(unsigned32 v) -{ - unsigned32 isrlevel; - - _CPU_ISR_Disable(isrlevel); - ENABLE(VECTOR_TO_MASK(v)); - _CPU_ISR_Enable(isrlevel); -} - -/* - * Does not clear or otherwise affect any pending requests - */ - -void -hppa_external_interrupt_disable(unsigned32 v) -{ - unsigned32 isrlevel; - - _CPU_ISR_Disable(isrlevel); - DISABLE(VECTOR_TO_MASK(v)); - _CPU_ISR_Enable(isrlevel); -} - -void -hppa_external_interrupt_spurious_handler(unsigned32 vector, - CPU_Interrupt_frame *iframe) -{ -/* XXX should not be printing :) - printf("spurious external interrupt: %d at pc 0x%x; disabling\n", - vector, iframe->Interrupt.pcoqfront); -*/ - DISMISS(VECTOR_TO_MASK(vector)); - DISABLE(VECTOR_TO_MASK(vector)); -} - -void -hppa_external_interrupt_report_spurious(unsigned32 spurious, - CPU_Interrupt_frame *iframe) -{ - int v; - for (v=0; v < HPPA_EXTERNAL_INTERRUPTS; v++) - if (VECTOR_TO_MASK(v) & spurious) - hppa_external_interrupt_spurious_handler(v, iframe); - DISMISS(spurious); -} - - -/* - * External interrupt handler. - * This is installed as cpu interrupt handler for - * HPPA_INTERRUPT_EXTERNAL_INTERRUPT. It vectors out to - * specific external interrupt handlers. - */ - -void -hppa_external_interrupt(unsigned32 vector, - CPU_Interrupt_frame *iframe) -{ - unsigned32 mask; - unsigned32 *vp, *max_vp; - unsigned32 external_vector; - unsigned32 global_vector; - hppa_rtems_isr_entry handler; - - max_vp = &_CPU_Table.external_interrupt[_CPU_Table.external_interrupts]; - while ( (mask = (get_eirr() & get_eiem())) ) - { - for (vp = _CPU_Table.external_interrupt; (vp < max_vp) && mask; vp++) - { - unsigned32 m; - - external_vector = *vp; - global_vector = external_vector + HPPA_INTERRUPT_EXTERNAL_BASE; - m = VECTOR_TO_MASK(external_vector); - handler = (hppa_rtems_isr_entry) _ISR_Vector_table[global_vector]; - if ((m & mask) && handler) - { - DISMISS(m); - mask &= ~m; - (*handler)(global_vector, iframe); - } - } - - if (mask != 0) { - if ( _CPU_Table.spurious_handler ) - (*((hppa_rtems_isr_entry) _CPU_Table.spurious_handler))( - mask, - iframe - ); - else - hppa_external_interrupt_report_spurious(mask, iframe); - } - } -} - -/* - * Halt the system. - * Called by the _CPU_Fatal_halt macro - * - * XXX - * Later on, this will allow us to return to the prom. - * For now, we just ignore 'type_of_halt' - */ - -void -hppa_cpu_halt(unsigned32 type_of_halt, - unsigned32 the_error) -{ - unsigned32 isrlevel; - - _CPU_ISR_Disable(isrlevel); - - asm volatile( "copy %0,%%r1" : : "r" (the_error) ); - HPPA_ASM_BREAK(1, 0); -} diff --git a/cpukit/score/cpu/i386/asm.h b/cpukit/score/cpu/i386/asm.h deleted file mode 100644 index f123defcd9..0000000000 --- a/cpukit/score/cpu/i386/asm.h +++ /dev/null @@ -1,131 +0,0 @@ -/* asm.h - * - * 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. - * On-Line Applications Research Corporation (OAR). - * - * $Id$ - */ - -#ifndef __i386_ASM_h -#define __i386_ASM_h - -/* - * Indicate we are in an assembly file and get the basic CPU definitions. - */ - -#define ASM -#include - -/* - * 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. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -/* - * Looks like there is a bug in gcc 2.6.2 where this is not - * defined correctly when configured as i386-coff and - * i386-aout. - */ - -#undef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ % - -/* -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif -*/ - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* 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 eax REG (eax) -#define ebx REG (ebx) -#define ecx REG (ecx) -#define edx REG (edx) -#define esi REG (esi) -#define edi REG (edi) -#define esp REG (esp) -#define ebp REG (ebp) - -#define ax REG (ax) -#define bx REG (bx) -#define cx REG (cx) -#define dx REG (dx) -#define si REG (si) -#define di REG (di) -#define sp REG (sp) -#define bp REG (bp) - -#define ah REG (ah) -#define al REG (al) - -#define cs REG (cs) -#define ds REG (ds) -#define es REG (es) -#define fs REG (fs) -#define gs REG (gs) -#define ss REG (ss) - -/* - * Define macros to handle section beginning and ends. - */ - - -#define BEGIN_CODE_DCL .text -#define END_CODE_DCL -#define BEGIN_DATA_DCL .data -#define END_DATA_DCL -#define BEGIN_CODE .text -#define END_CODE -#define BEGIN_DATA -#define END_DATA -#define BEGIN_BSS -#define END_BSS -#define END - -/* - * Following must be tailor 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) -#define EXTERN(sym) .globl SYM (sym) - -#endif -/* end of include file */ - - diff --git a/cpukit/score/cpu/i386/cpu.c b/cpukit/score/cpu/i386/cpu.c deleted file mode 100644 index 05a836f7e3..0000000000 --- a/cpukit/score/cpu/i386/cpu.c +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Intel i386 Dependent Source - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - address of disptaching routine - */ - - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - register unsigned16 fp_status asm ("ax"); - register unsigned8 *fp_context; - - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - _CPU_Table = *cpu_table; - - /* - * The following code saves a NULL i387 context which is given - * to each task at start and restart time. The following code - * is based upon that provided in the i386 Programmer's - * Manual and should work on any coprocessor greater than - * the i80287. - * - * NOTE: The NO RTEMS_WAIT form of the coprocessor instructions - * MUST be used in case there is not a coprocessor - * to wait for. - */ - - fp_status = 0xa5a5; - asm volatile( "fninit" ); - asm volatile( "fnstsw %0" : "=a" (fp_status) : "0" (fp_status) ); - - if ( fp_status == 0 ) { - - fp_context = _CPU_Null_fp_context; - - asm volatile( "fsave (%0)" : "=r" (fp_context) - : "0" (fp_context) - ); - } -} - -/* _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 - * - */ - -void _ISR_Handler_0(), _ISR_Handler_1(); - -#define PER_ISR_ENTRY \ - (((unsigned32) _ISR_Handler_1 - (unsigned32) _ISR_Handler_0)) - -#define _Interrupt_Handler_entry( _vector ) \ - (((unsigned32)_ISR_Handler_0) + ((_vector) * PER_ISR_ENTRY)) - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -) -{ - i386_IDT_slot idt; - unsigned32 unique_handler; - - /* calculate the unique entry point for this vector */ - unique_handler = _Interrupt_Handler_entry( vector ); - - /* build the IDT entry */ - idt.offset_0_15 = ((unsigned32) unique_handler) & 0xffff; - idt.segment_selector = i386_get_cs(); - idt.reserved = 0x00; - idt.p_dpl = 0x8e; /* present, ISR */ - idt.offset_16_31 = ((unsigned32) unique_handler) >> 16; - - /* install the IDT entry */ - i386_Install_idt( - (unsigned32) &idt, - _CPU_Table.interrupt_table_segment, - (unsigned32) _CPU_Table.interrupt_table_offset + (8 * vector) - ); - - /* "portable" part */ - *old_handler = _ISR_Vector_table[ vector ]; - _ISR_Vector_table[ vector ] = new_handler; -} diff --git a/cpukit/score/cpu/i386/rtems/asm.h b/cpukit/score/cpu/i386/rtems/asm.h deleted file mode 100644 index f123defcd9..0000000000 --- a/cpukit/score/cpu/i386/rtems/asm.h +++ /dev/null @@ -1,131 +0,0 @@ -/* asm.h - * - * 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. - * On-Line Applications Research Corporation (OAR). - * - * $Id$ - */ - -#ifndef __i386_ASM_h -#define __i386_ASM_h - -/* - * Indicate we are in an assembly file and get the basic CPU definitions. - */ - -#define ASM -#include - -/* - * 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. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -/* - * Looks like there is a bug in gcc 2.6.2 where this is not - * defined correctly when configured as i386-coff and - * i386-aout. - */ - -#undef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ % - -/* -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif -*/ - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* 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 eax REG (eax) -#define ebx REG (ebx) -#define ecx REG (ecx) -#define edx REG (edx) -#define esi REG (esi) -#define edi REG (edi) -#define esp REG (esp) -#define ebp REG (ebp) - -#define ax REG (ax) -#define bx REG (bx) -#define cx REG (cx) -#define dx REG (dx) -#define si REG (si) -#define di REG (di) -#define sp REG (sp) -#define bp REG (bp) - -#define ah REG (ah) -#define al REG (al) - -#define cs REG (cs) -#define ds REG (ds) -#define es REG (es) -#define fs REG (fs) -#define gs REG (gs) -#define ss REG (ss) - -/* - * Define macros to handle section beginning and ends. - */ - - -#define BEGIN_CODE_DCL .text -#define END_CODE_DCL -#define BEGIN_DATA_DCL .data -#define END_DATA_DCL -#define BEGIN_CODE .text -#define END_CODE -#define BEGIN_DATA -#define END_DATA -#define BEGIN_BSS -#define END_BSS -#define END - -/* - * Following must be tailor 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) -#define EXTERN(sym) .globl SYM (sym) - -#endif -/* end of include file */ - - diff --git a/cpukit/score/cpu/i960/asm.h b/cpukit/score/cpu/i960/asm.h deleted file mode 100644 index 1c40601473..0000000000 --- a/cpukit/score/cpu/i960/asm.h +++ /dev/null @@ -1,107 +0,0 @@ -/* asm.h - * - * 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. - * On-Line Applications Research Corporation (OAR). - * - * $Id$ - */ - -#ifndef __i960_ASM_h -#define __i960_ASM_h - -/* - * Indicate we are in an assembly file and get the basic CPU definitions. - */ - -#define ASM -#include - -/* - * 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. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* 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 g0 REG (g0) -#define g1 REG (g1) -#define g2 REG (g2) -#define g3 REG (g3) -#define g4 REG (g4) -#define g5 REG (g5) -#define g6 REG (g6) -#define g7 REG (g7) -#define g8 REG (g8) -#define g9 REG (g9) -#define g10 REG (g10) -#define g11 REG (g11) -#define g12 REG (g12) -#define g13 REG (g13) -#define g14 REG (g14) -#define g15 REG (g15) - -/* - * Define macros to handle section beginning and ends. - */ - - -#define BEGIN_CODE_DCL .text -#define END_CODE_DCL -#define BEGIN_DATA_DCL .data -#define END_DATA_DCL -#define BEGIN_CODE .text -#define END_CODE -#define BEGIN_DATA -#define END_DATA -#define BEGIN_BSS -#define END_BSS -#define END - -/* - * Following must be tailor 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) -#define EXTERN(sym) .globl SYM (sym) - -#endif -/* end of include file */ diff --git a/cpukit/score/cpu/i960/cpu.c b/cpukit/score/cpu/i960/cpu.c deleted file mode 100644 index 68ecb0525c..0000000000 --- a/cpukit/score/cpu/i960/cpu.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Intel i960CA Dependent Source - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#if defined(__i960CA__) || defined(__i960_CA__) || defined(__i960CA) -#else -#warning "*** ENTIRE FILE IMPLEMENTED & TESTED FOR CA ONLY ***" -#warning "*** THIS FILE WILL NOT COMPILE ON ANOTHER FAMILY MEMBER ***" -#endif - -#include -#include -#include - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - address of disptaching routine - * - * OUTPUT PARAMETERS: NONE - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - _CPU_Table = *cpu_table; - -} - -/* _CPU__ISR_Install_vector - * - * Install the RTEMS vector wrapper in the CPU's interrupt table. - * - * 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 - * - */ - -#define _Is_vector_caching_enabled( _prcb ) \ - ((_prcb)->control_tbl->icon & 0x2000) - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -) -{ - i960ca_PRCB *prcb = _CPU_Table.Prcb; - proc_ptr *cached_intr_tbl = NULL; - -/* The i80960CA does not support vectors 0-7. The first 9 entries - * in the Interrupt Table are used to manage pending interrupts. - * Thus vector 8, the first valid vector number, is actually in - * slot 9 in the table. - */ - - *old_handler = _ISR_Vector_table[ vector ]; - - _ISR_Vector_table[ vector ] = new_handler; - - prcb->intr_tbl[ vector + 1 ] = _ISR_Handler; - if ( _Is_vector_caching_enabled( prcb ) ) - if ( (vector & 0xf) == 0x2 ) /* cacheable? */ - cached_intr_tbl[ vector >> 4 ] = _ISR_Handler; -} - -/*PAGE - * - * _CPU_Install_interrupt_stack - */ - -#define soft_reset( prcb ) \ - { register i960ca_PRCB *_prcb = (prcb); \ - register unsigned32 *_next=0; \ - register unsigned32 _cmd = 0x30000; \ - asm volatile( "lda next,%1; \ - sysctl %0,%1,%2; \ - next: mov g0,g0" \ - : "=d" (_cmd), "=d" (_next), "=d" (_prcb) \ - : "0" (_cmd), "1" (_next), "2" (_prcb) ); \ - } - -void _CPU_Install_interrupt_stack( void ) -{ - i960ca_PRCB *prcb = _CPU_Table.Prcb; - unsigned32 level; - - /* - * Set the Interrupt Stack in the PRCB and force a reload of it. - * Interrupts are disabled for safety. - */ - - _CPU_ISR_Disable( level ); - - prcb->intr_stack = _CPU_Interrupt_stack_low; - - soft_reset( prcb ); - - _CPU_ISR_Enable( level ); -} diff --git a/cpukit/score/cpu/m68k/asm.h b/cpukit/score/cpu/m68k/asm.h deleted file mode 100644 index 068c58058c..0000000000 --- a/cpukit/score/cpu/m68k/asm.h +++ /dev/null @@ -1,127 +0,0 @@ -/* asm.h - * - * 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. - * On-Line Applications Research Corporation (OAR). - * - * $Id$ - */ - -#ifndef __M68k_ASM_h -#define __M68k_ASM_h - -/* - * Indicate we are in an assembly file and get the basic CPU definitions. - */ - -#define ASM -#include - -/* - * 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. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* 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 d0 REG (d0) -#define d1 REG (d1) -#define d2 REG (d2) -#define d3 REG (d3) -#define d4 REG (d4) -#define d5 REG (d5) -#define d6 REG (d6) -#define d7 REG (d7) -#define a0 REG (a0) -#define a1 REG (a1) -#define a2 REG (a2) -#define a3 REG (a3) -#define a4 REG (a4) -#define a5 REG (a5) -#define a6 REG (a6) -#define a7 REG (a7) - -#define msp REG (msp) -#define usp REG (usp) -#define isp REG (isp) -#define sr REG (sr) - -#define fp0 REG (fp0) -#define fp1 REG (fp1) -#define fp2 REG (fp2) -#define fp3 REG (fp3) -#define fp4 REG (fp4) -#define fp5 REG (fp5) -#define fp6 REG (fp6) -#define fp7 REG (fp7) - -#define fpc REG (fpc) -#define fpi REG (fpi) -#define fps REG (fps) - -/* - * Define macros to handle section beginning and ends. - */ - - -#define BEGIN_CODE_DCL .text -#define END_CODE_DCL -#define BEGIN_DATA_DCL .data -#define END_DATA_DCL -#define BEGIN_CODE .text -#define END_CODE -#define BEGIN_DATA -#define END_DATA -#define BEGIN_BSS -#define END_BSS -#define END - -/* - * Following must be tailor 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) -#define EXTERN(sym) .globl SYM (sym) - -#endif -/* end of include file */ - - diff --git a/cpukit/score/cpu/m68k/cpu.c b/cpukit/score/cpu/m68k/cpu.c deleted file mode 100644 index 45484da1f4..0000000000 --- a/cpukit/score/cpu/m68k/cpu.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Motorola MC68020 Dependent Source - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - entry pointer to thread dispatcher - * - * OUTPUT PARAMETERS: NONE - */ - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - _CPU_Table = *cpu_table; - -} - -/* _CPU_ISR_install_vector - * - * This kernel routine installs the RTEMS handler for the - * specified vector. - * - * Input parameters: - * vector - interrupt vector number - * new_handler - replacement ISR for this vector number - * old_handler - former ISR for this vector number - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -void _CPU_ISR_install_vector( - unsigned32 vector, - proc_ptr new_handler, - proc_ptr *old_handler -) -{ - proc_ptr *interrupt_table = NULL; - - m68k_get_vbr( interrupt_table ); - - *old_handler = _ISR_Vector_table[ vector ]; - - _ISR_Vector_table[ vector ] = new_handler; - interrupt_table[ vector ] = _ISR_Handler; -} - - -/*PAGE - * - * _CPU_Install_interrupt_stack - */ - -void _CPU_Install_interrupt_stack( void ) -{ -#if ( M68K_HAS_SEPARATE_STACKS == 1 ) - void *isp = _CPU_Interrupt_stack_high; - - asm volatile ( "movec %0,%%isp" : "=r" (isp) : "0" (isp) ); -#else -#warning "FIX ME... HOW DO I INSTALL THE INTERRUPT STACK!!!" -#endif -} - diff --git a/cpukit/score/cpu/m68k/rtems/asm.h b/cpukit/score/cpu/m68k/rtems/asm.h deleted file mode 100644 index 068c58058c..0000000000 --- a/cpukit/score/cpu/m68k/rtems/asm.h +++ /dev/null @@ -1,127 +0,0 @@ -/* asm.h - * - * 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. - * On-Line Applications Research Corporation (OAR). - * - * $Id$ - */ - -#ifndef __M68k_ASM_h -#define __M68k_ASM_h - -/* - * Indicate we are in an assembly file and get the basic CPU definitions. - */ - -#define ASM -#include - -/* - * 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. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* 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 d0 REG (d0) -#define d1 REG (d1) -#define d2 REG (d2) -#define d3 REG (d3) -#define d4 REG (d4) -#define d5 REG (d5) -#define d6 REG (d6) -#define d7 REG (d7) -#define a0 REG (a0) -#define a1 REG (a1) -#define a2 REG (a2) -#define a3 REG (a3) -#define a4 REG (a4) -#define a5 REG (a5) -#define a6 REG (a6) -#define a7 REG (a7) - -#define msp REG (msp) -#define usp REG (usp) -#define isp REG (isp) -#define sr REG (sr) - -#define fp0 REG (fp0) -#define fp1 REG (fp1) -#define fp2 REG (fp2) -#define fp3 REG (fp3) -#define fp4 REG (fp4) -#define fp5 REG (fp5) -#define fp6 REG (fp6) -#define fp7 REG (fp7) - -#define fpc REG (fpc) -#define fpi REG (fpi) -#define fps REG (fps) - -/* - * Define macros to handle section beginning and ends. - */ - - -#define BEGIN_CODE_DCL .text -#define END_CODE_DCL -#define BEGIN_DATA_DCL .data -#define END_DATA_DCL -#define BEGIN_CODE .text -#define END_CODE -#define BEGIN_DATA -#define END_DATA -#define BEGIN_BSS -#define END_BSS -#define END - -/* - * Following must be tailor 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) -#define EXTERN(sym) .globl SYM (sym) - -#endif -/* end of include file */ - - diff --git a/cpukit/score/cpu/no_cpu/asm.h b/cpukit/score/cpu/no_cpu/asm.h deleted file mode 100644 index 69b1f0f825..0000000000 --- a/cpukit/score/cpu/no_cpu/asm.h +++ /dev/null @@ -1,98 +0,0 @@ -/* asm.h - * - * 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. - * On-Line Applications Research Corporation (OAR). - * - * $Id$ - */ - -#ifndef __NO_CPU_ASM_h -#define __NO_CPU_ASM_h - -/* - * Indicate we are in an assembly file and get the basic CPU definitions. - */ - -#define ASM -#include - -/* - * 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. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* 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. - */ - - -#define BEGIN_CODE_DCL .text -#define END_CODE_DCL -#define BEGIN_DATA_DCL .data -#define END_DATA_DCL -#define BEGIN_CODE .text -#define END_CODE -#define BEGIN_DATA -#define END_DATA -#define BEGIN_BSS -#define END_BSS -#define END - -/* - * Following must be tailor 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) -#define EXTERN(sym) .globl SYM (sym) - -#endif -/* end of include file */ - - diff --git a/cpukit/score/cpu/no_cpu/cpu.c b/cpukit/score/cpu/no_cpu/cpu.c deleted file mode 100644 index f09d935c2d..0000000000 --- a/cpukit/score/cpu/no_cpu/cpu.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * XXX CPU Dependent Source - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - address of disptaching routine - */ - - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - /* - * The thread_dispatch argument is the address of the entry point - * for the routine called at the end of an ISR once it has been - * decided a context switch is necessary. On some compilation - * systems it is difficult to call a high-level language routine - * from assembly. This allows us to trick these systems. - * - * If you encounter this problem save the entry point in a CPU - * dependent variable. - */ - - _CPU_Thread_dispatch_pointer = thread_dispatch; - - /* - * XXX; 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. - */ - - /* XXX: FP context initialization support */ - - _CPU_Table = *cpu_table; -} - -/* _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 - * - */ - - -void _CPU_ISR_install_vector( - unsigned32 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. - */ - - /* - * 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 - */ - -void _CPU_Install_interrupt_stack( void ) -{ -} - -/*PAGE - * - * _CPU_Internal_threads_Idle_thread_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. - */ - -void _CPU_Internal_threads_Idle_thread_body( void ) -{ - - for( ; ; ) - /* insert your "halt" instruction here */ ; -} diff --git a/cpukit/score/cpu/no_cpu/cpu_asm.c b/cpukit/score/cpu/no_cpu/cpu_asm.c deleted file mode 100644 index 26246a93c2..0000000000 --- a/cpukit/score/cpu/no_cpu/cpu_asm.c +++ /dev/null @@ -1,152 +0,0 @@ -/* cpu_asm.c ===> cpu_asm.S or cpu_asm.s - * - * 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, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $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> - */ - -#include -#include -/* #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. - */ - -void _CPU_Context_save_fp( - void **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. - */ - -void _CPU_Context_restore_fp( - void **fp_context_ptr -) -{ -} - -/* _CPU_Context_switch - * - * This routine performs a normal non-FP context switch. - */ - -void _CPU_Context_switch( - Context_Control *run, - Context_Control *heir -) -{ -} - -/* - * _CPU_Context_restore - * - * This routine is generallu 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. - */ - -void _CPU_Context_restore( - Context_Control *new_context -) -{ -} - -/* void __ISR_Handler() - * - * This routine provides the RTEMS interrupt management. - * - */ - -void _ISR_Handler() -{ - /* - * 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 ); - * - * if ( --__ISR_Nest_level == 0 ) { - * if ( _Context_Switch_necessary || _ISR_Signals_to_thread_executing ) - * call _Thread_Dispatch() or prepare to return to _ISR_Dispatch - * #if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE ) - * restore stack - * #endif - * } - * - * prepare to get out of interrupt - * return from interrupt - * - */ -} - diff --git a/cpukit/score/cpu/no_cpu/rtems/asm.h b/cpukit/score/cpu/no_cpu/rtems/asm.h deleted file mode 100644 index 69b1f0f825..0000000000 --- a/cpukit/score/cpu/no_cpu/rtems/asm.h +++ /dev/null @@ -1,98 +0,0 @@ -/* asm.h - * - * 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. - * On-Line Applications Research Corporation (OAR). - * - * $Id$ - */ - -#ifndef __NO_CPU_ASM_h -#define __NO_CPU_ASM_h - -/* - * Indicate we are in an assembly file and get the basic CPU definitions. - */ - -#define ASM -#include - -/* - * 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. - */ - -#ifndef __USER_LABEL_PREFIX__ -#define __USER_LABEL_PREFIX__ _ -#endif - -#ifndef __REGISTER_PREFIX__ -#define __REGISTER_PREFIX__ -#endif - -/* ANSI concatenation macros. */ - -#define CONCAT1(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -/* 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. - */ - - -#define BEGIN_CODE_DCL .text -#define END_CODE_DCL -#define BEGIN_DATA_DCL .data -#define END_DATA_DCL -#define BEGIN_CODE .text -#define END_CODE -#define BEGIN_DATA -#define END_DATA -#define BEGIN_BSS -#define END_BSS -#define END - -/* - * Following must be tailor 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) -#define EXTERN(sym) .globl SYM (sym) - -#endif -/* end of include file */ - - diff --git a/cpukit/score/cpu/unix/cpu.c b/cpukit/score/cpu/unix/cpu.c deleted file mode 100644 index ed94953d58..0000000000 --- a/cpukit/score/cpu/unix/cpu.c +++ /dev/null @@ -1,529 +0,0 @@ -/* - * HP PA-RISC CPU Dependent Source - * - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * $Id$ - */ - -#include -#include -#include -#include -/* - * In order to get the types and prototypes used in this file under - * Solaris 2.3, it is necessary to pull the following magic. - */ - -#if defined(solaris) -#warning "Ignore the undefining __STDC__ warning" -#undef __STDC__ -#define __STDC__ 0 -#undef _POSIX_C_SOURCE -#endif - -#include -#include -#include -#include -#include -#include - -extern void set_vector(proc_ptr, int, int); -extern void _Thread_Dispatch(void); - -extern unsigned32 _Thread_Dispatch_disable_level; -extern unsigned32 _SYSTEM_ID; -extern boolean _Context_Switch_necessary; - - -rtems_status_code signal_initialize(void); -void Stray_signal(int); -void signal_enable(unsigned32); -void signal_disable(unsigned32); -void interrupt_handler(); - -sigset_t UNIX_SIGNAL_MASK; -jmp_buf default_context; - -/* - * Which cpu are we? Used by libcpu and libbsp. - */ - -int cpu_number; - -/* _CPU_Initialize - * - * This routine performs processor dependent initialization. - * - * INPUT PARAMETERS: - * cpu_table - CPU table to initialize - * thread_dispatch - address of disptaching routine - */ - - -void _CPU_Initialize( - rtems_cpu_table *cpu_table, - void (*thread_dispatch) /* ignored on this CPU */ -) -{ - unsigned32 i; - - if ( cpu_table == NULL ) - rtems_fatal_error_occurred( RTEMS_NOT_CONFIGURED ); - - /* - * The thread_dispatch argument is the address of the entry point - * for the routine called at the end of an ISR once it has been - * decided a context switch is necessary. On some compilation - * systems it is difficult to call a high-level language routine - * from assembly. This allows us to trick these systems. - * - * If you encounter this problem save the entry point in a CPU - * dependent variable. - */ - - _CPU_Thread_dispatch_pointer = thread_dispatch; - - /* - * XXX; 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. - */ - - /* XXX: FP context initialization support */ - - _CPU_Table = *cpu_table; - -#if defined(hppa1_1) && defined(RTEMS_UNIXLIB) - /* - * HACK - set the _SYSTEM_ID to 0x20c so that setjmp/longjmp - * will handle the full 32 floating point registers. - * - * NOTE: Is this a bug in HPUX9? - */ - - _SYSTEM_ID = 0x20c; -#endif - - /* - * get default values to use in _CPU_Context_Initialize() - */ - - setjmp(default_context); - - /* - * Block all the signals except SIGTRAP for the debugger - * and SIGABRT for fatal errors. - */ - - _CPU_ISR_Set_signal_level(1); - - sigfillset(&UNIX_SIGNAL_MASK); - sigdelset(&UNIX_SIGNAL_MASK, SIGTRAP); - sigdelset(&UNIX_SIGNAL_MASK, SIGABRT); - sigdelset(&UNIX_SIGNAL_MASK, SIGIOT); - sigdelset(&UNIX_SIGNAL_MASK, SIGCONT); - - sigprocmask(SIG_BLOCK, &UNIX_SIGNAL_MASK, 0); - - /* - * Set the handler for all signals to be signal_handler - * which will then vector out to the correct handler - * for whichever signal actually happened. Initially - * set the vectors to the stray signal handler. - */ - - for (i = 0; i < 32; i++) - (void)set_vector(Stray_signal, i, 1); - - signal_initialize(); -} - -/* _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 - * - */ - - -void _CPU_ISR_install_vector( - unsigned32 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. - */ - - /* - * 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 - */ - -void _CPU_Install_interrupt_stack( void ) -{ -} - -/*PAGE - * - * _CPU_Internal_threads_Idle_thread_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. - */ - -void _CPU_Internal_threads_Idle_thread_body( void ) -{ - while (1) - pause(); -} - -void _CPU_Context_Initialize( - Context_Control *_the_context, - unsigned32 *_stack_base, - unsigned32 _size, - unsigned32 _new_level, - proc_ptr *_entry_point -) -{ - unsigned32 *addr; - unsigned32 jmp_addr; - unsigned32 _stack; - unsigned32 _the_size; - - jmp_addr = (unsigned32) _entry_point; - - _stack = ((unsigned32)(_stack_base) + CPU_STACK_ALIGNMENT); - _stack &= ~(CPU_STACK_ALIGNMENT - 1); - - _the_size = _size & ~(CPU_STACK_ALIGNMENT - 1); - - /* - * Slam our jmp_buf template into the context we are creating - */ - - memcpy(_the_context, default_context, sizeof(jmp_buf)); - - addr = (unsigned32 *)_the_context; - -#if defined(hppa1_1) - *(addr + RP_OFF) = jmp_addr; - *(addr + SP_OFF) = (unsigned32)(_stack + CPU_FRAME_SIZE); - - /* - * See if we are using shared libraries by checking - * bit 30 in 24 off of newp. If bit 30 is set then - * we are using shared libraries and the jump address - * is at what 24 off of newp points to so shove that - * into 24 off of newp instead. - */ - - if (jmp_addr & 0x40000000) { - jmp_addr &= 0xfffffffc; - *(addr + RP_OFF) = (unsigned32)*(unsigned32 *)jmp_addr; - } -#elif defined(sparc) - - /* - * See /usr/include/sys/stack.h in Solaris 2.3 for a nice - * diagram of the stack. - */ - - asm ("ta 0x03"); /* flush registers */ - - *(addr + RP_OFF) = jmp_addr + ADDR_ADJ_OFFSET; - *(addr + SP_OFF) = (unsigned32)(_stack +_the_size - CPU_FRAME_SIZE); - *(addr + FP_OFF) = (unsigned32)(_stack +_the_size); -#else -#error "UNKNOWN CPU!!!" -#endif - - if (_new_level) - _CPU_ISR_Set_signal_level(1); - else - _CPU_ISR_Set_signal_level(0); - -} - -void _CPU_Context_restore( - Context_Control *next -) -{ - longjmp(next->regs, 0); -} - -void _CPU_Context_switch( - Context_Control *current, - Context_Control *next -) -{ - /* - * Save the current context - */ - - if (setjmp(current->regs) == 0) { - - /* - * Switch to the new context - */ - - longjmp(next->regs, 0); - } -} - -void _CPU_Save_float_context( - Context_Control_fp *fp_context -) -{ -} - -void _CPU_Restore_float_context( - Context_Control_fp *fp_context -) -{ -} - -void _CPU_ISR_Set_signal_level(unsigned32 level) -{ - if (level) - _CPU_Disable_signal(); - else - _CPU_Enable_signal(0); -} - - -unsigned32 _CPU_Disable_signal(void) -{ - sigset_t old_mask; - sigset_t empty_mask; - - sigemptyset(&empty_mask); - sigemptyset(&old_mask); - sigprocmask(SIG_BLOCK, &UNIX_SIGNAL_MASK, &old_mask); - - if (memcmp((char *)&empty_mask, (char *)&old_mask, sizeof(sigset_t)) != 0) - return 1; - - return 0; -} - - -void _CPU_Enable_signal(unsigned32 level) -{ - if (level == 0) - sigprocmask(SIG_UNBLOCK, &UNIX_SIGNAL_MASK, 0); -} - - -/* - * Support for external and spurious interrupts on HPPA - * - * TODO: - * delete interrupt.c etc. - * Count interrupts - * make sure interrupts disabled properly - * should handler check again for more interrupts before exit? - * How to enable interrupts from an interrupt handler? - * Make sure there is an entry for everything in ISR_Vector_Table - */ - -/* - * Init the external interrupt scheme - * called by bsp_start() - */ - -rtems_status_code -signal_initialize(void) -{ - struct sigaction act; - sigset_t mask; - - /* mark them all active except for TraceTrap and Abort */ - - sigfillset(&mask); - sigdelset(&mask, SIGTRAP); - sigdelset(&mask, SIGABRT); - sigdelset(&mask, SIGIOT); - sigdelset(&mask, SIGCONT); - sigprocmask(SIG_UNBLOCK, &mask, 0); - - act.sa_handler = interrupt_handler; - act.sa_mask = mask; -#if defined(solaris) - act.sa_flags = SA_RESTART; -#else - act.sa_flags = 0; -#endif - - sigaction(SIGHUP, &act, 0); - sigaction(SIGINT, &act, 0); - sigaction(SIGQUIT, &act, 0); - sigaction(SIGILL, &act, 0); - sigaction(SIGEMT, &act, 0); - sigaction(SIGFPE, &act, 0); - sigaction(SIGKILL, &act, 0); - sigaction(SIGBUS, &act, 0); - sigaction(SIGSEGV, &act, 0); - sigaction(SIGSYS, &act, 0); - sigaction(SIGPIPE, &act, 0); - sigaction(SIGALRM, &act, 0); - sigaction(SIGTERM, &act, 0); - sigaction(SIGUSR1, &act, 0); - sigaction(SIGUSR2, &act, 0); - sigaction(SIGCHLD, &act, 0); - sigaction(SIGCLD, &act, 0); - sigaction(SIGPWR, &act, 0); - sigaction(SIGVTALRM, &act, 0); - sigaction(SIGPROF, &act, 0); - sigaction(SIGIO, &act, 0); - sigaction(SIGWINCH, &act, 0); - sigaction(SIGSTOP, &act, 0); - sigaction(SIGTTIN, &act, 0); - sigaction(SIGTTOU, &act, 0); - sigaction(SIGURG, &act, 0); -/* - * XXX: Really should be on HPUX. - */ - -#if defined(hppa1_1) - sigaction(SIGLOST, &act, 0); -#endif - - return RTEMS_SUCCESSFUL; -} - - -/* - * External interrupt handler. - * This is installed as cpu interrupt handler. - * It vectors out to specific external interrupt handlers. - */ - -void -interrupt_handler(int vector) -{ - if (_ISR_Nest_level++ == 0) { - /* switch to interrupt stack */ - } - - _Thread_Dispatch_disable_level++; - - if (_ISR_Vector_table[vector]) { - _ISR_Vector_table[vector](vector); - } - else { - Stray_signal(vector); - } - - if (_ISR_Nest_level-- == 0) { - /* switch back to original stack */ - } - - _Thread_Dispatch_disable_level--; - - if (_Thread_Dispatch_disable_level == 0 && - (_Context_Switch_necessary || _ISR_Signals_to_thread_executing)) { - _CPU_Enable_signal(0); - _Thread_Dispatch(); - } -} - - -void -Stray_signal(int sig_num) -{ - char buffer[ 80 ]; - - /* - * We avoid using the stdio section of the library. - * The following is generally safe. - */ - - write( - 2, - buffer, - sprintf( buffer, "Stray signal %d\n", sig_num ) - ); - - /* - * If it was a "fatal" signal, then exit here - * If app code has installed a hander for one of these, then - * we won't call Stray_signal, so this is ok. - */ - - switch (sig_num) - { - case SIGINT: - case SIGHUP: - case SIGQUIT: - case SIGILL: - case SIGEMT: - case SIGKILL: - case SIGBUS: - case SIGSEGV: - case SIGTERM: - _CPU_Fatal_error(0x100 + sig_num); - } -} - - -void -_CPU_Fatal_error(unsigned32 error) -{ - setitimer(ITIMER_REAL, 0, 0); - - _exit(error); -} - -int -_CPU_ffs(unsigned32 value) -{ - int output; - - output = ffs(value); - output = output - 1; - - return(output); -} diff --git a/cpukit/score/include/rtems/debug.h b/cpukit/score/include/rtems/debug.h deleted file mode 100644 index afe6251bbe..0000000000 --- a/cpukit/score/include/rtems/debug.h +++ /dev/null @@ -1,98 +0,0 @@ -/* debug.h - * - * This include file contains the information pertaining to the debug - * support within RTEMS. It is currently cast in the form of a - * Manager since it is externally accessible. - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_DEBUG_h -#define __RTEMS_DEBUG_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type is used to manage the debug mask. - */ - -typedef unsigned32 rtems_debug_control; - -/* - * These constants represent various classes of debugging. - */ - -#define RTEMS_DEBUG_ALL_MASK 0xffffffff -#define RTEMS_DEBUG_REGION 0x00000001 - -/* - * This variable contains the current debug level. - */ - -EXTERN rtems_debug_control _Debug_Level; - -/* - * _Debug_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Debug_Manager_initialization( void ); - -/* - * rtems_debug_enable - * - * DESCRIPTION: - * - * This routine enables the specified types of debug checks. - */ - -void rtems_debug_enable ( - rtems_debug_control to_be_enabled -); - -/* - * rtems_debug_disable - * - * DESCRIPTION: - * - * This routine disables the specified types of debug checks. - */ - -void rtems_debug_disable ( - rtems_debug_control to_be_disabled -); - -/* - * - * _Debug_Is_enabled - * - * DESCRIPTION: - * - * This routine returns TRUE if the requested debug level is - * enabled, and FALSE otherwise. - */ - -boolean _Debug_Is_enabled( - rtems_debug_control level -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/address.h b/cpukit/score/include/rtems/score/address.h deleted file mode 100644 index 0abd113f63..0000000000 --- a/cpukit/score/include/rtems/score/address.h +++ /dev/null @@ -1,122 +0,0 @@ -/* address.h - * - * This include file contains the information required to manipulate - * physical addresses. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ADDRESSES_h -#define __RTEMS_ADDRESSES_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * _Addresses_Add_offset - * - * DESCRIPTION: - * - * This function is used to add an offset to a base address. - * It returns the resulting address. This address is typically - * converted to an access type before being used further. - */ - -STATIC INLINE void *_Addresses_Add_offset ( - void *base, - unsigned32 offset -); - -/* - * _Addresses_Subtract_offset - * - * DESCRIPTION: - * - * This function is used to subtract an offset from a base - * address. It returns the resulting address. This address is - * typically converted to an access type before being used further. - */ - -STATIC INLINE void *_Addresses_Subtract_offset( - void *base, - unsigned32 offset -); - -/* - * _Addresses_Add - * - * DESCRIPTION: - * - * This function is used to add two addresses. It returns the - * resulting address. This address is typically converted to an - * access type before being used further. - */ - -STATIC INLINE void *_Addresses_Add ( - void *left, - void *right -); - -/* - * _Addresses_Subtract - * - * DESCRIPTION: - * - * This function is used to subtract two addresses. It returns the - * resulting offset. - */ - -STATIC INLINE unsigned32 _Addresses_Subtract ( - void *left, - void *right -); - -/* - * _Addresses_Is_aligned - * - * DESCRIPTION: - * - * This function returns TRUE if the given address is correctly - * aligned for this processor and FALSE otherwise. Proper alignment - * is based on correctness and efficiency. - */ - -STATIC INLINE boolean _Addresses_Is_aligned ( - void *address -); - -/* - * _Addresses_Is_in_range - * - * DESCRIPTION: - * - * This function returns TRUE if the given address is within the - * memory range specified and FALSE otherwise. base is the address - * of the first byte in the memory range and limit is the address - * of the last byte in the memory range. The base address is - * assumed to be lower than the limit address. - */ - -STATIC INLINE boolean _Addresses_Is_in_range ( - void *address, - void *base, - void *limit -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/bitfield.h b/cpukit/score/include/rtems/score/bitfield.h deleted file mode 100644 index a74ea97735..0000000000 --- a/cpukit/score/include/rtems/score/bitfield.h +++ /dev/null @@ -1,49 +0,0 @@ -/* bitfield.h - * - * This include file contains all bit field manipulation routines. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_BITFIELD_h -#define __RTEMS_BITFIELD_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * _Bitfield_Find_first_bit - * - * DESCRIPTION: - * - * This routine returns the bit_number of the first bit set - * in the specified value. The correspondence between bit_number - * and actual bit position is processor dependent. The search for - * the first bit set may run from most to least significant bit - * or vice-versa. - * - * NOTE: - * - * This routine is used when the executing thread is removed - * from the ready state and, as a result, its performance has a - * significant impact on the performance of the executive as a whole. - */ - -#define _Bitfield_Find_first_bit( _value, _bit_number ) \ - _CPU_Bitfield_Find_first_bit( _value, _bit_number ) - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/chain.h b/cpukit/score/include/rtems/score/chain.h deleted file mode 100644 index 06cc47cc65..0000000000 --- a/cpukit/score/include/rtems/score/chain.h +++ /dev/null @@ -1,432 +0,0 @@ -/* chain.h - * - * This include file contains all the constants and structures associated - * with the Doubly Linked Chain Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CHAIN_h -#define __RTEMS_CHAIN_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * This is used to manage each element (node) which is placed - * on a chain. - * - * NOTE: Typically, a more complicated structure will use the - * chain package. The more complicated structure will - * include a chain node as the first element in its - * control structure. It will then call the chain package - * with a pointer to that node element. The node pointer - * and the higher level structure start at the same address - * so the user can cast the pointers back and forth. - * - */ - -typedef struct Chain_Node_struct Chain_Node; - -struct Chain_Node_struct { - Chain_Node *next; - Chain_Node *previous; -}; - -/* - * This is used to manage a chain. A chain consists of a doubly - * linked list of zero or more nodes. - * - * NOTE: This implementation does not require special checks for - * manipulating the first and last elements on the chain. - * To accomplish this the chain control structure is - * treated as two overlapping chain nodes. The permanent - * head of the chain overlays a node structure on the - * first and permanent_null fields. The permanent tail - * of the chain overlays a node structure on the - * permanent_null and last elements of the structure. - * - */ - -typedef struct { - Chain_Node *first; - Chain_Node *permanent_null; - Chain_Node *last; -} Chain_Control; - -/* - * _Chain_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_chain structure to manage the - * contiguous array of number_nodes nodes which starts at - * starting_address. Each node is of node_size bytes. - * - */ - -void _Chain_Initialize( - Chain_Control *the_chain, - void *starting_address, - unsigned32 number_nodes, - unsigned32 node_size -); - -/* - * _Chain_Initialize_empty - * - * DESCRIPTION: - * - * This routine initializes the specified chain to contain zero nodes. - * - */ - -STATIC INLINE void _Chain_Initialize_empty( - Chain_Control *the_chain -); - -/* - * _Chain_Are_nodes_equal - * - * DESCRIPTION: - * - * This function returns TRUE if LEFT and RIGHT are equal, - * and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Are_nodes_equal( - Chain_Node *left, - Chain_Node *right -); - -/* - * _Chain_Extract_unprotected - * - * DESCRIPTION: - * - * This routine extracts the_node from the chain on which it resides. - * It does NOT disable interrupts to insure the atomicity of the - * extract operation. - * - */ - -STATIC INLINE void _Chain_Extract_unprotected( - Chain_Node *the_node -); - -/* - * _Chain_Extract - * - * DESCRIPTION: - * - * This routine extracts the_node from the chain on which it resides. - * It disables interrupts to insure the atomicity of the - * extract operation. - * - */ - -void _Chain_Extract( - Chain_Node *the_node -); - -/* - * _Chain_Get_unprotected - * - * DESCRIPTION: - * - * This function removes the first node from the_chain and returns - * a pointer to that node. If the_chain is empty, then NULL is returned. - * It does NOT disable interrupts to insure the atomicity of the - * get operation. - * - */ - -STATIC INLINE Chain_Node *_Chain_Get_unprotected( - Chain_Control *the_chain -); - -/* - * _Chain_Get - * - * DESCRIPTION: - * - * This function removes the first node from the_chain and returns - * a pointer to that node. If the_chain is empty, then NULL is returned. - * It disables interrupts to insure the atomicity of the - * get operation. - * - */ - -Chain_Node *_Chain_Get( - Chain_Control *the_chain -); - -/* - * _Chain_Get_first_unprotected - * - * DESCRIPTION: - * - * This function removes the first node from the_chain and returns - * a pointer to that node. It does NOT disable interrupts to insure - * the atomicity of the get operation. - * - */ - -STATIC INLINE Chain_Node *_Chain_Get_first_unprotected( - Chain_Control *the_chain -); - -/* - * _Chain_Insert_unprotected - * - * DESCRIPTION: - * - * This routine inserts the_node on a chain immediately following - * after_node. It does NOT disable interrupts to insure the atomicity - * of the extract operation. - * - */ - -STATIC INLINE void _Chain_Insert_unprotected( - Chain_Node *after_node, - Chain_Node *the_node -); - -/* - * _Chain_Insert - * - * DESCRIPTION: - * - * This routine inserts the_node on a chain immediately following - * after_node. It disables interrupts to insure the atomicity - * of the extract operation. - * - */ - -void _Chain_Insert( - Chain_Node *after_node, - Chain_Node *the_node -); - -/* - * _Chain_Append_unprotected - * - * DESCRIPTION: - * - * This routine appends the_node onto the end of the_chain. - * It does NOT disable interrupts to insure the atomicity of the - * append operation. - * - */ - -STATIC INLINE void _Chain_Append_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Append - * - * DESCRIPTION: - * - * This routine appends the_node onto the end of the_chain. - * It disables interrupts to insure the atomicity of the - * append operation. - * - */ - -void _Chain_Append( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Prepend_unprotected - * - * DESCRIPTION: - * - * This routine prepends the_node onto the front of the_chain. - * It does NOT disable interrupts to insure the atomicity of the - * prepend operation. - * - */ - -STATIC INLINE void _Chain_Prepend_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Prepend - * - * DESCRIPTION: - * - * This routine prepends the_node onto the front of the_chain. - * It disables interrupts to insure the atomicity of the - * prepend operation. - * - */ - -STATIC INLINE void _Chain_Prepend( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Head - * - * DESCRIPTION: - * - * This function returns a pointer to the first node on the chain. - * - */ - -STATIC INLINE Chain_Node *_Chain_Head( - Chain_Control *the_chain -); - -/* - * _Chain_Tail - * - * DESCRIPTION: - * - * This function returns a pointer to the last node on the chain. - * - */ - -STATIC INLINE Chain_Node *_Chain_Tail( - Chain_Control *the_chain -); - -/* - * _Chain_Is_head - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the head of the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_head( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Is_tail - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the tail of the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_tail( - Chain_Control *the_chain, - Chain_Node *the_node -); - -/* - * _Chain_Is_first - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the first node on a chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_first( - Chain_Node *the_node -); - -/* - * _Chain_Is_last - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is the last node on a chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_last( - Chain_Node *the_node -); - -/* - * _Chain_Is_empty - * - * DESCRIPTION: - * - * This function returns TRUE if there a no nodes on the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_empty( - Chain_Control *the_chain -); - -/* - * _Chain_Has_only_one_node - * - * DESCRIPTION: - * - * This function returns TRUE if there is only one node on the_chain and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Has_only_one_node( - Chain_Control *the_chain -); - -/* - * _Chain_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_chain is NULL and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_null( - Chain_Control *the_chain -); - -/* - * _Chain_Is_null_node - * - * DESCRIPTION: - * - * This function returns TRUE if the_node is NULL and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Chain_Is_null_node( - Chain_Node *the_node -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/context.h b/cpukit/score/include/rtems/score/context.h deleted file mode 100644 index 9b8ee92b04..0000000000 --- a/cpukit/score/include/rtems/score/context.h +++ /dev/null @@ -1,133 +0,0 @@ -/* context.h - * - * This include file contains all information about a context. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CONTEXT_h -#define __RTEMS_CONTEXT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following constant defines the number of bytes required - * to store a full floating point context. - */ - -#define CONTEXT_FP_SIZE CPU_CONTEXT_FP_SIZE - -/* - * The following variable is set to TRUE when a reschedule operation - * has determined that the processor should be taken away from the - * currently executing thread and given to the heir thread. - */ - -EXTERN boolean _Context_Switch_necessary; - -/* - * _Context_Initialize - * - * DESCRIPTION: - * - * This routine initializes THE_CONTEXT such that the stack - * pointer, interrupt level, and entry point are correct for the - * thread's initial state. - */ - -#define _Context_Initialize( _the_context, _stack, _size, _isr, _entry ) \ - _CPU_Context_Initialize( _the_context, _stack, _size, _isr, _entry ) - -/* - * _Context_Switch - * - * DESCRIPTION: - * - * This routine saves the current context into the EXECUTING - * context record and restores the context specified by HEIR. - */ - -#define _Context_Switch( _executing, _heir ) \ - _CPU_Context_switch( _executing, _heir ) - -/* - * _Context_Restart_self - * - * DESCRIPTION: - * - * This routine restarts the calling thread by restoring its initial - * stack pointer and returning to the thread's entry point. - */ - -#define _Context_Restart_self( _the_context ) \ - _CPU_Context_Restart_self( _the_context ) - -/* - * _Context_Fp_start - * - * DESCRIPTION: - * - * This function returns the starting address of the floating - * point context save area. It is assumed that the are reserved - * for the floating point save area is large enough. - */ - -#define _Context_Fp_start( _base, _offset ) \ - _CPU_Context_Fp_start( (_base), (_offset) ) - -/* - * _Context_Initialize_fp - * - * DESCRIPTION: - * - * This routine initializes the floating point context save - * area to contain an initial known state. - */ - -#define _Context_Initialize_fp( _fp_area ) \ - _CPU_Context_Initialize_fp( _fp_area ) - -/* - * _Context_Restore_fp - * - * DESCRIPTION: - * - * This routine restores the floating point context contained - * in the FP_CONTEXT area. It is assumed that the current - * floating point context has been saved by a previous invocation - * of SAVE_FP. - */ - -#define _Context_Restore_fp( _fp ) \ - _CPU_Context_restore_fp( _fp ) - -/* - * _Context_Save_fp - * - * DESCRIPTION: - * - * This routine saves the current floating point context - * in the FP_CONTEXT area. - */ - -#define _Context_Save_fp( _fp ) \ - _CPU_Context_save_fp( _fp ) - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/copyrt.h b/cpukit/score/include/rtems/score/copyrt.h deleted file mode 100644 index c711ba09b3..0000000000 --- a/cpukit/score/include/rtems/score/copyrt.h +++ /dev/null @@ -1,42 +0,0 @@ -/* copyrt.h - * - * This include file contains the copyright notice for RTEMS - * which is included in every binary copy of the executive. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_COPYRIGHT_h -#define __RTEMS_COPYRIGHT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef INIT - -const char _Copyright_Notice[] = -"COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.\n\ -On-Line Applications Research Corporation (OAR).\n\ -All rights assigned to U.S. Government, 1994.\n"; - -#else - -extern const char _Copyright_Notice[]; - -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/heap.h b/cpukit/score/include/rtems/score/heap.h deleted file mode 100644 index 9eb348a760..0000000000 --- a/cpukit/score/include/rtems/score/heap.h +++ /dev/null @@ -1,396 +0,0 @@ -/* heap.h - * - * This include file contains the information pertaining to the Heap - * Handler. A heap is a doubly linked list of variable size - * blocks which are allocated using the first fit method. Garbage - * collection is performed each time a block is returned to the heap by - * coalescing neighbor blocks. Control information for both allocated - * and unallocated blocks is contained in the heap space. A heap header - * contains control information for the heap. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_HEAP_h -#define __RTEMS_HEAP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Status codes for heap_extend - */ - -typedef enum { - HEAP_EXTEND_SUCCESSFUL, - HEAP_EXTEND_ERROR, - HEAP_EXTEND_NOT_IMPLEMENTED -} Heap_Extend_status; - -/* - * Constants used in the size/used field of each heap block to - * indicate when a block is free or in use. - */ - -#define HEAP_BLOCK_USED 1 /* indicates block is in use */ -#define HEAP_BLOCK_FREE 0 /* indicates block is free */ - -/* - * The size/used field value for the dummy front and back flags. - */ - -#define HEAP_DUMMY_FLAG (0 + HEAP_BLOCK_USED) - -/* - * The following constants reflect various requirements of the - * heap data structures which impact the management of a heap. - * - * NOTE: Because free block overhead is greater than used block - * overhead AND a portion of the allocated space is from - * the extra free block overhead, the absolute lower bound - * of the minimum fragment size is equal to the size of - * the free block overhead. - */ - -#define HEAP_OVERHEAD \ - (sizeof( unsigned32 ) * 2) /* size dummy first and last blocks */ -#define HEAP_BLOCK_USED_OVERHEAD \ - (sizeof( void * ) * 2) /* num bytes overhead in used block */ -#define HEAP_MINIMUM_SIZE \ - (HEAP_OVERHEAD + sizeof (Heap_Block)) - /* min number of bytes the user may */ - /* specify for the heap size */ - -/* - * The following defines the data structure used to manage - * individual blocks in a heap. When the block is allocated, the - * next and previous fields are not used by the Heap Handler - * and thus the address returned for the block starts at - * the address of the next field. - * - * NOTE: The next and previous pointers are only valid when the - * block is free. Caution must be exercised to insure that - * allocated blocks are large enough to contain them and - * that they are not accidentally overwritten when the - * block is actually allocated. - */ - -typedef struct Heap_Block_struct Heap_Block; - -struct Heap_Block_struct { - unsigned32 back_flag; /* size and status of prev block */ - unsigned32 front_flag; /* size and status of block */ - Heap_Block *next; /* pointer to next block */ - Heap_Block *previous; /* pointer to previous block */ -}; - -/* - * The following defines the control block used to manage each heap. - * - * NOTE: - * - * This structure is layed out such that it can be used a a dummy - * first and last block on the free block chain. The extra padding - * insures the dummy last block is the correct size. - * - * The first Heap_Block starts at first while the second starts at - * final. This is effectively the same trick as is used in the Chain - * Handler. - */ - -typedef struct { - Heap_Block *start; /* first valid block address in heap */ - Heap_Block *final; /* last valid block address in heap */ - - Heap_Block *first; /* pointer to first block in heap */ - Heap_Block *permanent_null; /* always NULL pointer */ - Heap_Block *last; /* pointer to last block in heap */ - unsigned32 page_size; /* allocation unit */ - unsigned32 reserved; -} Heap_Control; - -/* - * _Heap_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_heap record to manage the - * contiguous heap of size bytes which starts at starting_address. - * Blocks of memory are allocated from the heap in multiples of - * page_size byte units. - */ - -unsigned32 _Heap_Initialize( - Heap_Control *the_heap, - void *starting_address, - unsigned32 size, - unsigned32 page_size -); - -/* - * _Heap_Extend - * - * DESCRIPTION: - * - * This routine grows the_heap memory area using the size bytes which - * begin at starting_address. - */ - -Heap_Extend_status _Heap_Extend( - Heap_Control *the_heap, - void *starting_address, - unsigned32 size, - unsigned32 *amount_extended -); - -/* - * _Heap_Allocate - * - * DESCRIPTION: - * - * DESCRIPTION: - * - * This function attempts to allocate a block of size bytes from - * the_heap. If insufficient memory is free in the_heap to allocate - * a block of the requested size, then NULL is returned. - */ - -void *_Heap_Allocate( - Heap_Control *the_heap, - unsigned32 size -); - -/* - * _Heap_Size_of_user_area - * - * DESCRIPTION: - * - * This kernel routine sets size to the size of the given heap block. - * It returns TRUE if the starting_address is in the heap, and FALSE - * otherwise. - */ - -boolean _Heap_Size_of_user_area( - Heap_Control *the_heap, - void *starting_address, - unsigned32 *size -); - -/* - * _Heap_Free - * - * DESCRIPTION: - * - * This routine returns the block of memory which begins - * at starting_address to the_heap. Any coalescing which is - * possible with the freeing of this routine is performed. - */ - -boolean _Heap_Free( - Heap_Control *the_heap, - void *start_address -); - -/* - * _Heap_Walk - * - * DESCRIPTION: - * - * This routine walks the heap to verify its integrity. - */ - -void _Heap_Walk( - Heap_Control *the_heap, - int source, - boolean do_dump -); - -/* - * _Heap_Head - * - * DESCRIPTION: - * - * This function returns the head of the specified heap. - */ - -STATIC INLINE Heap_Block *_Heap_Head ( - Heap_Control *the_heap -); - -/* - * _Heap_Tail - * - * DESCRIPTION: - * - * This function returns the tail of the specified heap. - */ - -STATIC INLINE Heap_Block *_Heap_Tail ( - Heap_Control *the_heap -); - -/* - * _Heap_Previous_block - * - * DESCRIPTION: - * - * This function returns the address of the block which physically - * precedes the_block in memory. - */ - -STATIC INLINE Heap_Block *_Heap_Previous_block ( - Heap_Block *the_block -); - -/* - * _Heap_Next_block - * - * DESCRIPTION: - * - * This function returns the address of the block which physically - * follows the_block in memory. - */ - -STATIC INLINE Heap_Block *_Heap_Next_block ( - Heap_Block *the_block -); - -/* - * _Heap_Block_at - * - * DESCRIPTION: - * - * This function calculates and returns a block's location (address) - * in the heap based upad a base address and an offset. - */ - -STATIC INLINE Heap_Block *_Heap_Block_at( - void *base, - unsigned32 offset -); - -/* - * _Heap_Is_previous_block_free - * - * DESCRIPTION: - * - * This function returns TRUE if the previous block of the_block - * is free, and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_previous_block_free ( - Heap_Block *the_block -); - -/* - * _Heap_Is_block_free - * - * DESCRIPTION: - * - * This function returns TRUE if the block is free, and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_block_free ( - Heap_Block *the_block -); - -/* - * _Heap_Is_block_used - * - * DESCRIPTION: - * - * This function returns TRUE if the block is currently allocated, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_block_used ( - Heap_Block *the_block -); - -/* - * _Heap_Block_size - * - * DESCRIPTION: - * - * This function returns the size of the_block in bytes. - */ - -STATIC INLINE unsigned32 _Heap_Block_size ( - Heap_Block *the_block -); - -/* - * _Heap_Start_of_user_area - * - * DESCRIPTION: - * - * This function returns the starting address of the portion of the block - * which the user may access. - */ - -STATIC INLINE void *_Heap_Start_of_user_area ( - Heap_Block *the_block -); - -/* - * _Heap_Is_block_in - * - * DESCRIPTION: - * - * This function returns TRUE if the_block is within the memory area - * managed by the_heap, and FALSE otherwise. - */ - -STATIC INLINE boolean _Heap_Is_block_in ( - Heap_Control *the_heap, - Heap_Block *the_block -); - - -/* - * _Heap_Is_page_size_valid - * - * DESCRIPTION: - * - * This function validates a specified heap page size. If the page size - * is 0 or if lies outside a page size alignment boundary it is invalid - * and FALSE is returned. Otherwise, the page size is valid and TRUE is - * returned. - */ - -STATIC INLINE boolean _Heap_Is_page_size_valid( - unsigned32 page_size -); - -/* - * _Heap_Build_flag - * - * DESCRIPTION: - * - * This function returns the block flag composed of size and in_use_flag. - * The flag returned is suitable for use as a back or front flag in a - * heap block. - */ - -STATIC INLINE unsigned32 _Heap_Build_flag ( - unsigned32 size, - unsigned32 in_use_flag -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/isr.h b/cpukit/score/include/rtems/score/isr.h deleted file mode 100644 index 77c3f8663e..0000000000 --- a/cpukit/score/include/rtems/score/isr.h +++ /dev/null @@ -1,239 +0,0 @@ -/* isr.h - * - * This include file contains all the constants and structures associated - * with the management of processor interrupt levels. This handler - * supports interrupt critical sections, vectoring of user interrupt - * handlers, nesting of interrupts, and manipulating interrupt levels. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_ISR_h -#define __RTEMS_ISR_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage - * the interrupt level portion of the status register. - */ - -typedef unsigned32 ISR_Level; - -/* - * The following type defines the control block used to manage - * the vectors. - */ - -typedef unsigned32 rtems_vector_number; - -/* - * Return type for ISR Handler - */ - -typedef void rtems_isr; - -/* - * Pointer to an ISR Handler - */ - -typedef rtems_isr ( *rtems_isr_entry )( - rtems_vector_number - ); -/* - * The following is TRUE if signals have been sent to the currently - * executing thread by an ISR handler. - */ - -EXTERN boolean _ISR_Signals_to_thread_executing; - -/* - * The following contains the interrupt service routine nest level. - * When this variable is zero, a thread is executing. - */ - -EXTERN unsigned32 _ISR_Nest_level; - -/* - * The following declares the RTEMS Vector Table. Application - * interrupt service routines are vectored by RTEMS via this table. - */ - -EXTERN rtems_isr_entry _ISR_Vector_table[CPU_INTERRUPT_NUMBER_OF_VECTORS]; - -/* - * _ISR_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _ISR_Handler_initialization ( void ); - -/* - * _ISR_Disable - * - * DESCRIPTION: - * - * This routine disables all interrupts so that a critical section - * of code can be executing without being interrupted. Upon return, - * the argument _level will contain the previous interrupt mask level. - */ - -#define _ISR_Disable( _level ) \ - _CPU_ISR_Disable( _level ) - -/* - * _ISR_Enable - * - * DESCRIPTION: - * - * This routine enables interrupts to the previous interrupt mask - * LEVEL. It is used at the end of a critical section of code to - * enable interrupts so they can be processed again. - */ - -#define _ISR_Enable( _level ) \ - _CPU_ISR_Enable( _level ) - -/* - * _ISR_Flash - * - * DESCRIPTION: - * - * This routine temporarily enables interrupts to the previous - * interrupt mask level and then disables all interrupts so that - * the caller can continue into the second part of a critical - * section. This routine is used to temporarily enable interrupts - * during a long critical section. It is used in long sections of - * critical code when a point is reached at which interrupts can - * be temporarily enabled. Deciding where to flash interrupts - * in a long critical section is often difficult and the point - * must be selected with care to insure that the critical section - * properly protects itself. - */ - -#define _ISR_Flash( _level ) \ - _CPU_ISR_Flash( _level ) - -/* - * _ISR_Is_in_progress - * - * DESCRIPTION: - * - * This function returns TRUE if the processor is currently servicing - * and interrupt and FALSE otherwise. A return value of TRUE indicates - * that the caller is an interrupt service routine, NOT a thread. The - * directives available to an interrupt service routine are restricted. - */ - -STATIC INLINE boolean _ISR_Is_in_progress( void ); - -/* - * _ISR_Install_vector - * - * DESCRIPTION: - * - * This routine installs new_handler as the interrupt service routine - * for the specified vector. The previous interrupt service routine is - * returned as old_handler. - */ - -#define _ISR_Install_vector( _vector, _new_handler, _old_handler ) \ - _CPU_ISR_install_vector( _vector, _new_handler, _old_handler ) - -/* - * _ISR_Set_level - * - * DESCRIPTION: - * - * This routine sets the current interrupt level to that specified - * by new_level. The new interrupt level is effective when the - * routine exits. - */ - -#define _ISR_Set_level( _new_level ) \ - _CPU_ISR_Set_level( _new_level ) - -/* - * _ISR_Is_vector_number_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the vector is a valid vector number - * for this processor and FALSE otherwise. - */ - -STATIC INLINE boolean _ISR_Is_vector_number_valid ( - rtems_vector_number vector -); - -/* - * _ISR_Is_valid_user_handler - * - * DESCRIPTION: - * - * This function returns TRUE if handler is the entry point of a valid - * use interrupt service routine and FALSE otherwise. - */ - -STATIC INLINE boolean _ISR_Is_valid_user_handler ( - void *handler -); - -/* - * _ISR_Handler - * - * DESCRIPTION: - * - * This routine is the RTEMS interrupt dispatcher. ALL interrupts - * are vectored to this routine so that minimal context can be saved - * and setup performed before the application's high-level language - * interrupt service routine is invoked. After the application's - * interrupt service routine returns control to this routine, it - * will determine if a thread dispatch is necessary. If so, it will - * insure that the necessary thread scheduling operations are - * performed when the outermost interrupt service routine exits. - * - * NOTE: Implemented in assembly language. - */ - -void _ISR_Handler( void ); - -/* - * _ISR_Dispatch - * - * DESCRIPTION: - * - * This routine provides a wrapper so that the routine - * _Thread_Dispatch can be invoked when a reschedule is necessary - * at the end of the outermost interrupt service routine. This - * wrapper is necessary to establish the processor context needed - * by _Thread_Dispatch and to save the processor context which is - * corrupted by _Thread_Dispatch. This context typically consists - * of registers which are not preserved across routine invocations. - * - * NOTE: Implemented in assembly language. - */ - -void _ISR_Dispatch( void ); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/mpci.h b/cpukit/score/include/rtems/score/mpci.h deleted file mode 100644 index ca06dd243b..0000000000 --- a/cpukit/score/include/rtems/score/mpci.h +++ /dev/null @@ -1,171 +0,0 @@ -/* mpci.h - * - * This include file contains all the constants and structures associated - * with the MPCI layer. It provides mechanisms to utilize packets. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MPCI_h -#define __RTEMS_MPCI_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include - -/* - * The following defines the node number used when a broadcast is desired. - */ - -#define MPCI_ALL_NODES 0 - -/* - * For packets associated with requests that don't already have a timeout, - * use the one specified by this MPCI driver. The value specified by - * the MPCI driver sets an upper limit on how long a remote request - * should take to complete. - */ - -#define MPCI_DEFAULT_TIMEOUT 0xFFFFFFFF - -/* - * _MPCI_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -void _MPCI_Handler_initialization ( void ); - -/* - * _MPCI_Initialization - * - * DESCRIPTION: - * - * This routine initializes the MPCI driver by - * invoking the user provided MPCI initialization callout. - */ - -void _MPCI_Initialization ( void ); - -/* - * _MPCI_Get_packet - * - * DESCRIPTION: - * - * This function obtains a packet by invoking the user provided - * MPCI get packet callout. - */ - -rtems_packet_prefix *_MPCI_Get_packet ( void ); - -/* - * _MPCI_Return_packet - * - * DESCRIPTION: - * - * This routine returns a packet by invoking the user provided - * MPCI return packet callout. - */ - -void _MPCI_Return_packet ( - rtems_packet_prefix *the_packet -); - -/* - * _MPCI_Send_process_packet - * - * DESCRIPTION: - * - * This routine sends a process packet by invoking the user provided - * MPCI send callout. - */ - -void _MPCI_Send_process_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -); - -/* - * _MPCI_Send_request_packet - * - * DESCRIPTION: - * - * This routine sends a request packet by invoking the user provided - * MPCI send callout. - */ - -rtems_status_code _MPCI_Send_request_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet, - States_Control extra_state -); - -/* - * _MPCI_Send_response_packet - * - * DESCRIPTION: - * - * This routine sends a response packet by invoking the user provided - * MPCI send callout. - */ - -void _MPCI_Send_response_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -); - -/* - * _MPCI_Receive_packet - * - * DESCRIPTION: - * - * This routine receives a packet by invoking the user provided - * MPCI receive callout. - */ - -rtems_packet_prefix *_MPCI_Receive_packet ( void ); - -/* - * _MPCI_Process_response - * - * DESCRIPTION: - * - * This routine obtains a packet by invoking the user provided - * MPCI get packet callout. - */ - -Thread_Control *_MPCI_Process_response ( - rtems_packet_prefix *the_packet -); - -/* - * The following thread queue is used to maintain a list of tasks - * which currently have outstanding remote requests. - */ - -EXTERN Thread_queue_Control _MPCI_Remote_blocked_threads; - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/mppkt.h b/cpukit/score/include/rtems/score/mppkt.h deleted file mode 100644 index e0cf6b1967..0000000000 --- a/cpukit/score/include/rtems/score/mppkt.h +++ /dev/null @@ -1,123 +0,0 @@ -/* mppkt.h - * - * This package is the specification for the Packet Handler. - * This handler defines the basic RTEMS packet and provides - * mechanisms to utilize packets based on this prefix. - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MP_PACKET_h -#define __RTEMS_MP_PACKET_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type defines the packet classes - * supported by RTEMS. - * - * NOTE: In general, each class corresponds to a manager - * which supports global operations. Each manager - * defines the set of supported operations. - */ - -typedef enum { - RTEMS_MP_PACKET_INTERNAL_THREADS = 0, - RTEMS_MP_PACKET_TASKS = 1, - RTEMS_MP_PACKET_MESSAGE_QUEUE = 2, - RTEMS_MP_PACKET_SEMAPHORE = 3, - RTEMS_MP_PACKET_PARTITION = 4, - RTEMS_MP_PACKET_REGION = 5, - RTEMS_MP_PACKET_EVENT = 6, - RTEMS_MP_PACKET_SIGNAL = 7 -} rtems_mp_packet_classes; - -#define MP_PACKET_CLASSES_FIRST RTEMS_MP_PACKET_INTERNAL_THREADS -#define MP_PACKET_CLASSES_LAST RTEMS_MP_PACKET_SIGNAL - -/* - * The following record contains the prefix for every packet - * passed between RTEMS nodes. - * - * NOTE: This structure is padded to insure that anything - * following it is on a 16 byte boundary. This is - * the most stringent structure alignment rule - * the RTEMS project has encountered yet (i960CA). - */ - -typedef struct { - rtems_mp_packet_classes the_class; - Objects_Id id; - Objects_Id source_tid; - rtems_task_priority source_priority; - rtems_status_code return_code; - unsigned32 length; - unsigned32 to_convert; - rtems_interval timeout; -} rtems_packet_prefix; - -/* - * An MPCI must support packets of at least this size. - */ - -#define RTEMS_MINIMUM_PACKET_SIZE 64 - -/* - * The following constant defines the number of unsigned32's - * in a packet which must be converted to native format in a - * heterogeneous system. In packets longer than - * RTEMS_MINIMUN_HETERO_CONVERSION unsigned32's, some of the "extra" data - * may a user message buffer which is not automatically endian swapped. - */ - -#define RTEMS_MINIMUN_HETERO_CONVERSION ( sizeof( rtems_packet_prefix ) / 4 ) - -/* - * _Mp_packet_Is_valid_packet_class - * - * DESCRIPTION: - * - * This function returns TRUE if the the_packet_class is valid, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Mp_packet_Is_valid_packet_class ( - rtems_mp_packet_classes the_packet_class -); - -/* - * _Mp_packet_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the the_packet_class is null, - * and FALSE otherwise. - */ - -STATIC INLINE boolean _Mp_packet_Is_null ( - rtems_packet_prefix *the_packet -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/object.h b/cpukit/score/include/rtems/score/object.h deleted file mode 100644 index 50eede9fd7..0000000000 --- a/cpukit/score/include/rtems/score/object.h +++ /dev/null @@ -1,380 +0,0 @@ -/* object.h - * - * This include file contains all the constants and structures associated - * with the RTEMS Object Handler. This Handler provides mechanisms which - * can be used to initialize and manipulate all RTEMS objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_OBJECTS_h -#define __RTEMS_OBJECTS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the control block used to manage - * object names. - */ - -typedef unsigned32 Objects_Name; - -/* - * The following type defines the control block used to manage - * object IDs. - */ - -typedef unsigned32 Objects_Id; - -/* - * This enumerated type lists the locations which may be returned - * by _Objects_Get. These codes indicate the success of locating - * an object with the specified ID. - */ - -typedef enum { - OBJECTS_LOCAL = 0, /* object is local */ - OBJECTS_REMOTE = 1, /* object is remote */ - OBJECTS_ERROR = 2 /* id was invalid */ -} Objects_Locations; - -/* - * The following defines the Object Control Block used to manage - * each object local to this node. - */ - -typedef struct { - Chain_Node Node; - Objects_Id id; -} Objects_Control; - -/* - * The following defines the structure for the information used to - * manage each class of objects. - */ - -typedef struct { - Objects_Id minimum_id; /* minimum valid id of this type */ - Objects_Id maximum_id; /* maximum valid id of this type */ - unsigned32 maximum; /* maximum number of objects */ - Objects_Control **local_table; /* table of local object pointers */ - Objects_Name *name_table; /* table of local object names */ - Chain_Control *global_table; /* pointer to global table */ - Chain_Control Inactive; /* chain of inactive ctl blocks */ -} Objects_Information; - -/* - * The following defines the data storage which contains the - * node number of the local node. - */ - -EXTERN unsigned32 _Objects_Local_node; - -/* - * The following defines the constant which may be used - * with _Objects_Get to manipulate the calling task. - * - */ - -#define OBJECTS_ID_OF_SELF 0 - -/* - * The following define the constants which may be used in name searches. - */ - -#define RTEMS_SEARCH_ALL_NODES 0 -#define RTEMS_SEARCH_OTHER_NODES 0x7FFFFFFE -#define RTEMS_SEARCH_LOCAL_NODE 0x7FFFFFFF -#define RTEMS_WHO_AM_I 0 - -/* - * _Objects_Handler_initialization - * - * DESCRIPTION: - * - * This function performs the initialization necessary for this handler. - * - */ - -void _Objects_Handler_initialization( - unsigned32 node, - unsigned32 maximum_global_objects -); - -/* - * _Objects_Initialize_information - * - * DESCRIPTION: - * - * This function initializes an object class information record. - * SUPPORTS_GLOBAL is TRUE if the object class supports global - * objects, and FALSE otherwise. Maximum indicates the number - * of objects required in this class and size indicates the size - * in bytes of each control block for this object class. - * - */ - -void _Objects_Initialize_information ( - Objects_Information *information, - boolean supports_global, - unsigned32 maximum, - unsigned32 size -); - -/* - * _Objects_Name_to_id - * - * DESCRIPTION: - * - * This function implements the common portion of the object - * identification directives. This directive returns the object - * id associated with name. If more than one object of this class - * is named name, then the object to which the id belongs is - * arbitrary. Node indicates the extent of the search for the - * id of the object named name. If the object class supports global - * objects, then the search can be limited to a particular node - * or allowed to encompass all nodes. - * - */ - -rtems_status_code _Objects_Name_to_id( - Objects_Information *information, - Objects_Name name, - unsigned32 node, - Objects_Id *id -); - -/* - * _Objects_Get - * - * DESCRIPTION: - * - * This function maps object ids to object control blocks. - * If id corresponds to a local object, then it returns - * the_object control pointer which maps to id and location - * is set to OBJECTS_LOCAL. If the object class supports global - * objects and the object id is global and resides on a remote - * node, then location is set to OBJECTS_REMOTE, and the_object - * is undefined. Otherwise, location is set to OBJECTS_ERROR - * and the_object is undefined. - * - */ - -Objects_Control *_Objects_Get ( - Objects_Information *information, - Objects_Id id, - Objects_Locations *location -); - -/* - * _Objects_Is_name_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the name is valid, and FALSE otherwise. - */ - -STATIC INLINE boolean _Objects_Is_name_valid ( - Objects_Name name -); - -/* - * rtems_build_name - * - * DESCRIPTION: - * - * This function returns an object name composed of the four characters - * C1, C2, C3, and C4. - * - * NOTE: - * - * This must be implemented as a macro for use in Configuration Tables. - * - */ - -#define rtems_build_name( _C1, _C2, _C3, _C4 ) \ - ( (_C1) << 24 | (_C2) << 16 | (_C3) << 8 | (_C4) ) - -/* - * rtems_name_to_characters - * - * DESCRIPTION: - * - * This function breaks the object name into the four component - * characters C1, C2, C3, and C4. - * - */ - -STATIC INLINE void rtems_name_to_characters( - Objects_Name name, - char *c1, - char *c2, - char *c3, - char *c4 -); - -/* - * _Objects_Build_id - * - * DESCRIPTION: - * - * This function builds an object's id from the processor node and index - * values specified. - * - */ - -STATIC INLINE Objects_Id _Objects_Build_id( - unsigned32 node, - unsigned32 index -); - -/* - * rtems_get_node - * - * DESCRIPTION: - * - * This function returns the node portion of the ID. - * - */ - -STATIC INLINE unsigned32 rtems_get_node( - Objects_Id id -); - -/* - * rtems_get_index - * - * DESCRIPTION: - * - * This function returns the index portion of the ID. - * - */ - -STATIC INLINE unsigned32 rtems_get_index( - Objects_Id id -); - -/* - * _Objects_Is_local_node - * - * DESCRIPTION: - * - * This function returns TRUE if the node is of the local object, and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Objects_Is_local_node( - unsigned32 node -); - -/* - * _Objects_Is_local_id - * - * DESCRIPTION: - * - * This function returns TRUE if the id is of a local object, and - * FALSE otherwise. - * - */ - -STATIC INLINE boolean _Objects_Is_local_id( - Objects_Id id -); - -/* - * _Objects_Are_ids_equal - * - * DESCRIPTION: - * - * This function returns TRUE if left and right are equal, - * and FALSE otherwise. - * - */ - -STATIC INLINE boolean _Objects_Are_ids_equal( - Objects_Id left, - Objects_Id right -); - -/* - * _Objects_Allocate - * - * DESCRIPTION: - * - * This function allocates a object control block from - * the inactive chain of free object control blocks. - * - */ - -STATIC INLINE Objects_Control *_Objects_Allocate( - Objects_Information *information -); - -/* - * _Objects_Free - * - * DESCRIPTION: - * - * This function frees a object control block to the - * inactive chain of free object control blocks. - * - */ - -STATIC INLINE void _Objects_Free( - Objects_Information *information, - Objects_Control *the_object -); - -/* - * _Objects_Open - * - * DESCRIPTION: - * - * This function places the_object control pointer and object name - * in the Local Pointer and Local Name Tables, respectively. - * - */ - -STATIC INLINE void _Objects_Open( - Objects_Information *information, - Objects_Control *the_object, - Objects_Name name -); - -/* - * _Objects_Close - * - * DESCRIPTION: - * - * This function removes the_object control pointer and object name - * in the Local Pointer and Local Name Tables. - * - */ - -STATIC INLINE void _Objects_Close( - Objects_Information *information, - Objects_Control *the_object -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/objectmp.h b/cpukit/score/include/rtems/score/objectmp.h deleted file mode 100644 index 0d29fda753..0000000000 --- a/cpukit/score/include/rtems/score/objectmp.h +++ /dev/null @@ -1,165 +0,0 @@ -/* objectmp.h - * - * This include file contains all the constants and structures associated - * with the manipulation of Global RTEMS Objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_OBJECTS_MP_h -#define __RTEMS_OBJECTS_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This defines the Global Object Control Block used to manage - * objects resident on other nodes. - */ - -typedef struct { - Objects_Control Object; - Objects_Name name; -} Objects_MP_Control; - -/* - * _Objects_MP_Handler_initialization - * - * DESCRIPTION: - * - * This routine intializes the inactive global object chain - * based on the maximum number of global objects configured. - */ - -void _Objects_MP_Handler_initialization ( - unsigned32 maximum_global_objects -); - -/* - * _Objects_MP_Allocate_global_object - * - * DESCRIPTION: - * - * This function allocates a Global Object control block. - */ - -STATIC INLINE Objects_MP_Control *_Objects_MP_Allocate_global_object ( - void -); - -/* - * _Objects_MP_Free_global_object - * - * DESCRIPTION: - * - * This routine deallocates a Global Object control block. - */ - -STATIC INLINE void _Objects_MP_Free_global_object ( - Objects_MP_Control *the_object -); - -/* - * _Objects_MP_Is_null_global_object - * - * DESCRIPTION: - * - * This function returns whether the global object is NULL or not. - */ - -STATIC INLINE boolean _Objects_MP_Is_null_global_object ( - Objects_MP_Control *the_object -); - -/* - * _Objects_MP_Open - * - * DESCRIPTION: - * - * This routine allocates a global object control block - * and places it in the specified information table. If the - * allocation fails, then is_fatal_error determines the - * error processing actions taken. - */ - -boolean _Objects_MP_Open ( - Objects_Information *information, - Objects_Name the_name, - Objects_Id the_id, - boolean is_fatal_error -); - -/* - * _Objects_MP_Close - * - * DESCRIPTION: - * - * This routine removes a global object from the specified - * information table and deallocates the global object control block. - */ - -void _Objects_MP_Close ( - Objects_Information *information, - Objects_Id the_id -); - -/* - * _Objects_MP_Global_name_search - * - * DESCRIPTION: - * - * This routine looks for the object with the_name in the global - * object tables indicated by information. It returns the ID of the - * object with that name if one is found. - */ - -rtems_status_code _Objects_MP_Global_name_search ( - Objects_Information *information, - Objects_Name the_name, - unsigned32 nodes_to_search, - Objects_Id *the_id -); - -/* - * _Objects_MP_Is_remote - * - * DESCRIPTION: - * - * This function searches the Global Object Table managed - * by information for the object indicated by ID. If the object - * is found, then location is set to objects_remote, otherwise - * location is set to objects_error. In both cases, the_object - * is undefined. - */ - -void _Objects_MP_Is_remote ( - Objects_Information *information, - Objects_Id the_id, - Objects_Locations *location, - Objects_Control **the_object -); - -/* - * The following chain header is used to manage the set of - * inactive global object control blocks. - */ - -EXTERN Chain_Control _Objects_MP_Inactive_global_objects; - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/priority.h b/cpukit/score/include/rtems/score/priority.h deleted file mode 100644 index 823611b080..0000000000 --- a/cpukit/score/include/rtems/score/priority.h +++ /dev/null @@ -1,195 +0,0 @@ -/* priority.h - * - * This include file contains all thread priority manipulation routines. - * This Handler provides mechanisms which can be used to - * initialize and manipulate RTEMS priorities. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_PRIORITY_h -#define __RTEMS_PRIORITY_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage - * thread priorities. - * - * NOTE: Priority 0 is reserved for internal threads only. - */ - -typedef unsigned32 rtems_task_priority; - -#define RTEMS_MINIMUM_PRIORITY 1 /* highest thread priority */ -#define RTEMS_MAXIMUM_PRIORITY 255 /* lowest thread priority */ - -/* - * The following record defines the information associated with - * each thread to manage its interaction with the priority bit maps. - */ - -typedef struct { - Priority_Bit_map_control *minor; /* addr of minor bit map slot */ - Priority_Bit_map_control ready_major; /* priority bit map ready mask */ - Priority_Bit_map_control ready_minor; /* priority bit map ready mask */ - Priority_Bit_map_control block_major; /* priority bit map block mask */ - Priority_Bit_map_control block_minor; /* priority bit map block mask */ -} Priority_Information; - -/* - * The following data items are the priority bit map. - * Each of the sixteen bits used in the _Priority_Major_bit_map is - * associated with one of the sixteen entries in the _Priority_Bit_map. - * Each bit in the _Priority_Bit_map indicates whether or not there are - * threads ready at a particular priority. The mapping of - * individual priority levels to particular bits is processor - * dependent as is the value of each bit used to indicate that - * threads are ready at that priority. - */ - -EXTERN volatile Priority_Bit_map_control _Priority_Major_bit_map; -EXTERN Priority_Bit_map_control _Priority_Bit_map[16] CPU_STRUCTURE_ALIGNMENT; - -/* - * The following constants are useful when manipulating priority. - */ - -#define RTEMS_CURRENT_PRIORITY 0 /* obtain current priority */ - -/* - * The definition of the Priority_Bit_map_control type is CPU dependent. - * - */ - -/* - * _Priority_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _Priority_Handler_initialization( void ); - -/* - * _Priority_Is_valid - * - * DESCRIPTION: - * - * This function returns TRUE if the_priority if valid for a - * user task, and FALSE otherwise. - */ - -STATIC INLINE boolean _Priority_Is_valid ( - rtems_task_priority the_priority -); - -/* - * _Priority_Major - * - * DESCRIPTION: - * - * This function returns the major portion of the_priority. - */ - -STATIC INLINE unsigned32 _Priority_Major ( - rtems_task_priority the_priority -); - -/* - * _Priority_Minor - * - * DESCRIPTION: - * - * This function returns the minor portion of the_priority. - */ - -STATIC INLINE unsigned32 _Priority_Minor ( - rtems_task_priority the_priority -); - -/* - * _Priority_Add_to_bit_map - * - * DESCRIPTION: - * - * This routine uses the_priority_map to update the priority - * bit maps to indicate that a thread has been readied. - */ - -STATIC INLINE void _Priority_Add_to_bit_map ( - Priority_Information *the_priority_map -); - -/* - * _Priority_Remove_from_bit_map - * - * DESCRIPTION: - * - * This routine uses the_priority_map to update the priority - * bit maps to indicate that a thread has been removed from the - * ready state. - */ - -STATIC INLINE void _Priority_Remove_from_bit_map ( - Priority_Information *the_priority_map -); - -/* - * _Priority_Get_highest - * - * DESCRIPTION: - * - * This function returns the priority of the highest priority - * ready thread. - */ - -STATIC INLINE rtems_task_priority _Priority_Get_highest( void ); - -/* - * _Priority_Initialize_information - * - * DESCRIPTION: - * - * This routine initializes the_priority_map so that it - * contains the information necessary to manage a thread - * at new_priority. - */ - -STATIC INLINE void _Priority_Initialize_information( - Priority_Information *the_priority_map, - rtems_task_priority new_priority -); - -/* - * _Priority_Is_group_empty - * - * DESCRIPTION: - * - * This function returns TRUE if the priority GROUP is empty, and - * FALSE otherwise. - */ - -STATIC INLINE boolean _Priority_Is_group_empty ( - rtems_task_priority the_priority -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/stack.h b/cpukit/score/include/rtems/score/stack.h deleted file mode 100644 index a0fce1ef04..0000000000 --- a/cpukit/score/include/rtems/score/stack.h +++ /dev/null @@ -1,95 +0,0 @@ -/* stack.h - * - * This include file contains all information about the thread - * Stack Handler. This Handler provides mechanisms which can be used to - * initialize and utilize stacks. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_STACK_h -#define __RTEMS_STACK_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following constant defines the minimum stack size which every - * thread must exceed. - */ - -#define RTEMS_MINIMUM_STACK_SIZE CPU_STACK_MINIMUM_SIZE - -/* - * The following defines the control block used to manage each stack. - */ - -typedef struct { - unsigned32 size; /* stack size */ - void *area; /* low memory addr of stack */ -} Stack_Control; - -/* - * _Stack_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_stack record to indicate that - * size bytes of memory starting at starting_address have been - * reserved for a stack. - */ - -STATIC INLINE void _Stack_Initialize ( - Stack_Control *the_stack, - void *starting_address, - unsigned32 size -); - -/* - * _Stack_Is_enough - * - * DESCRIPTION: - * - * This function returns TRUE if size bytes is enough memory for - * a valid stack area on this processor, and FALSE otherwise. - */ - -STATIC INLINE boolean _Stack_Is_enough ( - unsigned32 size -); - -/* - * _Stack_Adjust_size - * - * DESCRIPTION: - * - * This function increases the stack size to insure that the thread - * has the desired amount of stack space after the initial stack - * pointer is determined based on alignment restrictions. - * - * NOTE: - * - * The amount of adjustment for alignment is CPU dependent. - */ - -STATIC INLINE unsigned32 _Stack_Adjust_size ( - unsigned32 size -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/states.h b/cpukit/score/include/rtems/score/states.h deleted file mode 100644 index 56f67ecc49..0000000000 --- a/cpukit/score/include/rtems/score/states.h +++ /dev/null @@ -1,337 +0,0 @@ -/* states.h - * - * This include file contains all RTEMS state information. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_STATES_h -#define __RTEMS_STATES_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following type defines the control block used to manage a - * thread's state. - */ - -typedef unsigned32 States_Control; - -/* - * The following constants define the individual states which may be - * be used to compose and manipulate a thread's state. - */ - -#define STATES_ALL_SET 0xffff /* all states */ -#define STATES_READY 0x0000 /* ready to run */ -#define STATES_DORMANT 0x0001 /* created but not started */ -#define STATES_SUSPENDED 0x0002 /* waiting to be resumed */ -#define STATES_TRANSIENT 0x0004 /* thread in transition */ -#define STATES_DELAYING 0x0008 /* wait for timeout */ -#define STATES_WAITING_FOR_BUFFER 0x0010 /* wait for partition buffer */ -#define STATES_WAITING_FOR_SEGMENT 0x0020 /* wait for region segment */ -#define STATES_WAITING_FOR_MESSAGE 0x0040 /* wait for message */ -#define STATES_WAITING_FOR_EVENT 0x0080 /* wait for event */ -#define STATES_WAITING_FOR_SEMAPHORE 0x0100 /* wait for semaphore */ -#define STATES_WAITING_FOR_TIME 0x0200 /* wait for specific TOD */ -#define STATES_WAITING_FOR_RPC_REPLY 0x0400 /* wait for rpc reply */ -#define STATES_WAITING_FOR_PERIOD 0x0800 /* rate monotonic delay */ - -#define STATES_LOCALLY_BLOCKED ( STATES_WAITING_FOR_BUFFER | \ - STATES_WAITING_FOR_SEGMENT | \ - STATES_WAITING_FOR_MESSAGE | \ - STATES_WAITING_FOR_SEMAPHORE ) - -#define STATES_WAITING_ON_THREAD_QUEUE \ - ( STATES_LOCALLY_BLOCKED | \ - STATES_WAITING_FOR_RPC_REPLY ) - -#define STATES_BLOCKED ( STATES_DELAYING | \ - STATES_WAITING_FOR_TIME | \ - STATES_WAITING_FOR_PERIOD | \ - STATES_WAITING_FOR_EVENT | \ - STATES_WAITING_ON_THREAD_QUEUE ) - -/* - * _States_Set - * - * DESCRIPTION: - * - * This function sets the given states_to_set into the current_state - * passed in. The result is returned to the user in current_state. - */ - -STATIC INLINE States_Control _States_Set ( - States_Control states_to_set, - States_Control current_state -); - -/* - * _States_Clear - * - * DESCRIPTION: - * - * This function clears the given states_to_clear into the current_state - * passed in. The result is returned to the user in current_state. - */ - -STATIC INLINE States_Control _States_Clear ( - States_Control states_to_clear, - States_Control current_state -); - -/* - * _States_Is_ready - * - * DESCRIPTION: - * - * This function returns TRUE if the_states indicates that the - * state is READY, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_ready ( - States_Control the_states -); - -/* - * _States_Is_only_dormant - * - * DESCRIPTION: - * - * This function returns TRUE if the DORMANT state is the ONLY state - * set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_only_dormant ( - States_Control the_states -); - -/* - * _States_Is_dormant - * - * DESCRIPTION: - * - * This function returns TRUE if the DORMANT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_dormant ( - States_Control the_states -); - -/* - * _States_Is_suspended - * - * DESCRIPTION: - * - * This function returns TRUE if the SUSPENDED state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_suspended ( - States_Control the_states -); - -/* - * _States_Is_Transient - * - * DESCRIPTION: - * - * This function returns TRUE if the TRANSIENT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_transient ( - States_Control the_states -); - -/* - * _States_Is_delaying - * - * DESCRIPTION: - * - * This function returns TRUE if the DELAYING state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_delaying ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_buffer - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_BUFFER state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_buffer ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_segment - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_SEGMENT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_segment ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_message - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_MESSAGE state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_message ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_event - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_EVENT state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_event ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_semaphore - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_SEMAPHORE state - * is set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_semaphore ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_time - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_TIME state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_time ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_rpc_reply - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_TIME state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_rpc_reply ( - States_Control the_states -); - -/* - * _States_Is_waiting_for_period - * - * DESCRIPTION: - * - * This function returns TRUE if the WAITING_FOR_PERIOD state is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_for_period ( - States_Control the_states -); - -/* - * _States_Is_locally_blocked - * - * DESCRIPTION: - * - * This function returns TRUE if one of the states which indicates - * that a task is blocked waiting for a local resource is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_locally_blocked ( - States_Control the_states -); - -/* - * _States_Is_waiting_on_thread_queue - * - * DESCRIPTION: - * - * This function returns TRUE if one of the states which indicates - * that a task is blocked waiting for a local resource is set in - * the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_waiting_on_thread_queue ( - States_Control the_states -); - -/* - * _States_Is_blocked - * - * DESCRIPTION: - * - * This function returns TRUE if one of the states which indicates - * that a task is blocked is set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Is_blocked ( - States_Control the_states -); - -/* - * _States_Are_set - * - * DESCRIPTION: - * - * This function returns TRUE if any of the states in the mask - * are set in the_states, and FALSE otherwise. - */ - -STATIC INLINE boolean _States_Are_set ( - States_Control the_states, - States_Control mask -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/sysstate.h b/cpukit/score/include/rtems/score/sysstate.h deleted file mode 100644 index 511a26cefc..0000000000 --- a/cpukit/score/include/rtems/score/sysstate.h +++ /dev/null @@ -1,143 +0,0 @@ -/* sysstates.h - * - * This include file contains information regarding the system state. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SYSTEM_STATE_h -#define __RTEMS_SYSTEM_STATE_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* types */ - -/* enumerated constants */ - -/* - * The following type defines the possible system states. - */ - -typedef enum { - SYSTEM_STATE_BEFORE_INITIALIZATION, /* start -> end of 1st init part */ - SYSTEM_STATE_BEFORE_MULTITASKING, /* end of 1st -> beginning of 2nd */ - SYSTEM_STATE_BEGIN_MULTITASKING, /* beginning of 2nd -> end of SYSI */ - SYSTEM_STATE_UP, /* normal operation */ - SYSTEM_STATE_FAILED /* fatal error occurred */ -} System_state_Codes; - -#define SYSTEM_STATE_CODES_FIRST SYSTEM_STATE_BEFORE_INITIALIZATION -#define SYSTEM_STATE_CODES_LAST SYSTEM_STATE_FAILED - -/* - * The following variable contains the current system state. - */ - -EXTERN System_state_Codes _System_state_Current; - -/* - * _System_state_Set - * - * DESCRIPTION: - * - * This routine sets the current system state to that specified by - * the called. - */ - -STATIC INLINE void _System_state_Set ( - System_state_Codes state -); - -/* - * _System_state_Get - * - * DESCRIPTION: - * - * This function returns the current system state. - */ - -STATIC INLINE System_state_Codes _System_state_Get ( void ); - -/* - * _System_state_Is_before_initialization - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "before initialization" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_before_initialization ( - System_state_Codes state -); - -/* - * _System_state_Is_before_multitasking - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "before multitasking" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_before_multitasking ( - System_state_Codes state -); - -/* - * _System_state_Is_begin_multitasking - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "begin multitasking" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_begin_multitasking ( - System_state_Codes state -); - -/* - * _System_state_Is_up - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "up" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_up ( - System_state_Codes state -); - -/* - * _System_state_Is_failed - * - * DESCRIPTION: - * - * This function returns TRUE if the state is equal to the - * "failed" state, and FALSE otherwise. - */ - -STATIC INLINE boolean _System_state_Is_failed ( - System_state_Codes state -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/thread.h b/cpukit/score/include/rtems/score/thread.h deleted file mode 100644 index de07a721ef..0000000000 --- a/cpukit/score/include/rtems/score/thread.h +++ /dev/null @@ -1,721 +0,0 @@ -/* thread.h - * - * This include file contains all constants and structures associated - * with the thread control block. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_h -#define __RTEMS_THREAD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Notepads constants (indices into notepad array) - */ - -#define RTEMS_NOTEPAD_FIRST 0 /* lowest numbered notepad */ -#define RTEMS_NOTEPAD_0 0 /* notepad location 0 */ -#define RTEMS_NOTEPAD_1 1 /* notepad location 1 */ -#define RTEMS_NOTEPAD_2 2 /* notepad location 2 */ -#define RTEMS_NOTEPAD_3 3 /* notepad location 3 */ -#define RTEMS_NOTEPAD_4 4 /* notepad location 4 */ -#define RTEMS_NOTEPAD_5 5 /* notepad location 5 */ -#define RTEMS_NOTEPAD_6 6 /* notepad location 6 */ -#define RTEMS_NOTEPAD_7 7 /* notepad location 7 */ -#define RTEMS_NOTEPAD_8 8 /* notepad location 8 */ -#define RTEMS_NOTEPAD_9 9 /* notepad location 9 */ -#define RTEMS_NOTEPAD_10 10 /* notepad location 10 */ -#define RTEMS_NOTEPAD_11 11 /* notepad location 11 */ -#define RTEMS_NOTEPAD_12 12 /* notepad location 12 */ -#define RTEMS_NOTEPAD_13 13 /* notepad location 13 */ -#define RTEMS_NOTEPAD_14 14 /* notepad location 14 */ -#define RTEMS_NOTEPAD_15 15 /* notepad location 15 */ -#define RTEMS_NOTEPAD_LAST RTEMS_NOTEPAD_15 /* highest numbered notepad */ - -/* - * The following defines the "return type" of an RTEMS thread. - * - * NOTE: Keep both types for internal threads. - */ - -typedef void rtems_task; -typedef void Thread; - -/* - * The following defines the argument to an RTEMS thread. - */ - -typedef unsigned32 rtems_task_argument; -typedef unsigned32 Thread_Argument; - -/* - * The following defines the type for the entry point of an RTEMS thread. - */ - -typedef rtems_task ( *rtems_task_entry )( - rtems_task_argument - ); - -typedef Thread ( *Thread_Entry )( - Thread_Argument - ); - -/* - * The following structure contains the information which defines - * the starting state of a thread. - */ - -typedef struct { - Thread_Entry entry_point; /* starting thread address */ - unsigned32 initial_argument; /* initial argument */ - rtems_mode initial_modes; /* initial mode */ - rtems_task_priority initial_priority; /* initial priority */ - void *fp_context; /* initial FP context area address */ - Stack_Control Initial_stack; /* stack information */ -} Thread_Start_information; - -/* - * The following structure contains the information necessary to manage - * a thread which it is waiting for a resource. - */ - -typedef struct { - Objects_Id id; /* waiting on this object */ - rtems_option option_set; /* wait mode */ - union { - unsigned32 segment_size; /* size of segment requested */ - rtems_event_set event_condition; - } Extra; - void *return_argument; /* address of user return param */ - rtems_status_code return_code; /* status for thread awakened */ - Chain_Control Block2n; /* 2 - n priority blocked chain */ - Thread_queue_Control *queue; /* pointer to thread queue */ -} Thread_Wait_information; - -/* - * The following defines the control block used to manage - * each thread proxy. - * - * NOTE: It is critical that proxies and threads have identical - * memory images for the shared part. - */ - -typedef struct { - Objects_Control Object; - Objects_Name name; - States_Control current_state; - rtems_task_priority current_priority; - rtems_task_priority real_priority; - unsigned32 resource_count; - Thread_Wait_information Wait; - Watchdog_Control Timer; - rtems_packet_prefix *receive_packet; - /****************** end of common block ********************/ - Chain_Node Active; -} Thread_Proxy_control; - - -/* - * The following record defines the control block used - * to manage each thread. - * - * NOTE: It is critical that proxies and threads have identical - * memory images for the shared part. - */ - -typedef struct { - Objects_Control Object; - Objects_Name name; - States_Control current_state; - rtems_task_priority current_priority; - rtems_task_priority real_priority; - unsigned32 resource_count; - Thread_Wait_information Wait; - Watchdog_Control Timer; - rtems_packet_prefix *receive_packet; - /****************** end of common block ********************/ - Chain_Control *ready; - Priority_Information Priority_map; - rtems_event_set pending_events; - rtems_event_set events_out; - Thread_Start_information Start; - ASR_Information Signal; - rtems_mode current_modes; - rtems_attribute attribute_set; - Context_Control Registers; - void *fp_context; - unsigned32 Notepads[ 16 ]; - void *extension; -} Thread_Control; - -/* - * External API name for Thread_Control - */ - -typedef Thread_Control rtems_tcb; - -/* - * The following declares the dispatch critical section nesting - * counter which is used to prevent context switches at inopportune - * moments. - */ - -EXTERN unsigned32 _Thread_Dispatch_disable_level; - -/* - * The following data items are used to manage timeslicing. - */ - -EXTERN unsigned32 _Thread_Ticks_remaining_in_timeslice; -EXTERN unsigned32 _Thread_Ticks_per_timeslice; - -/* - * The following points to the array of FIFOs used to manage the - * set of ready threads. - */ - -EXTERN Chain_Control *_Thread_Ready_chain; - -/* - * The following points to the thread which is currently executing. - * This thread is implicitly manipulated by numerous directives. - */ - -EXTERN Thread_Control *_Thread_Executing; - -/* - * The following points to the highest priority ready thread - * in the system. Unless the current thread is RTEMS_NO_PREEMPT, - * then this thread will be context switched to when the next - * dispatch occurs. - */ - -EXTERN Thread_Control *_Thread_Heir; - -/* - * The following points to the thread whose floating point - * context is currently loaded. - */ - -EXTERN Thread_Control *_Thread_Allocated_fp; - -/* - * The following defines the information control block used to - * manage this class of objects. - */ - -EXTERN Objects_Information _Thread_Information; - -/* - * The following context area contains the context of the "thread" - * which invoked rtems_initialize_executive. This context is restored - * as the last action of the rtems_shutdown_executive directive. Thus - * control of the processor can be returned to the environment - * which initiated RTEMS. - */ - -EXTERN Context_Control _Thread_BSP_context; - -/* - * _Thread_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -void _Thread_Handler_initialization ( - unsigned32 maximum_tasks, - unsigned32 ticks_per_timeslice, - unsigned32 maximum_proxies -); - -/* - * _Thread_Start_multitasking - * - * DESCRIPTION: - * - * This routine initiates multitasking. It is invoked only as - * part of initialization and its invocation is the last act of - * the rtems_initialize_executive directive. - */ - -void _Thread_Start_multitasking ( - Thread_Control *system_thread, - Thread_Control *idle_thread -); - -/* - * _Thread_Stop_multitasking - * - * DESCRIPTION: - * - * This routine halts multitasking and returns control to - * the "thread" which initially invoked the rtems_initialize_executive - * directive. - */ - -STATIC INLINE void _Thread_Stop_multitasking( void ); - -/* - * _Thread_Dispatch_initialization - * - * DESCRIPTION: - * - * This routine initializes the thread dispatching subsystem. - */ - -STATIC INLINE void _Thread_Dispatch_initialization( void ); - -/* - * _Thread_Dispatch - * - * DESCRIPTION: - * - * This routine is responsible for transferring control of the - * processor from the executing thread to the heir thread. As part - * of this process, it is responsible for the following actions: - * - * + saving the context of the executing thread - * + restoring the context of the heir thread - * + dispatching any signals for the resulting executing thread - */ - -void _Thread_Dispatch( void ); - -/* - * _Thread_Ready - * - * DESCRIPTION: - * - * This routine removes any set states for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -void _Thread_Ready( - Thread_Control *the_thread -); - -/* - * _Thread_Clear_state - * - * DESCRIPTION: - * - * This routine clears the indicated STATES for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -void _Thread_Clear_state( - Thread_Control *the_thread, - States_Control state -); - -/* - * _Thread_Set_state - * - * DESCRIPTION: - * - * This routine sets the indicated states for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - * - */ - -void _Thread_Set_state( - Thread_Control *the_thread, - States_Control state -); - -/* - * _Thread_Set_transient - * - * DESCRIPTION: - * - * This routine sets the TRANSIENT state for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -void _Thread_Set_transient( - Thread_Control *the_thread -); - -/* - * _Thread_Reset_timeslice - * - * DESCRIPTION: - * - * This routine is invoked upon expiration of the currently - * executing thread's timeslice. If no other thread's are ready - * at the priority of the currently executing thread, then the - * executing thread's timeslice is reset. Otherwise, the - * currently executing thread is placed at the rear of the - * RTEMS_FIFO for this priority and a new heir is selected. - */ - -void _Thread_Reset_timeslice( void ); - -/* - * _Thread_Tickle_timeslice - * - * DESCRIPTION: - * - * This routine is invoked as part of processing each clock tick. - * It is responsible for determining if the current thread allows - * timeslicing and, if so, when its timeslice expires. - */ - -void _Thread_Tickle_timeslice( void ); - -/* - * _Thread_Yield_processor - * - * DESCRIPTION: - * - * This routine is invoked when a thread wishes to voluntarily - * transfer control of the processor to another thread of equal - * or greater priority. - */ - -void _Thread_Yield_processor( void ); - -/* - * _Thread_Is_executing - * - * DESCRIPTION: - * - * This function returns TRUE if the_thread is the currently executing - * thread, and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_executing ( - Thread_Control *the_thread -); - -/* - * _Thread_Is_heir - * - * DESCRIPTION: - * - * This function returns TRUE if the_thread is the heir - * thread, and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_executing ( - Thread_Control *the_thread -); - -/* - * _Thread_Is_executing_also_the_heir - * - * DESCRIPTION: - * - * This function returns TRUE if the currently executing thread - * is also the heir thread, and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_executing_also_the_heir( void ); - -/* - * _Thread_Load_environment - * - * DESCRIPTION: - * - * This routine initializes the context of the_thread to its - * appropriate starting state. - */ - -void _Thread_Load_environment( - Thread_Control *the_thread -); - -/* - * _Thread_Handler - * - * DESCRIPTION: - * - * This routine is the wrapper function for all threads. It is - * the starting point for all threads. The user provided thread - * entry point is invoked by this routine. Operations - * which must be performed immediately before and after the user's - * thread executes are found here. - */ - -void _Thread_Handler( void ); - -/* - * _Thread_Delay_ended - * - * DESCRIPTION: - * - * This routine is invoked when a thread must be unblocked at the - * end of a delay such as the rtems_task_wake_after and rtems_task_wake_when - * directives. - */ - -void _Thread_Delay_ended( - Objects_Id id, - void *ignored -); - -/* - * _Thread_Change_priority - * - * DESCRIPTION: - * - * This routine changes the current priority of the_thread to - * new_priority. It performs any necessary scheduling operations - * including the selection of a new heir thread. - */ - -void _Thread_Change_priority ( - Thread_Control *the_thread, - rtems_task_priority new_priority -); - -/* - * _Thread_Set_priority - * - * DESCRIPTION: - * - * This routine updates the priority related fields in the_thread - * control block to indicate the current priority is now new_priority. - */ - -void _Thread_Set_priority( - Thread_Control *the_thread, - rtems_task_priority new_priority -); - -/* - * _Thread_Change_mode - * - * DESCRIPTION: - * - * This routine changes the current values of the modes - * indicated by mask of the calling thread are changed to that - * indicated in mode_set. The former mode of the thread is - * returned in mode_set. If the changes in the current mode - * indicate that a thread dispatch operation may be necessary, - * then need_dispatch is TRUE, otherwise it is FALSE. - */ - -boolean _Thread_Change_mode( - rtems_mode new_mode_set, - rtems_mode mask, - rtems_mode *old_mode_set -); - -/* - * _Thread_Resume - * - * DESCRIPTION: - * - * This routine clears the SUSPENDED state for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -STATIC INLINE void _Thread_Resume ( - Thread_Control *the_thread -); - -/* - * _Thread_Unblock - * - * DESCRIPTION: - * - * This routine clears any blocking state for the_thread. It performs - * any necessary scheduling operations including the selection of - * a new heir thread. - */ - -STATIC INLINE void _Thread_Unblock ( - Thread_Control *the_thread -); - -/* - * _Thread_Restart_self - * - * DESCRIPTION: - * - * This routine resets the current context of the calling thread - * to that of its initial state. - */ - -STATIC INLINE void _Thread_Restart_self( void ); - -/* - * _Thread_Calculate_heir - * - * DESCRIPTION: - * - * This function returns a pointer to the highest priority - * ready thread. - */ - -STATIC INLINE void _Thread_Calculate_heir( void ); - -/* - * _Thread_Is_allocated_fp - * - * DESCRIPTION: - * - * This function returns TRUE if the floating point context of - * the_thread is currently loaded in the floating point unit, and - * FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_allocated_fp ( - Thread_Control *the_thread -); - -/* - * _Thread_Deallocate_fp - * - * DESCRIPTION: - * - * This routine is invoked when the currently loaded floating - * point context is now longer associated with an active thread. - */ - -STATIC INLINE void _Thread_Deallocate_fp( void ); - -/* - * _Thread_Disable_dispatch - * - * DESCRIPTION: - * - * This routine prevents dispatching. - */ - -STATIC INLINE void _Thread_Disable_dispatch( void ); - -/* - * _Thread_Enable_dispatch - * - * DESCRIPTION: - * - * This routine allows dispatching to occur again. If this is - * the outer most dispatching critical section, then a dispatching - * operation will be performed and, if necessary, control of the - * processor will be transferred to the heir thread. - */ - -#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE ) - -STATIC INLINE void _Thread_Enable_dispatch(); - -#endif - -#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE ) - -void _Thread_Enable_dispatch( void ); - -#endif - -/* - * _Thread_Unnest_dispatch - * - * DESCRIPTION: - * - * This routine allows dispatching to occur again. However, - * no dispatching operation is performed even if this is the outer - * most dispatching critical section. - */ - -STATIC INLINE void _Thread_Unnest_dispatch( void ); - -/* - * _Thread_Is_dispatching_enabled - * - * DESCRIPTION: - * - * This function returns TRUE if dispatching is disabled, and FALSE - * otherwise. - */ - -STATIC INLINE boolean _Thread_Is_dispatching_enabled( void ); - -/* - * _Thread_Is_context_switch_necessary - * - * DESCRIPTION: - * - * This function returns TRUE if dispatching is disabled, and FALSE - * otherwise. - */ - -STATIC INLINE boolean _Thread_Is_context_switch_necessary( void ); - -/* - * _Thread_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_thread is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Thread_Is_null ( - Thread_Control *the_thread -); - -/* - * _Thread_Get - * - * DESCRIPTION: - * - * This function maps thread IDs to thread control - * blocks. If ID corresponds to a local thread, then it - * returns the_thread control pointer which maps to ID - * and location is set to OBJECTS_LOCAL. If the thread ID is - * global and resides on a remote node, then location is set - * to OBJECTS_REMOTE, and the_thread is undefined. - * Otherwise, location is set to OBJECTS_ERROR and - * the_thread is undefined. - */ - -STATIC INLINE Thread_Control *_Thread_Get ( - Objects_Id id, - Objects_Locations *location -); - -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/threadmp.h b/cpukit/score/include/rtems/score/threadmp.h deleted file mode 100644 index c6e8252030..0000000000 --- a/cpukit/score/include/rtems/score/threadmp.h +++ /dev/null @@ -1,134 +0,0 @@ -/* threadmp.h - * - * This include file contains the specification for all routines - * and data specific to the multiprocessing portion of the thread package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_MP_h -#define __RTEMS_THREAD_MP_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * _Thread_MP_Handler_initialization - * - * DESCRIPTION: - * - * This package is the specification for the Thread Handler's - * multiprocessing specific support routines. - */ - -void _Thread_MP_Handler_initialization ( - unsigned32 maximum_proxies -); - -/* - * _Thread_MP_Is_receive - * - * DESCRIPTION: - * - * This function returns true if the thread in question is the - * multiprocessing receive thread. - */ - -STATIC INLINE boolean _Thread_MP_Is_receive ( - Thread_Control *the_thread -); - -/* - * _Thread_MP_Allocate_proxy - * - * DESCRIPTION: - * - * This allocates a proxy control block from - * the inactive chain of free proxy control blocks. - * - * NOTE: This function returns a thread control pointer - * because proxies are substitutes for remote threads. - */ - -Thread_Control *_Thread_MP_Allocate_proxy ( - States_Control the_state -); - -/* - * _Thread_MP_Free_proxy - * - * DESCRIPTION: - * - * This routine frees a proxy control block to the - * inactive chain of free proxy control blocks. - */ - -STATIC INLINE void _Thread_MP_Free_proxy ( - Thread_Control *the_thread -); - -/* - * _Thread_MP_Find_proxy - * - * DESCRIPTION: - * - * This function removes the proxy control block for the specified - * id from the active chain of proxy control blocks. - */ - -Thread_Control *_Thread_MP_Find_proxy ( - Objects_Id the_id -); - -/* - * _Thread_MP_Block - * - * DESCRIPTION: - * - * This routine blocks the MP Receive server thread. - */ - -void _Thread_MP_Block( void ); - -/* - * _Thread_MP_Ready - * - * DESCRIPTION: - * - * This routine readies the MP Receive server thread. - */ - -void _Thread_MP_Ready( void ); - -/* - * The following is used to determine when the multiprocessing receive - * thread is executing so that a proxy can be allocated instead of - * blocking the multiprocessing receive thread. - */ - -EXTERN Thread_Control *_Thread_MP_Receive; - -/* - * The following chains are used to manage proxies. - */ - -EXTERN Chain_Control _Thread_MP_Active_proxies; -EXTERN Chain_Control _Thread_MP_Inactive_proxies; - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/threadq.h b/cpukit/score/include/rtems/score/threadq.h deleted file mode 100644 index 291044ead1..0000000000 --- a/cpukit/score/include/rtems/score/threadq.h +++ /dev/null @@ -1,264 +0,0 @@ -/* threadq.h - * - * This include file contains all the constants and structures associated - * with the manipulation of objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_QUEUE_h -#define __RTEMS_THREAD_QUEUE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#include -#include -#include - -/* - * The following type defines the callout used when a remote task - * is extracted from a local thread queue. - */ - -typedef void ( *Thread_queue_Flush_callout )( - Thread_Control * - ); - -/* - * _Thread_queue_Dequeue - * - * DESCRIPTION: - * - * This function returns a pointer to a thread waiting on - * the_thread_queue. The selection of this thread is based on - * the discipline of the_thread_queue. If no threads are waiting - * on the_thread_queue, then NULL is returned. - */ - -Thread_Control *_Thread_queue_Dequeue( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Enqueue - * - * DESCRIPTION: - * - * This routine enqueues the currently executing thread on - * the_thread_queue with an optional timeout. - */ - -void _Thread_queue_Enqueue( - Thread_queue_Control *the_thread_queue, - rtems_interval timeout -); - -/* - * _Thread_queue_Extract - * - * DESCRIPTION: - * - * This routine removes the_thread from the_thread_queue - * and cancels any timeouts associated with this blocking. - */ - -void _Thread_queue_Extract( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -); - -/* - * _Thread_queue_First - * - * DESCRIPTION: - * - * This function returns a pointer to the "first" thread - * on the_thread_queue. The "first" thread is selected - * based on the discipline of the_thread_queue. - */ - -Thread_Control *_Thread_queue_First( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Flush - * - * DESCRIPTION: - * - * This routine unblocks all threads blocked on the_thread_queue - * and cancels any associated timeouts. - */ - -void _Thread_queue_Flush( - Thread_queue_Control *the_thread_queue, - Thread_queue_Flush_callout remote_extract_callout -); - -/* - * _Thread_queue_Initialize - * - * DESCRIPTION: - * - * This routine initializes the_thread_queue based on the - * discipline indicated in attribute_set. The state set on - * threads which block on the_thread_queue is state. - */ - -void _Thread_queue_Initialize( - Thread_queue_Control *the_thread_queue, - rtems_attribute attribute_set, - States_Control state -); - -/* - * _Thread_queue_Dequeue_priority - * - * DESCRIPTION: - * - * This function returns a pointer to the highest priority - * thread waiting on the_thread_queue. If no threads are waiting - * on the_thread_queue, then NULL is returned. - */ - -Thread_Control *_Thread_queue_Dequeue_priority( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Enqueue_priority - * - * DESCRIPTION: - * - * This routine enqueues the currently executing thread on - * the_thread_queue with an optional timeout using the - * priority discipline. - */ - -void _Thread_queue_Enqueue_priority( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread, - rtems_interval timeout -); - -/* - * _Thread_queue_Extract_priority - * - * DESCRIPTION: - * - * This routine removes the_thread from the_thread_queue - * and cancels any timeouts associated with this blocking. - */ - -void _Thread_queue_Extract_priority( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -); - -/* - * _Thread_queue_First_priority - * - * DESCRIPTION: - * - * This function returns a pointer to the "first" thread - * on the_thread_queue. The "first" thread is the highest - * priority thread waiting on the_thread_queue. - */ - -Thread_Control *_Thread_queue_First_priority( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Dequeue_FIFO - * - * DESCRIPTION: - * - * This function returns a pointer to the thread which has - * been waiting the longest on the_thread_queue. If no - * threads are waiting on the_thread_queue, then NULL is returned. - */ - -Thread_Control *_Thread_queue_Dequeue_fifo( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_Enqueue_FIFO - * - * DESCRIPTION: - * - * This routine enqueues the currently executing thread on - * the_thread_queue with an optional timeout using the - * RTEMS_FIFO discipline. - */ - -void _Thread_queue_Enqueue_fifo( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread, - rtems_interval timeout -); - -/* - * _Thread_queue_Extract_FIFO - * - * DESCRIPTION: - * - * This routine removes the_thread from the_thread_queue - * and cancels any timeouts associated with this blocking. - */ - -void _Thread_queue_Extract_fifo( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -); - -/* - * _Thread_queue_First_FIFO - * - * DESCRIPTION: - * - * This function returns a pointer to the "first" thread - * on the_thread_queue. The first thread is the thread - * which has been waiting longest on the_thread_queue. - */ - -Thread_Control *_Thread_queue_First_fifo( - Thread_queue_Control *the_thread_queue -); - -/* - * _Thread_queue_timeout - * - * DESCRIPTION: - * - * This routine is invoked when a task's request has not - * been satisfied after the timeout interval specified to - * enqueue. The task represented by ID will be unblocked and - * its status code will be set in it's control block to indicate - * that a timeout has occurred. - */ - -void _Thread_queue_Timeout ( - Objects_Id id, - void *ignored -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/tod.h b/cpukit/score/include/rtems/score/tod.h deleted file mode 100644 index ae7e2b9747..0000000000 --- a/cpukit/score/include/rtems/score/tod.h +++ /dev/null @@ -1,300 +0,0 @@ -/* tod.h - * - * This include file contains all the constants and structures associated - * with the Time of Day Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_TIME_OF_DAY_h -#define __RTEMS_TIME_OF_DAY_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following constants are related to the time of day. - */ - -#define TOD_SECONDS_PER_MINUTE 60 -#define TOD_MINUTES_PER_HOUR 60 -#define TOD_MONTHS_PER_YEAR 12 -#define TOD_DAYS_PER_YEAR 365 -#define TOD_HOURS_PER_DAY 24 -#define TOD_SECONDS_PER_DAY (TOD_SECONDS_PER_MINUTE * \ - TOD_MINUTES_PER_HOUR * \ - TOD_HOURS_PER_DAY) - -#define TOD_MICROSECONDS_PER_SECOND 1000000 -#define TOD_MILLISECONDS_PER_SECOND 1000 - -/* - * The following constant define the earliest year to which an - * RTEMS time of day can be initialized. This is considered the - * epoch. - */ - -#define TOD_BASE_YEAR 1988 - -/* - * The following record defines the time of control block. This - * control block is used to maintain the current time of day. - */ - -typedef struct { /* RTEID style time/date */ - unsigned32 year; /* year, A.D. */ - unsigned32 month; /* month, 1 -> 12 */ - unsigned32 day; /* day, 1 -> 31 */ - unsigned32 hour; /* hour, 0 -> 23 */ - unsigned32 minute; /* minute, 0 -> 59 */ - unsigned32 second; /* second, 0 -> 59 */ - unsigned32 ticks; /* elapsed ticks between secs */ -} rtems_time_of_day; - -/* - * The following contains the current time of day. - */ - -EXTERN rtems_time_of_day _TOD_Current; - -/* - * The following contains the number of seconds from 00:00:00 - * January 1, TOD_BASE_YEAR until the current time of day. - */ - -EXTERN rtems_interval _TOD_Seconds_since_epoch; - -/* - * The following contains the number of ticks since the - * system was booted. - */ - -EXTERN rtems_interval _TOD_Ticks_since_boot; - -/* - * The following contains the number of microseconds per tick. - */ - -EXTERN unsigned32 _TOD_Microseconds_per_tick; - -/* - * The following contains the number of clock ticks per second. - * - * NOTE: - * - * If one second is NOT evenly divisible by the number of microseconds - * per clock tick, this value will contain only the integer portion - * of the division. This means that the interval between clock ticks - * can be a source of error in the current time of day. - */ - -EXTERN unsigned32 _TOD_Ticks_per_second; - -/* - * This is the control structure for the watchdog timer which - * fires to service the seconds chain. - */ - -EXTERN Watchdog_Control _TOD_Seconds_watchdog; - -#ifdef INIT - -/* - * The following array contains the number of days in all months. - * The first dimension should be 1 for leap years, and 0 otherwise. - * The second dimension should range from 1 to 12 for January to - * February, respectively. - */ - -const unsigned32 _TOD_Days_per_month[ 2 ][ 13 ] = { - { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, - { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } -}; - -/* - * The following array contains the number of days in all months - * up to the month indicated by the index of the second dimension. - * The first dimension should be 1 for leap years, and 0 otherwise. - */ - -const unsigned16 _TOD_Days_to_date[2][13] = { - { 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }, - { 0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 } -}; - -/* - * The following array contains the number of days in the years - * since the last leap year. The index should be 0 for leap - * years, and the number of years since the beginning of a leap - * year otherwise. - */ - -const unsigned16 _TOD_Days_since_last_leap_year[4] = { 0, 366, 761, 1126 }; - -#else - -extern const unsigned16 _TOD_Days_to_date[2][13]; /* Julian days */ -extern const unsigned16 _TOD_Days_since_last_leap_year[4]; -extern const unsigned32 _TOD_Days_per_month[2][13]; - -#endif - -/* - * _TOD_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -void _TOD_Handler_initialization( - unsigned32 microseconds_per_tick -); - -/* - * _TOD_Set - * - * DESCRIPTION: - * - * This routine sets the current time of day to THE_TOD and - * the equivalent SECONDS_SINCE_EPOCH. - */ - -void _TOD_Set( - rtems_time_of_day *the_tod, - rtems_interval seconds_since_epoch -); - -/* - * _TOD_Validate - * - * DESCRIPTION: - * - * This function returns STATUS.RTEMS_SUCCESSFUL if THE_TOD contains - * a valid time of day, and FALSE otherwise. - */ - -rtems_status_code _TOD_Validate( - rtems_time_of_day *the_tod -); - -/* - * _TOD_To_seconds - * - * DESCRIPTION: - * - * This function returns the number seconds between the epoch and THE_TOD. - */ - -rtems_interval _TOD_To_seconds( - rtems_time_of_day *the_tod -); - -/* - * _TOD_Is_set - * - * DESCRIPTION: - * - * This function returns TRUE if the application has set the current - * time of day, and FALSE otherwise. - */ - -STATIC INLINE boolean _TOD_Is_set( void ); - -/* - * _TOD_Tickle_ticks - * - * DESCRIPTION: - * - * This routine increments the ticks field of the current time of - * day at each clock tick. - */ - -STATIC INLINE void _TOD_Tickle_ticks( void ); - -/* - * _TOD_Deactivate - * - * DESCRIPTION: - * - * This routine deactivates updating of the current time of day. - */ - -STATIC INLINE void _TOD_Deactivate( void ); - -/* - * _TOD_Activate - * - * DESCRIPTION: - * - * This routine deactivates updating of the current time of day. - */ - -STATIC INLINE void _TOD_Activate( - rtems_interval ticks -); - -/* - * _TOD_Tickle - * - * DESCRIPTION: - * - * This routine is scheduled as a watchdog function and is invoked at - * each second boundary. It updates the current time of day to indicate - * that a second has passed and processes the seconds watchdog chain. - */ - -void _TOD_Tickle( - Objects_Id id, - void *ignored -); - -/* - * RTEMS_MILLISECONDS_TO_MICROSECONDS - * - * DESCRIPTION: - * - * This routine converts an interval expressed in milliseconds to microseconds. - * - * NOTE: - * - * This must be a macro so it can be used in "static" tables. - */ - -#define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) ((_ms) * 1000) - -/* - * RTEMS_MILLISECONDS_TO_TICKS - * - * DESCRIPTION: - * - * This routine converts an interval expressed in milliseconds to ticks. - * - * NOTE: - * - * This must be a macro so it can be used in "static" tables. - */ - -#define RTEMS_MILLISECONDS_TO_TICKS(_ms) \ - (RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) / _TOD_Microseconds_per_tick) - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/tqdata.h b/cpukit/score/include/rtems/score/tqdata.h deleted file mode 100644 index 8c43fa4c72..0000000000 --- a/cpukit/score/include/rtems/score/tqdata.h +++ /dev/null @@ -1,90 +0,0 @@ -/* tqdata.h - * - * This include file contains all the constants and structures - * needed to declare a thread queue. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_THREAD_QUEUE_DATA_h -#define __RTEMS_THREAD_QUEUE_DATA_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following enumerated type details all of the disciplines - * supported by the Thread Queue Handler. - */ - -typedef enum { - THREAD_QUEUE_DATA_FIFO_DISCIPLINE, /* RTEMS_FIFO queue discipline */ - THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE, /* RTEMS_PRIORITY queue discipline */ -} Thread_queue_Disciplines; - -/* - * The following record defines the control block used - * to manage each thread. - */ - -#define TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS 4 /* # of pri groups */ - -typedef struct { - union { - Chain_Control Fifo; /* FIFO discipline list */ - Chain_Control Priority[TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS]; - /* priority discipline list */ - } Queues; - boolean sync; /* alloc/dealloc critical section */ - Thread_queue_Disciplines discipline; /* queue discipline */ - States_Control state; /* state of threads on Thread_q */ -} Thread_queue_Control; - -/* - * _Thread_queue_Header_number - * - * DESCRIPTION: - * - * This function returns the index of the priority chain on which - * a thread of the_priority should be placed. - */ - -STATIC INLINE unsigned32 _Thread_queue_Header_number ( - rtems_task_priority the_priority -); - -/* - * _Thread_queue_Is_reverse_search - * - * DESCRIPTION: - * - * This function returns TRUE if the_priority indicates that the - * enqueue search should start at the front of this priority - * group chain, and FALSE if the search should start at the rear. - */ - -STATIC INLINE boolean _Thread_queue_Is_reverse_search ( - rtems_task_priority the_priority -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/userext.h b/cpukit/score/include/rtems/score/userext.h deleted file mode 100644 index 37131959d9..0000000000 --- a/cpukit/score/include/rtems/score/userext.h +++ /dev/null @@ -1,213 +0,0 @@ -/* userext.h - * - * This include file contains all information about user extensions. This - * Handler provides mechanisms which can be used to initialize and manipulate - * all RTEMS user extensions. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_USER_EXTENSIONS_h -#define __RTEMS_USER_EXTENSIONS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * The following is used to manage each user extension set. - */ - -typedef struct { - Chain_Node Node; - rtems_extensions_table Callouts; -} User_extensions_Control; - -/* - * The following contains the static extension set which may be - * configured by the application. - */ - -EXTERN User_extensions_Control _User_extensions_Initial; - -/* - * The following is used to manage the list of active extensions. - */ - -EXTERN Chain_Control _User_extensions_List; - - -/* - * _User_extensions_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _User_extensions_Handler_initialization ( - rtems_extensions_table *initial_extensions -); - -/* - * _User_extensions_Add_set - * - * DESCRIPTION: - * - * This routine is used to add a user extension set to the active list. - */ - -STATIC INLINE void _User_extensions_Add_set ( - User_extensions_Control *the_extension, - rtems_extensions_table *extension_table -); - -/* - * _User_extensions_Remove_set - * - * DESCRIPTION: - * - * This routine is used to remove a user extension set from the active list. - */ - -STATIC INLINE void _User_extensions_Remove_set ( - User_extensions_Control *the_extension -); - -/* - * _User_extensions_Task_create - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_create directive. - */ - -STATIC INLINE void _User_extensions_Task_create ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_delete - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_delete directive. - */ - -STATIC INLINE void _User_extensions_Task_delete ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_start - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_start directive. - */ - -STATIC INLINE void _User_extensions_Task_start ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_restart - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_task_restart directive. - */ - -STATIC INLINE void _User_extensions_Task_restart ( - Thread_Control *the_thread -); - -/* - * _User_extensions_Task_switch - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a context switch occurs. - */ - -STATIC INLINE void _User_extensions_Task_switch ( - Thread_Control *executing, - Thread_Control *heir -); - -/* - * _User_extensions_Task_begin - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a task begins. - */ - -STATIC INLINE void _User_extensions_Task_begin ( - Thread_Control *executing -); - -/* - * _User_extensions_Task_exitted - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a task exits. - */ - -STATIC INLINE void _User_extensions_Task_exitted ( - Thread_Control *executing -); - -/* - * _User_extensions_Task_exitted - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension which - * is invoked when a task exits. - */ - -STATIC INLINE void _User_extensions_Task_exitted ( - Thread_Control *executing -); - -/* - * _User_extensions_Fatal - * - * DESCRIPTION: - * - * This routine is used to invoke the user extension for - * the rtems_fatal_error_occurred directive. - */ - -STATIC INLINE void _User_extensions_Fatal ( - unsigned32 the_error -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/watchdog.h b/cpukit/score/include/rtems/score/watchdog.h deleted file mode 100644 index 5c897615f7..0000000000 --- a/cpukit/score/include/rtems/score/watchdog.h +++ /dev/null @@ -1,471 +0,0 @@ -/* watchdog.h - * - * This include file contains all the constants and structures associated - * with watchdog timers. This Handler provides mechanisms which can be - * used to initialize and manipulate watchdog timers. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_WATCHDOG_h -#define __RTEMS_WATCHDOG_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * The following type defines the control block used to manage - * intervals. - */ - -typedef unsigned32 rtems_interval; - -/* - * The following types define a pointer to a watchdog/timer service routine. - */ - -typedef void rtems_timer_service_routine; - -typedef rtems_timer_service_routine ( *rtems_timer_service_routine_entry )( - Objects_Id, - void * - ); - -/* - * Constant for indefinite wait. (actually an illegal interval) - */ - -#define RTEMS_NO_TIMEOUT 0 - -/* - * The following enumerated type details the modes in which the - * Watchdog_Insert routine may operate. The watchdog may be - * activated automatically at insert time or later, explicitly - * by the caller. - */ - -typedef enum { - WATCHDOG_ACTIVATE_NOW, /* activate watchdog as part of insertion */ - WATCHDOG_NO_ACTIVATE /* watchdog will be explicitly activated */ -} Watchdog_Insert_modes; - -/* - * The following enumerated type lists the states in which a - * watchdog timer may be at any given time. - */ - -typedef enum { - WATCHDOG_INACTIVE, /* off all chains */ - WATCHDOG_ACTIVE, /* on chain, allowed to fire */ - WATCHDOG_REINSERT, /* on chain, reset without firing if expires */ - WATCHDOG_REMOVE_IT /* on chain, remove without firing if expires */ -} Watchdog_States; - -/* - * The following enumerated type details the manner in which - * a watchdog chain may be adjusted by the Watchdog_Adjust - * routine. The direction indicates a movement FORWARD - * or BACKWARD in time. - */ - -typedef enum { - WATCHDOG_FORWARD, /* adjust delta value forward */ - WATCHDOG_BACKWARD /* adjust delta value backward */ -} Watchdog_Adjust_directions; - -/* - * The following record defines the control block used - * to manage each watchdog timer. - */ - -typedef struct { - Chain_Node Node; - Watchdog_States state; - rtems_interval initial; - rtems_interval delta_interval; - rtems_timer_service_routine_entry routine; - Objects_Id id; - void *user_data; -} Watchdog_Control; - -/* - * The following type is used for synchronization purposes - * during an insert on a watchdog delta chain. - * - * NOTE: Watchdog_Pointer is only used to insure that - * Watchdog_Synchronization_pointer is a pointer - * which is volatile rather than a pointer to a - * volatile block of memory. - */ - -typedef Watchdog_Control *Watchdog_Pointer; -typedef volatile Watchdog_Pointer Watchdog_Synchronization_pointer; - -/* - * The following defines the watchdog chains which are managed - * on ticks and second boundaries. - */ - -EXTERN Chain_Control _Watchdog_Ticks_chain; -EXTERN Chain_Control _Watchdog_Seconds_chain; - -/* - * The following defines the synchronization variable used to - * allow interrupts to be enabled while inserting a watchdog - * on a watchdog chain. - */ - -EXTERN Watchdog_Synchronization_pointer _Watchdog_Sync; - -/* - * _Watchdog_Handler_initialization - * - * DESCRIPTION: - * - * This routine initializes the watchdog handler. The watchdog - * synchronization flag is initialized and the watchdog chains are - * initialized and emptied. - */ - -void _Watchdog_Handler_initialization( void ); - -/* - * - * _Watchdog_Initialize - * - * DESCRIPTION: - * - * This routine initializes the specified watchdog. The watchdog is - * made inactive, the watchdog id and handler routine are set to the - * specified values. - */ - -STATIC INLINE void _Watchdog_Initialize( - Watchdog_Control *the_watchdog, - rtems_timer_service_routine_entry routine, - Objects_Id id, - void *user_data -); - -/* - * _Watchdog_Remove - * - * DESCRIPTION: - * - * This routine removes THE_WATCHDOG from the watchdog chain on which - * it resides and returns the state THE_WATCHDOG timer was in. - */ - -Watchdog_States _Watchdog_Remove ( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Is_active - * - * DESCRIPTION: - * - * This routine returns TRUE if the watchdog timer is in the ACTIVE - * state, and FALSE otherwise. - */ - -STATIC INLINE boolean _Watchdog_Is_active( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Activate - * - * DESCRIPTION: - * - * This routine activates THE_WATCHDOG timer which is already - * on a watchdog chain. - */ - -STATIC INLINE void _Watchdog_Activate( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Deactivate - * - * DESCRIPTION: - * - * This routine deactivates THE_WATCHDOG timer which will remain - * on a watchdog chain. - */ - -STATIC INLINE void _Watchdog_Deactivate( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Tickle_ticks - * - * DESCRIPTION: - * - * This routine is invoked at each clock tick to update the ticks - * watchdog chain. - */ - -STATIC INLINE void _Watchdog_Tickle_ticks( void ); - -/* - * - * _Watchdog_Tickle_seconds - * - * DESCRIPTION: - * - * This routine is invoked at each clock tick to update the seconds - * watchdog chain. - */ - -STATIC INLINE void _Watchdog_Tickle_seconds( void ); - -/* - * - * _Watchdog_Insert_ticks - * - * DESCRIPTION: - * - * This routine inserts THE_WATCHDOG into the ticks watchdog chain - * for a time of UNITS ticks. The INSERT_MODE indicates whether - * THE_WATCHDOG is to be activated automatically or later, explicitly - * by the caller. - */ - -STATIC INLINE void _Watchdog_Insert_ticks( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -); - -/* - * - * _Watchdog_Insert_seconds - * - * DESCRIPTION: - * - * This routine inserts THE_WATCHDOG into the seconds watchdog chain - * for a time of UNITS seconds. The INSERT_MODE indicates whether - * THE_WATCHDOG is to be activated automatically or later, explicitly - * by the caller. - */ - -STATIC INLINE void _Watchdog_Insert_seconds( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -); - -/* - * - * _Watchdog_Adjust_seconds - * - * DESCRIPTION: - * - * This routine adjusts the seconds watchdog chain in the forward - * or backward DIRECTION for UNITS seconds. This is invoked when the - * current time of day is changed. - */ - -STATIC INLINE void _Watchdog_Adjust_seconds( - Watchdog_Adjust_directions direction, - rtems_interval units -); - -/* - * - * _Watchdog_Adjust_ticks - * - * DESCRIPTION: - * - * This routine adjusts the ticks watchdog chain in the forward - * or backward DIRECTION for UNITS ticks. - */ - -STATIC INLINE void _Watchdog_Adjust_ticks( - Watchdog_Adjust_directions direction, - rtems_interval units -); - -/* - * - * _Watchdog_Reset - * - * DESCRIPTION: - * - * This routine resets THE_WATCHDOG timer to its state at INSERT - * time. This routine is valid only on interval watchdog timers - * and is used to make an interval watchdog timer fire "every" so - * many ticks. - */ - -STATIC INLINE void _Watchdog_Reset( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Next - * - * DESCRIPTION: - * - * This routine returns a pointer to the watchdog timer following - * THE_WATCHDOG on the watchdog chain. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Next( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Previous - * - * DESCRIPTION: - * - * This routine returns a pointer to the watchdog timer preceding - * THE_WATCHDOG on the watchdog chain. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Previous( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_First - * - * DESCRIPTION: - * - * This routine returns a pointer to the first watchdog timer - * on the watchdog chain HEADER. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_First( - Chain_Control *header -); - -/* - * - * _Watchdog_Last - * - * DESCRIPTION: - * - * This routine returns a pointer to the last watchdog timer - * on the watchdog chain HEADER. - */ -STATIC INLINE Watchdog_Control *_Watchdog_Last( - Chain_Control *header -); - -/* - * - * _Watchdog_Get_sync - * - * DESCRIPTION: - * - * This routine returns the current synchronization timer. This - * routine is used so that interrupts can be enabled while a - * watchdog timer is being inserted into a watchdog chain. - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Get_sync( void ); - -/* - * - * _Watchdog_Set_sync - * - * DESCRIPTION: - * - * This routine sets the current synchronization timer. This - * routine is used so that interrupts can be enabled while a - * watchdog timer is being inserted into a watchdog chain. - */ - -STATIC INLINE void _Watchdog_Set_sync( - Watchdog_Control *the_watchdog -); - -/* - * - * _Watchdog_Clear_sync - * - * DESCRIPTION: - * - * This routine will set the watchdog synchronization flag to a - * NULL address indicating synchronization is unnecessary. - */ - -STATIC INLINE void _Watchdog_Clear_sync( void ); - -/* - * _Watchdog_Adjust - * - * DESCRIPTION: - * - * This routine adjusts the HEADER watchdog chain in the forward - * or backward DIRECTION for UNITS ticks. - */ - -void _Watchdog_Adjust ( - Chain_Control *header, - Watchdog_Adjust_directions direction, - rtems_interval units -); - -/* - * _Watchdog_Insert - * - * DESCRIPTION: - * - * This routine inserts THE_WATCHDOG into the HEADER watchdog chain - * for a time of UNITS. The INSERT_MODE indicates whether - * THE_WATCHDOG is to be activated automatically or later, explicitly - * by the caller. - * - */ - -void _Watchdog_Insert ( - Chain_Control *header, - Watchdog_Control *the_watchdog, - Watchdog_Insert_modes insert_mode -); - -/* - * _Watchdog_Tickle - * - * DESCRIPTION: - * - * This routine is invoked at appropriate intervals to update - * the HEADER watchdog chain. - */ - -void _Watchdog_Tickle ( - Chain_Control *header -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/score/wkspace.h b/cpukit/score/include/rtems/score/wkspace.h deleted file mode 100644 index 14bc090291..0000000000 --- a/cpukit/score/include/rtems/score/wkspace.h +++ /dev/null @@ -1,99 +0,0 @@ -/* wkspace.h - * - * This include file contains information related to the RTEMS - * RAM Workspace. This Handler provides mechanisms which can be used to - * define, initialize and manipulate the RTEMS workspace. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_WORKSPACE_h -#define __RTEMS_WORKSPACE_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -/* - * The following is used to manage the RTEMS Workspace. - * - */ - -EXTERN Heap_Control _Workspace_Area; /* executive heap header */ - -/* - * _Workspace_Handler_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this handler. - */ - -STATIC INLINE void _Workspace_Handler_initialization( - void *starting_address, - unsigned32 size -); - -/* - * _Workspace_Allocate - * - * DESCRIPTION: - * - * This routine returns the address of a block of memory of size - * bytes. If a block of the appropriate size cannot be allocated - * from the workspace, then NULL is returned. - */ - -STATIC INLINE void *_Workspace_Allocate( - unsigned32 size -); - -/* - * _Workspace_Allocate_or_fatal_error - * - * DESCRIPTION: - * - * This routine returns the address of a block of memory of size - * bytes. If a block of the appropriate size cannot be allocated - * from the workspace, then the rtems_fatal_error_occurred directive - * is invoked. - */ - -STATIC INLINE void *_Workspace_Allocate_or_fatal_error( - unsigned32 size -); - -/* - * _Workspace_Free - * - * DESCRIPTION: - * - * This function frees the specified block of memory. If the block - * belongs to the Workspace and can be successfully freed, then - * TRUE is returned. Otherwise FALSE is returned. - */ - -STATIC INLINE boolean _Workspace_Free( - void *block -); - -#include - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/include/rtems/system.h b/cpukit/score/include/rtems/system.h deleted file mode 100644 index 3ff3772d11..0000000000 --- a/cpukit/score/include/rtems/system.h +++ /dev/null @@ -1,132 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the executive. This must be the first include file - * included in all internal RTEMS files. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_SYSTEM_h -#define __RTEMS_SYSTEM_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following define the CPU Family and Model within the family - * - * NOTE: The string "REPLACE_THIS_WITH_USE_INLINE_OR_MACROS" is replaced - * with either "USE_INLINES" or "USE_MACROS" based upon the - * whether this target configuration uses the inline or - * macro implementations of the inlined RTEMS routines. - */ - - -#define REPLACE_THIS_WITH_USE_INLINE_OR_MACROS - -/* - * The following insures that all data is declared in the space - * of the Initialization Manager. It is referenced as "external" - * in every other file. - */ - -#ifdef INIT -#undef EXTERN -#define EXTERN -#else -#undef EXTERN -#define EXTERN extern -#endif - -/* - * The following (in conjunction with compiler arguments) are used - * to choose between the use of static inline functions and macro - * functions. The static inline implementation allows better - * type checking with no cost in code size or execution speed. - */ - -#ifdef USE_INLINES -#define STATIC static -#define INLINE __inline__ -#else -/* -#error Only the GNU C compiler is currently supported!!! -*/ -#define STATIC -#define INLINE -#endif - -/* - * Include a base set of files. - */ - -/* - * XXX: Eventually proc_ptr needs to disappear!!! - */ - -typedef void * proc_ptr; - -#include /* processor specific information */ -#include /* RTEMS status codes */ - -/* - * Define NULL - */ - -#ifndef NULL -#define NULL 0 /* NULL value */ -#endif - -/* - * Boolean constants - */ - -#if !defined( TRUE ) || (TRUE != 1) -#undef TRUE -#define TRUE (1) -#endif - -#if !defined( FALSE ) || (FALSE != 0) -#undef FALSE -#define FALSE (0) -#endif - -#define stringify( _x ) # _x - -/* - * The following is the extern for the RTEMS version string. - * The contents of this string are CPU specific. - */ - -extern const char _RTEMS_version[]; /* RTEMS version string */ -extern const char _Copyright_Notice[]; /* RTEMS copyright string */ - -/* - * The jump table of entry points into RTEMS directives. - */ - -#define NUMBER_OF_ENTRY_POINTS 79 -extern const void * _Entry_points[ NUMBER_OF_ENTRY_POINTS + 1 ]; - -/* - * The following defines the CPU dependent information table. - */ - -EXTERN rtems_cpu_table _CPU_Table; /* CPU dependent info */ - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/address.inl b/cpukit/score/inline/rtems/score/address.inl deleted file mode 100644 index f9189e625e..0000000000 --- a/cpukit/score/inline/rtems/score/address.inl +++ /dev/null @@ -1,109 +0,0 @@ -/* inline/address.inl - * - * This include file contains the bodies of the routines - * about addresses which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_ADDRESSES_inl -#define __INLINE_ADDRESSES_inl - -/*PAGE - * - * _Addresses_Add_offset - * - */ - -STATIC INLINE void *_Addresses_Add_offset ( - void *base, - unsigned32 offset -) -{ - return (base + offset); -} - -/*PAGE - * - * _Addresses_Subtract_offset - * - */ - -STATIC INLINE void *_Addresses_Subtract_offset ( - void *base, - unsigned32 offset -) -{ - return (base - offset); -} - -/*PAGE - * - * _Addresses_Add - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -STATIC INLINE void *_Addresses_Add ( - void *left, - void *right -) -{ - return (left + (unsigned32)right); -} - -/*PAGE - * - * _Addresses_Subtract - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -STATIC INLINE unsigned32 _Addresses_Subtract ( - void *left, - void *right -) -{ - return (left - right); -} - -/*PAGE - * - * _Addresses_Is_aligned - * - */ - -STATIC INLINE boolean _Addresses_Is_aligned ( - void *address -) -{ - return ( ( (unsigned32)address % CPU_ALIGNMENT ) == 0 ); -} - -/*PAGE - * - * _Addresses_Is_in_range - * - */ - -STATIC INLINE boolean _Addresses_Is_in_range ( - void *address, - void *base, - void *limit -) -{ - return ( address >= base && address <= limit ); -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/chain.inl b/cpukit/score/inline/rtems/score/chain.inl deleted file mode 100644 index 63706544e4..0000000000 --- a/cpukit/score/inline/rtems/score/chain.inl +++ /dev/null @@ -1,292 +0,0 @@ -/* inline/chain.inl - * - * This include file contains the bodies of the routines which are - * associated with doubly linked chains and inlined. - * - * NOTE: The routines in this file are ordered from simple - * to complex. No other Chain Handler routine is referenced - * unless it has already been defined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_CHAIN_inl -#define __INLINE_CHAIN_inl - -/*PAGE - * - * _Chain_Are_nodes_equal - */ - -STATIC INLINE boolean _Chain_Are_nodes_equal( - Chain_Node *left, - Chain_Node *right -) -{ - return left == right; -} - -/*PAGE - * - * _Chain_Is_null - */ - -STATIC INLINE boolean _Chain_Is_null( - Chain_Control *the_chain -) -{ - return ( the_chain == NULL ); -} - -/*PAGE - * - * _Chain_Is_null_node - */ - -STATIC INLINE boolean _Chain_Is_null_node( - Chain_Node *the_node -) -{ - return ( the_node == NULL ); -} - -/*PAGE - * - * _Chain_Head - */ - -STATIC INLINE Chain_Node *_Chain_Head( - Chain_Control *the_chain -) -{ - return (Chain_Node *) the_chain; -} - -/*PAGE - * - * _Chain_Tail - */ - -STATIC INLINE Chain_Node *_Chain_Tail( - Chain_Control *the_chain -) -{ - return (Chain_Node *) &the_chain->permanent_null; -} - -/*PAGE - * - * _Chain_Is_empty - */ - -STATIC INLINE boolean _Chain_Is_empty( - Chain_Control *the_chain -) -{ - return ( the_chain->first == _Chain_Tail( the_chain ) ); -} - -/*PAGE - * - * _Chain_Is_first - */ - -STATIC INLINE boolean _Chain_Is_first( - Chain_Node *the_node -) -{ - return ( the_node->previous == NULL ); -} - -/*PAGE - * - * _Chain_Is_last - */ - -STATIC INLINE boolean _Chain_Is_last( - Chain_Node *the_node -) -{ - return ( the_node->next == NULL ); -} - -/*PAGE - * - * _Chain_Has_only_one_node - */ - -STATIC INLINE boolean _Chain_Has_only_one_node( - Chain_Control *the_chain -) -{ - return ( the_chain->first == the_chain->last ); -} - -/*PAGE - * - * _Chain_Is_head - */ - -STATIC INLINE boolean _Chain_Is_head( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - return ( the_node == _Chain_Head( the_chain ) ); -} - -/*PAGE - * - * _Chain_Is_tail - */ - -STATIC INLINE boolean _Chain_Is_tail( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - return ( the_node == _Chain_Tail( the_chain ) ); -} - -/*PAGE - * - * Chain_Initialize_empty - */ - -STATIC INLINE void _Chain_Initialize_empty( - Chain_Control *the_chain -) -{ - the_chain->first = _Chain_Tail( the_chain ); - the_chain->permanent_null = NULL; - the_chain->last = _Chain_Head( the_chain ); -} - -/*PAGE - * - * _Chain_Extract_unprotected - */ - -STATIC INLINE void _Chain_Extract_unprotected( - Chain_Node *the_node -) -{ - Chain_Node *next; - Chain_Node *previous; - - next = the_node->next; - previous = the_node->previous; - next->previous = previous; - previous->next = next; -} - -/*PAGE - * - * _Chain_Get_first_unprotected - */ - -STATIC INLINE Chain_Node *_Chain_Get_first_unprotected( - Chain_Control *the_chain -) -{ - Chain_Node *return_node; - Chain_Node *new_first; - - return_node = the_chain->first; - new_first = return_node->next; - the_chain->first = new_first; - new_first->previous = _Chain_Head( the_chain ); - - return return_node; -} - -/*PAGE - * - * Chain_Get_unprotected - */ - -STATIC INLINE Chain_Node *_Chain_Get_unprotected( - Chain_Control *the_chain -) -{ - if ( !_Chain_Is_empty( the_chain ) ) - return _Chain_Get_first_unprotected( the_chain ); - else - return NULL; -} - -/*PAGE - * - * _Chain_Insert_unprotected - */ - -STATIC INLINE void _Chain_Insert_unprotected( - Chain_Node *after_node, - Chain_Node *the_node -) -{ - Chain_Node *before_node; - - the_node->previous = after_node; - before_node = after_node->next; - after_node->next = the_node; - the_node->next = before_node; - before_node->previous = the_node; -} - -/*PAGE - * - * _Chain_Append_unprotected - */ - -STATIC INLINE void _Chain_Append_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - Chain_Node *old_last_node; - - the_node->next = _Chain_Tail( the_chain ); - old_last_node = the_chain->last; - the_chain->last = the_node; - old_last_node->next = the_node; - the_node->previous = old_last_node; -} - -/*PAGE - * - * _Chain_Prepend_unprotected - */ - -STATIC INLINE void _Chain_Prepend_unprotected( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - _Chain_Insert_unprotected( _Chain_Head( the_chain ), the_node ); - -} - -/*PAGE - * - * _Chain_Prepend - */ - -STATIC INLINE void _Chain_Prepend( - Chain_Control *the_chain, - Chain_Node *the_node -) -{ - _Chain_Insert( _Chain_Head( the_chain ), the_node ); -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/heap.inl b/cpukit/score/inline/rtems/score/heap.inl deleted file mode 100644 index 58be9b02af..0000000000 --- a/cpukit/score/inline/rtems/score/heap.inl +++ /dev/null @@ -1,203 +0,0 @@ -/* heap.inl - * - * This file contains the static inline implementation of the inlined - * routines from the heap handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __HEAP_inl -#define __HEAP_inl - -#include - -/*PAGE - * - * _Heap_Head - * - */ - -STATIC INLINE Heap_Block *_Heap_Head ( - Heap_Control *the_heap -) -{ - return (Heap_Block *)&the_heap->start; -} - -/*PAGE - * - * _Heap_Tail - * - */ - -STATIC INLINE Heap_Block *_Heap_Tail ( - Heap_Control *the_heap -) -{ - return (Heap_Block *)&the_heap->final; -} - -/*PAGE - * - * _Heap_Previous_block - * - */ - -STATIC INLINE Heap_Block *_Heap_Previous_block ( - Heap_Block *the_block -) -{ - return (Heap_Block *) _Addresses_Subtract_offset( - (void *)the_block, - the_block->back_flag & ~ HEAP_BLOCK_USED - ); -} - -/*PAGE - * - * _Heap_Next_block - * - * NOTE: Next_block assumes that the block is free. - */ - -STATIC INLINE Heap_Block *_Heap_Next_block ( - Heap_Block *the_block -) -{ - return (Heap_Block *) _Addresses_Add_offset( - (void *)the_block, - the_block->front_flag & ~ HEAP_BLOCK_USED - ); -} - -/*PAGE - * - * _Heap_Block_at - * - */ - -STATIC INLINE Heap_Block *_Heap_Block_at( - void *base, - unsigned32 offset -) -{ - return (Heap_Block *) _Addresses_Add_offset( (void *)base, offset ); -} - -/*PAGE - * - * _Heap_Is_previous_block_free - * - */ - -STATIC INLINE boolean _Heap_Is_previous_block_free ( - Heap_Block *the_block -) -{ - return !(the_block->back_flag & HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Is_block_free - * - */ - -STATIC INLINE boolean _Heap_Is_block_free ( - Heap_Block *the_block -) -{ - return !(the_block->front_flag & HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Is_block_used - * - */ - -STATIC INLINE boolean _Heap_Is_block_used ( - Heap_Block *the_block -) -{ - return (the_block->front_flag & HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Block_size - * - */ - -STATIC INLINE unsigned32 _Heap_Block_size ( - Heap_Block *the_block -) -{ - return (the_block->front_flag & ~HEAP_BLOCK_USED); -} - -/*PAGE - * - * _Heap_Start_of_user_area - * - */ - -STATIC INLINE void *_Heap_Start_of_user_area ( - Heap_Block *the_block -) -{ - return (void *) &the_block->next; -} - -/*PAGE - * - * _Heap_Is_block_in - * - */ - -STATIC INLINE boolean _Heap_Is_block_in ( - Heap_Control *the_heap, - Heap_Block *the_block -) -{ - return _Addresses_Is_in_range( the_block, the_heap->start, the_heap->final ); -} - -/*PAGE - * - * _Heap_Is_page_size_valid - * - */ - -STATIC INLINE boolean _Heap_Is_page_size_valid( - unsigned32 page_size -) -{ - return ((page_size != 0) && - ((page_size % CPU_HEAP_ALIGNMENT) == 0)); -} - -/*PAGE - * - * _Heap_Build_flag - * - */ - -STATIC INLINE unsigned32 _Heap_Build_flag ( - unsigned32 size, - unsigned32 in_use_flag -) -{ - return size | in_use_flag; -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/isr.inl b/cpukit/score/inline/rtems/score/isr.inl deleted file mode 100644 index f44880c3b6..0000000000 --- a/cpukit/score/inline/rtems/score/isr.inl +++ /dev/null @@ -1,70 +0,0 @@ -/* isr.inl - * - * This include file contains the static implementation of all - * inlined routines in the Interrupt Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __ISR_inl -#define __ISR_inl - -/*PAGE - * - * _ISR_Handler_initialization - * - */ - -STATIC INLINE void _ISR_Handler_initialization ( void ) -{ - _ISR_Signals_to_thread_executing = FALSE; - _ISR_Nest_level = 0; -} - -/*PAGE - * - * _ISR_Is_in_progress - * - */ - -STATIC INLINE boolean _ISR_Is_in_progress( void ) -{ - return (_ISR_Nest_level != 0); -} - -/*PAGE - * - * _ISR_Is_vector_number_valid - * - */ - -STATIC INLINE boolean _ISR_Is_vector_number_valid ( - unsigned32 vector -) -{ - return ( vector < CPU_INTERRUPT_NUMBER_OF_VECTORS ); -} - -/*PAGE - * - * _ISR_Is_valid_user_handler - * - */ - -STATIC INLINE boolean _ISR_Is_valid_user_handler ( - void *handler -) -{ - return ( handler != NULL); -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/mppkt.inl b/cpukit/score/inline/rtems/score/mppkt.inl deleted file mode 100644 index 22ec30a28c..0000000000 --- a/cpukit/score/inline/rtems/score/mppkt.inl +++ /dev/null @@ -1,49 +0,0 @@ -/* inline/mppkt.inl - * - * This package is the implementation of the Packet Handler - * routines which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_MP_PACKET_inl -#define __INLINE_MP_PACKET_inl - -/*PAGE - * - * _Mp_packet_Is_valid_packet_class - * - * NOTE: Check for lower bounds (MP_PACKET_CLASSES_FIRST ) is unnecessary - * because this enum starts at lower bound of zero. - */ - -STATIC INLINE boolean _Mp_packet_Is_valid_packet_class ( - rtems_mp_packet_classes the_packet_class -) -{ - return ( the_packet_class <= MP_PACKET_CLASSES_LAST ); -} - -/*PAGE - * - * _Mp_packet_Is_null - * - */ - -STATIC INLINE boolean _Mp_packet_Is_null ( - rtems_packet_prefix *the_packet -) -{ - return the_packet == NULL; -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/object.inl b/cpukit/score/inline/rtems/score/object.inl deleted file mode 100644 index 9c2110077c..0000000000 --- a/cpukit/score/inline/rtems/score/object.inl +++ /dev/null @@ -1,198 +0,0 @@ -/* object.inl - * - * This include file contains the static inline implementation of all - * of the inlined routines in the Object Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OBJECTS_inl -#define __OBJECTS_inl - -/*PAGE - * - * _Objects_Is_name_valid - * - */ - -STATIC INLINE boolean _Objects_Is_name_valid ( - Objects_Name name -) -{ - return ( name != 0 ); -} - -/*PAGE - * - * rtems_name_to_characters - * - */ - -STATIC INLINE void rtems_name_to_characters( - Objects_Name name, - char *c1, - char *c2, - char *c3, - char *c4 -) -{ - *c1 = (name >> 24) & 0xff; - *c2 = (name >> 16) & 0xff; - *c3 = (name >> 8) & 0xff; - *c4 = name & 0xff; -} - -/*PAGE - * - * _Objects_Build_id - * - */ - -STATIC INLINE Objects_Id _Objects_Build_id( - unsigned32 node, - unsigned32 index -) -{ - return ( (node << 16) | index ); -} - -/*PAGE - * - * rtems_get_node - * - */ - -STATIC INLINE unsigned32 rtems_get_node( - Objects_Id id -) -{ - return (id >> 16); -} - -/*PAGE - * - * rtems_get_index - * - */ - -STATIC INLINE unsigned32 rtems_get_index( - Objects_Id id -) -{ - return (id &0xFFFF); -} - -/*PAGE - * - * _Objects_Is_local_node - * - */ - -STATIC INLINE boolean _Objects_Is_local_node( - unsigned32 node -) -{ - return ( node == _Objects_Local_node ); -} - -/*PAGE - * - * _Objects_Is_local_id - * - */ - -STATIC INLINE boolean _Objects_Is_local_id( - Objects_Id id -) -{ - return _Objects_Is_local_node( rtems_get_node(id) ); -} - -/*PAGE - * - * _Objects_Are_ids_equal - * - */ - -STATIC INLINE boolean _Objects_Are_ids_equal( - Objects_Id left, - Objects_Id right -) -{ - return ( left == right ); -} - -/*PAGE - * - * _Objects_Allocate - * - */ - -STATIC INLINE Objects_Control *_Objects_Allocate( - Objects_Information *information -) -{ - return (Objects_Control *) _Chain_Get( &information->Inactive ); -} - -/*PAGE - * - * _Objects_Free - * - */ - -STATIC INLINE void _Objects_Free( - Objects_Information *information, - Objects_Control *the_object -) -{ - _Chain_Append( &information->Inactive, &the_object->Node ); -} - -/*PAGE - * - * _Objects_Open - * - */ - -STATIC INLINE void _Objects_Open( - Objects_Information *information, - Objects_Control *the_object, - Objects_Name name -) -{ - unsigned32 index; - - index = rtems_get_index( the_object->id ); - information->local_table[ index ] = the_object; - information->name_table[ index ] = name; -} - -/*PAGE - * - * _Objects_Close - * - */ - -STATIC INLINE void _Objects_Close( - Objects_Information *information, - Objects_Control *the_object -) -{ - unsigned32 index; - - index = rtems_get_index( the_object->id ); - information->local_table[ index ] = NULL; - information->name_table[ index ] = 0; -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/objectmp.inl b/cpukit/score/inline/rtems/score/objectmp.inl deleted file mode 100644 index e09a3df528..0000000000 --- a/cpukit/score/inline/rtems/score/objectmp.inl +++ /dev/null @@ -1,62 +0,0 @@ -/* inline/objectmp.inl - * - * This include file contains the bodies of all inlined routines - * which deal with global objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_MP_OBJECTS_inl -#define __INLINE_MP_OBJECTS_inl - -/*PAGE - * - * _Objects_MP_Allocate_global_object - * - */ - -STATIC INLINE Objects_MP_Control *_Objects_MP_Allocate_global_object ( - void -) -{ - return (Objects_MP_Control *) - _Chain_Get( &_Objects_MP_Inactive_global_objects ); -} - -/*PAGE - * _Objects_MP_Free_global_object - * - */ - -STATIC INLINE void _Objects_MP_Free_global_object ( - Objects_MP_Control *the_object -) -{ - _Chain_Append( - &_Objects_MP_Inactive_global_objects, - &the_object->Object.Node - ); -} - -/*PAGE - * _Objects_MP_Is_null_global_object - * - */ - -STATIC INLINE boolean _Objects_MP_Is_null_global_object ( - Objects_MP_Control *the_object -) -{ - return( the_object == NULL ); -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/priority.inl b/cpukit/score/inline/rtems/score/priority.inl deleted file mode 100644 index 9e7c159f65..0000000000 --- a/cpukit/score/inline/rtems/score/priority.inl +++ /dev/null @@ -1,168 +0,0 @@ -/* priority.inl - * - * This file contains the static inline implementation of all inlined - * routines in the Priority Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PRIORITY_inl -#define __PRIORITY_inl - -#include - -/*PAGE - * - * _Priority_Handler_initialization - * - */ - -STATIC INLINE void _Priority_Handler_initialization( void ) -{ - unsigned32 index; - - _Priority_Major_bit_map = 0; - for ( index=0 ; index <16 ; index++ ) - _Priority_Bit_map[ index ] = 0; -} - -/*PAGE - * - * _Priority_Is_valid - * - */ - -STATIC INLINE boolean _Priority_Is_valid ( - rtems_task_priority the_priority -) -{ - return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) && - ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) ); -} - -/*PAGE - * - * _Priority_Major - * - */ - -STATIC INLINE unsigned32 _Priority_Major ( - rtems_task_priority the_priority -) -{ - return ( the_priority / 16 ); -} - -/*PAGE - * - * _Priority_Minor - * - */ - -STATIC INLINE unsigned32 _Priority_Minor ( - rtems_task_priority the_priority -) -{ - return ( the_priority % 16 ); -} - -/*PAGE - * - * _Priority_Add_to_bit_map - * - */ - -STATIC INLINE void _Priority_Add_to_bit_map ( - Priority_Information *the_priority_map -) -{ - *the_priority_map->minor |= the_priority_map->ready_minor; - _Priority_Major_bit_map |= the_priority_map->ready_major; -} - -/*PAGE - * - * _Priority_Remove_from_bit_map - * - */ - -STATIC INLINE void _Priority_Remove_from_bit_map ( - Priority_Information *the_priority_map -) -{ - *the_priority_map->minor &= the_priority_map->block_minor; - if ( *the_priority_map->minor == 0 ) - _Priority_Major_bit_map &= the_priority_map->block_major; -} - -/*PAGE - * - * _Priority_Get_highest - * - */ - -STATIC INLINE rtems_task_priority _Priority_Get_highest( void ) -{ - Priority_Bit_map_control minor; - Priority_Bit_map_control major; - - _Bitfield_Find_first_bit( _Priority_Major_bit_map, major ); - _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); - - return (_CPU_Priority_Bits_index( major ) << 4) + - _CPU_Priority_Bits_index( minor ); -} - -/*PAGE - * - * _Priority_Initialize_information - * - */ - -STATIC INLINE void _Priority_Initialize_information( - Priority_Information *the_priority_map, - rtems_task_priority new_priority -) -{ - Priority_Bit_map_control major; - Priority_Bit_map_control minor; - Priority_Bit_map_control mask; - - major = _Priority_Major( new_priority ); - minor = _Priority_Minor( new_priority ); - - the_priority_map->minor = - &_Priority_Bit_map[ _CPU_Priority_Bits_index(major) ]; - - mask = _CPU_Priority_Mask( major ); - the_priority_map->ready_major = mask; - the_priority_map->block_major = ~mask; - - mask = _CPU_Priority_Mask( minor ); - the_priority_map->ready_minor = mask; - the_priority_map->block_minor = ~mask; -} - -/*PAGE - * - * _Priority_Is_group_empty - * - */ - -STATIC INLINE boolean _Priority_Is_group_empty ( - rtems_task_priority the_priority -) -{ - return the_priority == 0; -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/stack.inl b/cpukit/score/inline/rtems/score/stack.inl deleted file mode 100644 index 24a6d9d873..0000000000 --- a/cpukit/score/inline/rtems/score/stack.inl +++ /dev/null @@ -1,63 +0,0 @@ -/* stack.inl - * - * This file contains the static inline implementation of the inlined - * routines from the Stack Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STACK_inl -#define __STACK_inl - -/*PAGE - * - * _Stack_Initialize - * - */ - -STATIC INLINE void _Stack_Initialize ( - Stack_Control *the_stack, - void *starting_address, - unsigned32 size -) -{ - the_stack->area = starting_address; - the_stack->size = size; -} - -/*PAGE - * - * _Stack_Is_enough - * - */ - -STATIC INLINE boolean _Stack_Is_enough ( - unsigned32 size -) -{ - return ( size >= RTEMS_MINIMUM_STACK_SIZE ); -} - -/*PAGE - * - * _Stack_Adjust_size - * - */ - -STATIC INLINE unsigned32 _Stack_Adjust_size ( - unsigned32 size -) -{ - return size + CPU_STACK_ALIGNMENT; -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/states.inl b/cpukit/score/inline/rtems/score/states.inl deleted file mode 100644 index 316f40e4eb..0000000000 --- a/cpukit/score/inline/rtems/score/states.inl +++ /dev/null @@ -1,285 +0,0 @@ -/* states.inl - * - * This file contains the macro implementation of the inlined - * routines associated with RTEMS state information. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STATES_inl -#define __STATES_inl - -/*PAGE - * - * _States_Set - * - */ - -STATIC INLINE States_Control _States_Set ( - States_Control states_to_set, - States_Control current_state -) -{ - return (current_state | states_to_set); -} - -/*PAGE - * - * _States_Clear - * - */ - -STATIC INLINE States_Control _States_Clear ( - States_Control states_to_clear, - States_Control current_state -) -{ - return (current_state & ~states_to_clear); -} - -/*PAGE - * - * _States_Is_ready - * - */ - -STATIC INLINE boolean _States_Is_ready ( - States_Control the_states -) -{ - return (the_states == STATES_READY); -} - -/*PAGE - * - * _States_Is_only_dormant - * - */ - -STATIC INLINE boolean _States_Is_only_dormant ( - States_Control the_states -) -{ - return (the_states == STATES_DORMANT); -} - -/*PAGE - * - * _States_Is_dormant - * - */ - -STATIC INLINE boolean _States_Is_dormant ( - States_Control the_states -) -{ - return (the_states & STATES_DORMANT); -} - -/*PAGE - * - * _States_Is_suspended - * - */ - -STATIC INLINE boolean _States_Is_suspended ( - States_Control the_states -) -{ - return (the_states & STATES_SUSPENDED); -} - -/*PAGE - * - * _States_Is_Transient - * - */ - -STATIC INLINE boolean _States_Is_transient ( - States_Control the_states -) -{ - return (the_states & STATES_TRANSIENT); -} - -/*PAGE - * - * _States_Is_delaying - * - */ - -STATIC INLINE boolean _States_Is_delaying ( - States_Control the_states -) -{ - return (the_states & STATES_DELAYING); -} - -/*PAGE - * - * _States_Is_waiting_for_buffer - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_buffer ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_BUFFER); -} - -/*PAGE - * - * _States_Is_waiting_for_segment - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_segment ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_SEGMENT); -} - -/*PAGE - * - * _States_Is_waiting_for_message - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_message ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_MESSAGE); -} - -/*PAGE - * - * _States_Is_waiting_for_event - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_event ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_EVENT); -} - -/*PAGE - * - * _States_Is_waiting_for_semaphore - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_semaphore ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_SEMAPHORE); -} - -/*PAGE - * - * _States_Is_waiting_for_time - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_time ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_TIME); -} - -/*PAGE - * - * _States_Is_waiting_for_rpc_reply - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_rpc_reply ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_RPC_REPLY); -} - -/*PAGE - * - * _States_Is_waiting_for_period - * - */ - -STATIC INLINE boolean _States_Is_waiting_for_period ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_PERIOD); -} - -/*PAGE - * - * _States_Is_locally_blocked - * - */ - -STATIC INLINE boolean _States_Is_locally_blocked ( - States_Control the_states -) -{ - return (the_states & STATES_LOCALLY_BLOCKED); -} - -/*PAGE - * - * _States_Is_waiting_on_thread_queue - * - */ - -STATIC INLINE boolean _States_Is_waiting_on_thread_queue ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_ON_THREAD_QUEUE); -} - -/*PAGE - * - * _States_Is_blocked - * - */ - -STATIC INLINE boolean _States_Is_blocked ( - States_Control the_states -) -{ - return (the_states & STATES_BLOCKED); -} - -/*PAGEPAGE - * - * - * _States_Are_set - * - */ - -STATIC INLINE boolean _States_Are_set ( - States_Control the_states, - States_Control mask -) -{ - return ( (the_states & mask) != STATES_READY); -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/sysstate.inl b/cpukit/score/inline/rtems/score/sysstate.inl deleted file mode 100644 index 14d838cb14..0000000000 --- a/cpukit/score/inline/rtems/score/sysstate.inl +++ /dev/null @@ -1,103 +0,0 @@ -/* sysstates.inl - * - * This file contains the inline implementation of routines regarding the - * system state. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SYSTEM_STATE_inl -#define __SYSTEM_STATE_inl - -/*PAGE - * - * _System_state_Set - */ - -STATIC INLINE void _System_state_Set ( - System_state_Codes state -) -{ - _System_state_Current = state; -} - -/*PAGE - * - * _System_state_Get - */ - -STATIC INLINE System_state_Codes _System_state_Get ( void ) -{ - return _System_state_Current; -} - -/*PAGE - * - * _System_state_Is_before_initialization - */ - -STATIC INLINE boolean _System_state_Is_before_initialization ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_BEFORE_INITIALIZATION); -} - -/*PAGE - * - * _System_state_Is_before_multitasking - */ - -STATIC INLINE boolean _System_state_Is_before_multitasking ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_BEFORE_MULTITASKING); -} - -/*PAGE - * - * _System_state_Is_begin_multitasking - */ - -STATIC INLINE boolean _System_state_Is_begin_multitasking ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_BEGIN_MULTITASKING); -} - -/*PAGE - * - * _System_state_Is_up - */ - -STATIC INLINE boolean _System_state_Is_up ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_UP); -} - -/*PAGE - * - * _System_state_Is_failed - */ - -STATIC INLINE boolean _System_state_Is_failed ( - System_state_Codes state -) -{ - return (state == SYSTEM_STATE_FAILED); -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/thread.inl b/cpukit/score/inline/rtems/score/thread.inl deleted file mode 100644 index 35b8eeccfe..0000000000 --- a/cpukit/score/inline/rtems/score/thread.inl +++ /dev/null @@ -1,252 +0,0 @@ -/* thread.inl - * - * This file contains the macro implementation of the inlined - * routines from the Thread handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_inl -#define __THREAD_inl - -/*PAGE - * - * _Thread_Stop_multitasking - * - */ - -STATIC INLINE void _Thread_Stop_multitasking( void ) -{ - _Context_Switch( &_Thread_Executing->Registers, &_Thread_BSP_context ); -} - -/*PAGE - * - * _Thread_Is_executing - * - */ - -STATIC INLINE boolean _Thread_Is_executing ( - Thread_Control *the_thread -) -{ - return ( the_thread == _Thread_Executing ); -} - -/*PAGE - * - * _Thread_Is_heir - * - */ - -STATIC INLINE boolean _Thread_Is_heir ( - Thread_Control *the_thread -) -{ - return ( the_thread == _Thread_Heir ); -} - -/*PAGE - * - * _Thread_Is_executing_also_the_heir - * - */ - -STATIC INLINE boolean _Thread_Is_executing_also_the_heir( void ) -{ - return ( _Thread_Executing == _Thread_Heir ); -} - -/*PAGE - * - * _Thread_Resume - * - */ - -STATIC INLINE void _Thread_Resume ( - Thread_Control *the_thread -) -{ - _Thread_Clear_state( the_thread, STATES_SUSPENDED ); -} - -/*PAGE - * - * _Thread_Unblock - * - */ - -STATIC INLINE void _Thread_Unblock ( - Thread_Control *the_thread -) -{ - _Thread_Clear_state( the_thread, STATES_BLOCKED ); -} - -/*PAGE - * - * _Thread_Restart_self - * - */ - -STATIC INLINE void _Thread_Restart_self( void ) -{ - if ( _Thread_Executing->fp_context != NULL ) - _Context_Restore_fp( &_Thread_Executing->fp_context ); - - _CPU_Context_Restart_self( &_Thread_Executing->Registers ); -} - -/*PAGE - * - * _Thread_Calculate_heir - * - */ - -STATIC INLINE void _Thread_Calculate_heir( void ) -{ - _Thread_Heir = (Thread_Control *) - _Thread_Ready_chain[ _Priority_Get_highest() ].first; -} - -/*PAGE - * - * _Thread_Is_allocated_fp - * - */ - -STATIC INLINE boolean _Thread_Is_allocated_fp ( - Thread_Control *the_thread -) -{ - return ( the_thread == _Thread_Allocated_fp ); -} - -/*PAGE - * - * _Thread_Deallocate_fp - * - */ - -STATIC INLINE void _Thread_Deallocate_fp( void ) -{ - _Thread_Allocated_fp = NULL; -} - -/*PAGE - * - * _Thread_Disable_dispatch - * - */ - -STATIC INLINE void _Thread_Disable_dispatch( void ) -{ - _Thread_Dispatch_disable_level += 1; -} - -/*PAGE - * - * _Thread_Enable_dispatch - * - */ - -#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE ) -STATIC INLINE void _Thread_Enable_dispatch() -{ - if ( (--_Thread_Dispatch_disable_level) == 0 ) - _Thread_Dispatch(); -} -#endif - -#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE ) -void _Thread_Enable_dispatch( void ); -#endif - -/*PAGE - * - * _Thread_Unnest_dispatch - * - */ - -STATIC INLINE void _Thread_Unnest_dispatch( void ) -{ - _Thread_Dispatch_disable_level -= 1; -} - -/*PAGE - * - * _Thread_Is_dispatching_enabled - * - */ - -STATIC INLINE boolean _Thread_Is_dispatching_enabled( void ) -{ - return ( _Thread_Dispatch_disable_level == 0 ); -} - -/*PAGE - * - * _Thread_Is_context_switch_necessary - * - */ - -STATIC INLINE boolean _Thread_Is_context_switch_necessary( void ) -{ - return ( _Context_Switch_necessary ); -} - -/*PAGE - * - * _Thread_Dispatch_initialization - * - */ - -STATIC INLINE void _Thread_Dispatch_initialization( void ) -{ - _Thread_Dispatch_disable_level = 1; -} - -/*PAGE - * - * _Thread_Is_null - * - */ - -STATIC INLINE boolean _Thread_Is_null ( - Thread_Control *the_thread -) -{ - return ( the_thread == NULL ); -} - -/*PAGE - * - * _Thread_Get - * - */ - -STATIC INLINE Thread_Control *_Thread_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { - _Thread_Disable_dispatch(); - *location = OBJECTS_LOCAL; - return( _Thread_Executing ); - } - - return (Thread_Control *) - _Objects_Get( &_Thread_Information, id, location ); -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/threadmp.inl b/cpukit/score/inline/rtems/score/threadmp.inl deleted file mode 100644 index f4beba59ed..0000000000 --- a/cpukit/score/inline/rtems/score/threadmp.inl +++ /dev/null @@ -1,53 +0,0 @@ -/* inline/threadmp.inl - * - * This include file contains the bodies of all inlined routines - * for the multiprocessing part of thread package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __INLINE_MP_THREAD_inl -#define __INLINE_MP_THREAD_inl - -/*PAGE - * - * _Thread_MP_Is_receive - * - */ - -STATIC INLINE boolean _Thread_MP_Is_receive ( - Thread_Control *the_thread -) -{ - return the_thread == _Thread_MP_Receive; -} - -/*PAGE - * - * _Thread_MP_Free_proxy - * - */ - -STATIC INLINE void _Thread_MP_Free_proxy ( - Thread_Control *the_thread -) -{ - Thread_Proxy_control *the_proxy; - - the_proxy = (Thread_Proxy_control *) the_thread; - - _Chain_Extract( &the_proxy->Active ); - - _Chain_Append( &_Thread_MP_Inactive_proxies, &the_thread->Object.Node ); -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/tod.inl b/cpukit/score/inline/rtems/score/tod.inl deleted file mode 100644 index dadcdabcda..0000000000 --- a/cpukit/score/inline/rtems/score/tod.inl +++ /dev/null @@ -1,72 +0,0 @@ -/* tod.inl - * - * This file contains the static inline implementation of the inlined routines - * from the Time of Day Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIME_OF_DAY_inl -#define __TIME_OF_DAY_inl - -/*PAGE - * - * _TOD_Is_set - * - */ - -STATIC INLINE boolean _TOD_Is_set( void ) -{ - return _Watchdog_Is_active( &_TOD_Seconds_watchdog ); -} - -/*PAGE - * - * _TOD_Tickle_ticks - * - */ - -STATIC INLINE void _TOD_Tickle_ticks( void ) -{ - _TOD_Current.ticks += 1; - _TOD_Ticks_since_boot += 1; -} - -/*PAGE - * - * _TOD_Deactivate - * - */ - -STATIC INLINE void _TOD_Deactivate( void ) -{ - _Watchdog_Remove( &_TOD_Seconds_watchdog ); -} - -/*PAGE - * - * _TOD_Activate - * - */ - -STATIC INLINE void _TOD_Activate( - rtems_interval ticks -) -{ - _Watchdog_Insert_ticks( - &_TOD_Seconds_watchdog, - ticks, - WATCHDOG_ACTIVATE_NOW - ); -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/tqdata.inl b/cpukit/score/inline/rtems/score/tqdata.inl deleted file mode 100644 index 7ec1e9e186..0000000000 --- a/cpukit/score/inline/rtems/score/tqdata.inl +++ /dev/null @@ -1,47 +0,0 @@ -/* tqdata.inl - * - * This file contains the static inline implementation of the inlined - * routines needed to support the Thread Queue Data. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_QUEUE_DATA_inl -#define __THREAD_QUEUE_DATA_inl - -/*PAGE - * - * _Thread_queue_Header_number - * - */ - -STATIC INLINE unsigned32 _Thread_queue_Header_number ( - rtems_task_priority the_priority -) -{ - return ( the_priority >> 6 ); -} - -/*PAGE - * - * _Thread_queue_Is_reverse_search - * - */ - -STATIC INLINE boolean _Thread_queue_Is_reverse_search ( - rtems_task_priority the_priority -) -{ - return ( the_priority & 0x20 ); -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/userext.inl b/cpukit/score/inline/rtems/score/userext.inl deleted file mode 100644 index 1558da968a..0000000000 --- a/cpukit/score/inline/rtems/score/userext.inl +++ /dev/null @@ -1,268 +0,0 @@ -/* userext.inl - * - * This file contains the macro implementation of the inlined routines - * from the User Extension Handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __USER_EXTENSIONS_inl -#define __USER_EXTENSIONS_inl - -/*PAGE - * - * _User_extensions_Handler_initialization - * - */ - -STATIC INLINE void _User_extensions_Handler_initialization ( - rtems_extensions_table *initial_extensions -) -{ - _Chain_Initialize_empty( &_User_extensions_List ); - - if ( initial_extensions ) { - _User_extensions_Initial.Callouts = *initial_extensions; - _Chain_Append( &_User_extensions_List, &_User_extensions_Initial.Node ); - } -} - -/*PAGE - * - * _User_extensions_Add_set - */ - -STATIC INLINE void _User_extensions_Add_set ( - User_extensions_Control *the_extension, - rtems_extensions_table *extension_table -) -{ - the_extension->Callouts = *extension_table; - - _Chain_Append( &_User_extensions_List, &the_extension->Node ); -} - -/*PAGE - * - * _User_extensions_Remove_set - */ - -STATIC INLINE void _User_extensions_Remove_set ( - User_extensions_Control *the_extension -) -{ - _Chain_Extract( &the_extension->Node ); -} - -/*PAGE - * - * _User_extensions_Task_create - * - */ - -STATIC INLINE void _User_extensions_Task_create ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_create != NULL ) - (*the_extension->Callouts.rtems_task_create)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_delete - */ - -STATIC INLINE void _User_extensions_Task_delete ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_delete != NULL ) - (*the_extension->Callouts.rtems_task_delete)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_start - * - */ - -STATIC INLINE void _User_extensions_Task_start ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_start != NULL ) - (*the_extension->Callouts.rtems_task_start)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_restart - * - */ - -STATIC INLINE void _User_extensions_Task_restart ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_restart != NULL ) - (*the_extension->Callouts.rtems_task_restart)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_switch - * - */ - -STATIC INLINE void _User_extensions_Task_switch ( - Thread_Control *executing, - Thread_Control *heir -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.task_switch != NULL ) - (*the_extension->Callouts.task_switch)( executing, heir ); - } -} - -/*PAGE - * - * _User_extensions_Task_begin - * - */ - -STATIC INLINE void _User_extensions_Task_begin ( - Thread_Control *executing -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.task_begin != NULL ) - (*the_extension->Callouts.task_begin)( executing ); - } -} - -/*PAGE - * - * _User_extensions_Task_exitted - */ - -STATIC INLINE void _User_extensions_Task_exitted ( - Thread_Control *executing -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.task_exitted != NULL ) - (*the_extension->Callouts.task_exitted)( executing ); - } -} - -/*PAGE - * - * _User_extensions_Fatal - */ - -STATIC INLINE void _User_extensions_Fatal ( - unsigned32 the_error -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.fatal != NULL ) - (*the_extension->Callouts.fatal)( the_error ); - } -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/watchdog.inl b/cpukit/score/inline/rtems/score/watchdog.inl deleted file mode 100644 index d5d12cbeef..0000000000 --- a/cpukit/score/inline/rtems/score/watchdog.inl +++ /dev/null @@ -1,296 +0,0 @@ -/* watchdog.inl - * - * This file contains the static inline implementation of all inlined - * routines in the Watchdog Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WATCHDOG_inl -#define __WATCHDOG_inl - -/*PAGE - * - * _Watchdog_Initialize - * - */ - -STATIC INLINE void _Watchdog_Initialize( - Watchdog_Control *the_watchdog, - rtems_timer_service_routine_entry routine, - Objects_Id id, - void *user_data -) -{ - the_watchdog->state = WATCHDOG_INACTIVE; - the_watchdog->routine = routine; - the_watchdog->id = id; - the_watchdog->user_data = user_data; -} - -/*PAGE - * - * _Watchdog_Is_active - * - */ - -STATIC INLINE boolean _Watchdog_Is_active( - Watchdog_Control *the_watchdog -) -{ - - return ( the_watchdog->state == WATCHDOG_ACTIVE ); - -} - -/*PAGE - * - * _Watchdog_Activate - * - */ - -STATIC INLINE void _Watchdog_Activate( - Watchdog_Control *the_watchdog -) -{ - - the_watchdog->state = WATCHDOG_ACTIVE; - -} - -/*PAGE - * - * _Watchdog_Deactivate - * - */ - -STATIC INLINE void _Watchdog_Deactivate( - Watchdog_Control *the_watchdog -) -{ - - the_watchdog->state = WATCHDOG_REMOVE_IT; - -} - -/*PAGE - * - * _Watchdog_Tickle_ticks - * - */ - -STATIC INLINE void _Watchdog_Tickle_ticks( void ) -{ - - _Watchdog_Tickle( &_Watchdog_Ticks_chain ); - -} - -/*PAGE - * - * _Watchdog_Tickle_seconds - * - */ - -STATIC INLINE void _Watchdog_Tickle_seconds( void ) -{ - - _Watchdog_Tickle( &_Watchdog_Seconds_chain ); - -} - -/*PAGE - * - * _Watchdog_Insert_ticks - * - */ - -STATIC INLINE void _Watchdog_Insert_ticks( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -) -{ - - the_watchdog->initial = units; - - _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog, insert_mode ); - -} - -/*PAGE - * - * _Watchdog_Insert_seconds - * - */ - -STATIC INLINE void _Watchdog_Insert_seconds( - Watchdog_Control *the_watchdog, - rtems_interval units, - Watchdog_Insert_modes insert_mode -) -{ - - the_watchdog->initial = units; - - _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog, insert_mode ); - -} - -/*PAGE - * - * _Watchdog_Adjust_seconds - * - */ - -STATIC INLINE void _Watchdog_Adjust_seconds( - Watchdog_Adjust_directions direction, - rtems_interval units -) -{ - - _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units ); - -} - -/*PAGE - * - * _Watchdog_Adjust_ticks - * - */ - -STATIC INLINE void _Watchdog_Adjust_ticks( - Watchdog_Adjust_directions direction, - rtems_interval units -) -{ - - _Watchdog_Adjust( &_Watchdog_Ticks_chain, direction, units ); - -} - -/*PAGE - * - * _Watchdog_Reset - * - */ - -STATIC INLINE void _Watchdog_Reset( - Watchdog_Control *the_watchdog -) -{ - - (void) _Watchdog_Remove( the_watchdog ); - - _Watchdog_Insert( - &_Watchdog_Ticks_chain, - the_watchdog, - WATCHDOG_ACTIVATE_NOW - ); - -} - -/*PAGE - * - * _Watchdog_Next - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Next( - Watchdog_Control *the_watchdog -) -{ - - return ( (Watchdog_Control *) the_watchdog->Node.next ); - -} - -/*PAGE - * - * _Watchdog_Previous - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Previous( - Watchdog_Control *the_watchdog -) -{ - - return ( (Watchdog_Control *) the_watchdog->Node.previous ); - -} - -/*PAGE - * - * _Watchdog_First - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_First( - Chain_Control *header -) -{ - - return ( (Watchdog_Control *) header->first ); - -} - -/*PAGE - * - * _Watchdog_Last - * - */ -STATIC INLINE Watchdog_Control *_Watchdog_Last( - Chain_Control *header -) -{ - - return ( (Watchdog_Control *) header->last ); - -} - -/*PAGE - * - * _Watchdog_Get_sync - * - */ - -STATIC INLINE Watchdog_Control *_Watchdog_Get_sync( void ) -{ - return (Watchdog_Control *) _Watchdog_Sync; -} - -/*PAGE - * - * _Watchdog_Set_sync - * - */ - -STATIC INLINE void _Watchdog_Set_sync( - Watchdog_Control *the_watchdog -) -{ - _Watchdog_Sync = (Watchdog_Synchronization_pointer) the_watchdog; -} - -/*PAGE - * - * _Watchdog_Clear_sync - * - */ - -STATIC INLINE void _Watchdog_Clear_sync( void ) -{ - _Watchdog_Sync = NULL; -} - -#endif -/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/wkspace.inl b/cpukit/score/inline/rtems/score/wkspace.inl deleted file mode 100644 index fee7623a6c..0000000000 --- a/cpukit/score/inline/rtems/score/wkspace.inl +++ /dev/null @@ -1,104 +0,0 @@ -/* wkspace.inl - * - * This include file contains the bodies of the routines which contains - * information related to the RTEMS RAM Workspace. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WORKSPACE_inl -#define __WORKSPACE_inl - -/*PAGE - * - * _Workspace_Handler_initialization - * - */ - -STATIC INLINE void _Workspace_Handler_initialization( - void *starting_address, - unsigned32 size -) -{ - unsigned32 *zero_out_array; - unsigned32 index; - unsigned32 memory_available; - - if ( (starting_address == NULL) || - !_Addresses_Is_aligned( starting_address ) ) - rtems_fatal_error_occurred( RTEMS_INVALID_ADDRESS ); - - if ( _CPU_Table.do_zero_of_workspace ) { - for( zero_out_array = (unsigned32 *) starting_address, index = 0 ; - index < size / 4 ; - index++ ) - zero_out_array[ index ] = 0; - } - - memory_available = _Heap_Initialize( - &_Workspace_Area, - starting_address, - size, - CPU_HEAP_ALIGNMENT - ); - - if ( memory_available == 0 ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); -} - -/*PAGE - * - * _Workspace_Allocate - * - */ - -STATIC INLINE void *_Workspace_Allocate( - unsigned32 size -) -{ - return _Heap_Allocate( &_Workspace_Area, size ); -} - -/*PAGE - * - * _Workspace_Allocate_or_fatal_error - * - */ - -STATIC INLINE void *_Workspace_Allocate_or_fatal_error( - unsigned32 size -) -{ - void *memory; - - memory = _Workspace_Allocate( size ); - - if ( memory == NULL ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); - - return memory; -} - -/*PAGE - * - * _Workspace_Free - * - */ - -STATIC INLINE boolean _Workspace_Free( - void *block -) -{ - return _Heap_Free( &_Workspace_Area, block ); -} - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/README b/cpukit/score/macros/README deleted file mode 100644 index b2f0c4d481..0000000000 --- a/cpukit/score/macros/README +++ /dev/null @@ -1,18 +0,0 @@ -# -# $Id$ -# - -The files in this directory are not considered the "primary" source -of inlined routines for RTEMS. The "inline" directory contains -the implementations of the inlined basis which are regularly -tested. In general, an effort is made to keep the contents of -this directory up to date but testing is only performed irregularly -and even then it is usually with a single target processor and BSP. - -The primary purpose of the code in this directory is to insure -that RTEMS can be compiled using a C compiler which does not support -static inline routines. - -These were last successfully tested on 2/1/95 on a prerelease version -of 3.2.0. The testing was done only on the Force CPU386 i386 target board. -No testing was done on version of the code in the final release. diff --git a/cpukit/score/macros/rtems/score/README b/cpukit/score/macros/rtems/score/README deleted file mode 100644 index b2f0c4d481..0000000000 --- a/cpukit/score/macros/rtems/score/README +++ /dev/null @@ -1,18 +0,0 @@ -# -# $Id$ -# - -The files in this directory are not considered the "primary" source -of inlined routines for RTEMS. The "inline" directory contains -the implementations of the inlined basis which are regularly -tested. In general, an effort is made to keep the contents of -this directory up to date but testing is only performed irregularly -and even then it is usually with a single target processor and BSP. - -The primary purpose of the code in this directory is to insure -that RTEMS can be compiled using a C compiler which does not support -static inline routines. - -These were last successfully tested on 2/1/95 on a prerelease version -of 3.2.0. The testing was done only on the Force CPU386 i386 target board. -No testing was done on version of the code in the final release. diff --git a/cpukit/score/macros/rtems/score/address.inl b/cpukit/score/macros/rtems/score/address.inl deleted file mode 100644 index f2672f2500..0000000000 --- a/cpukit/score/macros/rtems/score/address.inl +++ /dev/null @@ -1,79 +0,0 @@ -/* macros/address.h - * - * This include file contains the bodies of the routines - * about addresses which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_ADDRESSES_h -#define __MACROS_ADDRESSES_h - -/*PAGE - * - * _Addresses_Add_offset - * - */ - -#define _Addresses_Add_offset( _base, _offset ) \ - ((void *)(_base) + (_offset)) - -/*PAGE - * - * _Addresses_Subtract_offset - * - */ - -#define _Addresses_Subtract_offset( _base, _offset ) \ - ((void *)(_base) - (_offset)) - -/*PAGE - * - * _Addresses_Add - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -#define _Addresses_Add( _left, _right ) \ - ((void *)(_left) + (unsigned32)(_right)) - -/*PAGE - * - * _Addresses_Subtract - * - * NOTE: The cast of an address to an unsigned32 makes this code - * dependent on an addresses being thirty two bits. - */ - -#define _Addresses_Subtract( _left, _right ) \ - ((void *)(_left) - (void *)(_right)) - -/*PAGE - * - * _Addresses_Is_aligned - * - */ - -#define _Addresses_Is_aligned( _address ) \ - ( ( (unsigned32)(_address) % 4 ) == 0 ) - -/*PAGE - * - * _Addresses_Is_in_range - * - */ - -#define _Addresses_Is_in_range( _address, _base, _limit ) \ - ( (_address) >= (_base) && (_address) <= (_limit) ) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/chain.inl b/cpukit/score/macros/rtems/score/chain.inl deleted file mode 100644 index a53b3fc270..0000000000 --- a/cpukit/score/macros/rtems/score/chain.inl +++ /dev/null @@ -1,200 +0,0 @@ -/* macros/chain.h - * - * This include file contains the bodies of the routines which are - * associated with doubly linked chains and inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_CHAIN_h -#define __MACROS_CHAIN_h - -/*PAGE - * - * _Chain_Are_nodes_equal - */ - -#define _Chain_Are_nodes_equal( _left, _right ) \ - ( (_left) == (_right) ) - -/*PAGE - * - * _Chain_Is_null - */ - -#define _Chain_Is_null( _the_chain ) \ - ( (_the_chain) == NULL ) - -/*PAGE - * - * _Chain_Is_null_node - */ - -#define _Chain_Is_null_node( _the_node ) \ - ( (_the_node) == NULL ) - -/*PAGE - * - * _Chain_Head - */ - -#define _Chain_Head( _the_chain ) \ - ((Chain_Node *) (_the_chain)) - -/*PAGE - * - * _Chain_Tail - */ - -#define _Chain_Tail( _the_chain ) \ - ((Chain_Node *) &(_the_chain)->permanent_null) - -/*PAGE - * - * _Chain_Is_empty - */ - -#define _Chain_Is_empty( _the_chain ) \ - ( (_the_chain)->first == _Chain_Tail( (_the_chain) ) ) - -/*PAGE - * - * _Chain_Is_first - */ - -#define _Chain_Is_first( _the_node ) \ - ( (the_node)->previous == NULL ) - -/*PAGE - * - * _Chain_Is_last - */ - -#define _Chain_Is_last( _the_node ) \ - ( (_the_node)->next == NULL ) - -/*PAGE - * - * _Chain_Has_only_one_node - */ - -#define _Chain_Has_only_one_node( _the_chain ) \ - ( (_the_chain)->first == (_the_chain)->last ) - -/*PAGE - * - * _Chain_Is_head - */ - -#define _Chain_Is_head( _the_chain, _the_node ) \ - ( (_the_node) == _Chain_Head( (_the_chain) ) ) - -/*PAGE - * - * _Chain_Is_tail - */ - -#define _Chain_Is_tail( _the_chain, _the_node ) \ - ( (_the_node) == _Chain_Tail( (_the_chain) ) ) - -/*PAGE - * - * Chain_Initialize_empty - */ - -#define _Chain_Initialize_empty( _the_chain ) \ -{ \ - (_the_chain)->first = _Chain_Tail( (_the_chain) ); \ - (_the_chain)->permanent_null = NULL; \ - (_the_chain)->last = _Chain_Head( (_the_chain) ); \ -} - -/*PAGE - * - * _Chain_Extract_unprotected - */ - -#define _Chain_Extract_unprotected( _the_node ) \ -{ \ - Chain_Node *_next; \ - Chain_Node *_previous; \ - \ - _next = (_the_node)->next; \ - _previous = (_the_node)->previous; \ - _next->previous = _previous; \ - _previous->next = _next; \ -} - -/*PAGE - * - * _Chain_Get_unprotected - */ - -/*PAGE - * - * Chain_Get_unprotected - */ - -#define _Chain_Get_unprotected( _the_chain ) \ - (( !_Chain_Is_empty( (_the_chain) ) ) \ - ? _Chain_Get_unprotected( (_the_chain) ) \ - : NULL) - -/*PAGE - * - * _Chain_Insert_unprotected - */ - -#define _Chain_Insert_unprotected( _after_node, _the_node ) \ -{ \ - Chain_Node *_before_node; \ - \ - (_the_node)->previous = (_after_node); \ - _before_node = (_after_node)->next; \ - (_after_node)->next = (_the_node); \ - (_the_node)->next = _before_node; \ - _before_node->previous = (_the_node); \ -} - -/*PAGE - * - * _Chain_Append_unprotected - */ - -#define _Chain_Append_unprotected( _the_chain, _the_node ) \ -{ \ - Chain_Node *_old_last_node; \ - \ - (_the_node)->next = _Chain_Tail( (_the_chain) ); \ - _old_last_node = (_the_chain)->last; \ - (_the_chain)->last = (_the_node); \ - _old_last_node->next = (_the_node); \ - (_the_node)->previous = _old_last_node; \ -} - -/*PAGE - * - * _Chain_Prepend_unprotected - */ - -#define _Chain_Prepend_unprotected( _the_chain, _the_node ) \ - _Chain_Insert_unprotected( _Chain_Head( (_the_chain) ), (_the_node) ) - -/*PAGE - * - * _Chain_Prepend - */ - -#define _Chain_Prepend( _the_chain, _the_node ) \ - _Chain_Insert( _Chain_Head( (_the_chain) ), (_the_node) ) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/heap.inl b/cpukit/score/macros/rtems/score/heap.inl deleted file mode 100644 index 6f06478207..0000000000 --- a/cpukit/score/macros/rtems/score/heap.inl +++ /dev/null @@ -1,136 +0,0 @@ -/* heap.inl - * - * This file contains the macro implementation of the inlined - * routines from the heap handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __HEAP_inl -#define __HEAP_inl - -#include - -/*PAGE - * - * _Heap_Head - */ - -#define _Heap_Head( _the_heap ) \ - ((Heap_Block *)&(_the_heap)->start) - -/*PAGE - * - * _Heap_Tail - */ - -#define _Heap_Tail( _the_heap ) \ - ((Heap_Block *)&(_the_heap)->final) - -/*PAGE - * - * _Heap_Previous_block - */ - -#define _Heap_Previous_block( _the_block ) \ - ( (Heap_Block *) _Addresses_Subtract_offset( \ - (void *)(_the_block), \ - (_the_block)->back_flag & ~ HEAP_BLOCK_USED \ - ) - -/*PAGE - * - * _Heap_Next_block - */ - -#define _Heap_Next_block( _the_block ) \ - ( (Heap_Block *) _Addresses_Add_offset( \ - (void *)(_the_block), \ - (_the_block)->front_flag & ~ HEAP_BLOCK_USED \ - ) - -/*PAGE - * - * _Heap_Block_at - */ - -#define _Heap_Block_at( _base, _offset ) \ - ( (Heap_Block *) \ - _Addresses_Add_offset( (void *)(_base), (_offset) ) ) - -/*PAGE - * - * _Heap_Is_previous_block_free - */ - -#define _Heap_Is_previous_block_free( _the_block ) \ - ( !((_the_block)->back_flag & HEAP_BLOCK_USED) ) - -/*PAGE - * - * _Heap_Is_block_free - */ - -#define _Heap_Is_block_free( _the_block ) \ - ( !((_the_block)->front_flag & HEAP_BLOCK_USED) ) - -/*PAGE - * - * _Heap_Is_block_used - */ - -#define _Heap_Is_block_used( _the_block ) \ - ((_the_block)->front_flag & HEAP_BLOCK_USED) - -/*PAGE - * - * _Heap_Block_size - */ - -#define _Heap_Block_size( _the_block ) \ - ((_the_block)->front_flag & ~HEAP_BLOCK_USED) - -/*PAGE - * - * _Heap_Start_of_user_area - */ - -#define _Heap_Start_of_user_area( _the_block ) \ - ((void *) &(_the_block)->next) - -/*PAGE - * - * _Heap_Is_block_in - */ - -#define _Heap_Is_block_in( _the_heap, _the_block ) \ - ( ((_the_block) >= (_the_heap)->start) && \ - ((_the_block) <= (_the_heap)->final) ) - -/*PAGE - * - * _Heap_Is_page_size_valid - */ - -#define _Heap_Is_page_size_valid( _page_size ) \ - ( ((_page_size) != 0) && \ - (((_page_size) % CPU_HEAP_ALIGNMENT) == 0) ) - -/*PAGE - * - * _Heap_Build_flag - */ - -#define _Heap_Build_flag( _size, _in_use_flag ) \ - ( (_size) | (_in_use_flag)) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/isr.inl b/cpukit/score/macros/rtems/score/isr.inl deleted file mode 100644 index 93f234c7ff..0000000000 --- a/cpukit/score/macros/rtems/score/isr.inl +++ /dev/null @@ -1,60 +0,0 @@ -/* isr.inl - * - * This include file contains the macro implementation of all - * inlined routines in the Interrupt Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __ISR_inl -#define __ISR_inl - -/*PAGE - * - * _ISR_Handler_initialization - * - */ - -#define _ISR_Handler_initialization() \ - { \ - _ISR_Signals_to_thread_executing = FALSE; \ - _ISR_Nest_level = 0; \ - } - -/*PAGE - * - * _ISR_Is_in_progress - * - */ - -#define _ISR_Is_in_progress() \ - (_ISR_Nest_level != 0) - -/*PAGE - * - * _ISR_Is_vector_number_valid - * - */ - -#define _ISR_Is_vector_number_valid( _vector ) \ - ( (_vector) < CPU_INTERRUPT_NUMBER_OF_VECTORS ) - -/*PAGE - * - * _ISR_Is_valid_user_handler - * - */ - -#define _ISR_Is_valid_user_handler( _handler ) \ - ((_handler) != NULL) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/mppkt.inl b/cpukit/score/macros/rtems/score/mppkt.inl deleted file mode 100644 index ff1d51034b..0000000000 --- a/cpukit/score/macros/rtems/score/mppkt.inl +++ /dev/null @@ -1,41 +0,0 @@ -/* macros/mppkt.h - * - * This package is the implementation of the Packet Handler - * routines which are inlined. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_MP_PACKET_h -#define __MACROS_MP_PACKET_h - -/*PAGE - * - * _Mp_packet_Is_valid_packet_class - * - * NOTE: Check for lower bounds (MP_PACKET_CLASSES_FIRST ) is unnecessary - * because this enum starts at lower bound of zero. - */ - -#define _Mp_packet_Is_valid_packet_class( _the_packet_class ) \ - ( (_the_packet_class) <= MP_PACKET_CLASSES_LAST ) - -/*PAGE - * - * _Mp_packet_Is_null - * - */ - -#define _Mp_packet_Is_null ( _the_packet ) \ - ( (_the_packet) == NULL ) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/object.inl b/cpukit/score/macros/rtems/score/object.inl deleted file mode 100644 index f4fdc39d6e..0000000000 --- a/cpukit/score/macros/rtems/score/object.inl +++ /dev/null @@ -1,146 +0,0 @@ -/* object.inl - * - * This include file contains the macro implementation of all - * of the inlined routines in the Object Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __OBJECTS_inl -#define __OBJECTS_inl - -/*PAGE - * - * _Objects_Is_name_valid - * - */ - -#define _Objects_Is_name_valid( _name ) \ - ( (_name) != 0 ) - -/* - * rtems_name_to_characters - * - */ - -#define rtems_name_to_characters( _name, _c1, _c2, _c3, _c4 ) \ - { \ - (*(_c1) = ((_name) >> 24) & 0xff; \ - (*(_c2) = ((_name) >> 16) & 0xff; \ - (*(_c3) = ((_name) >> 8) & 0xff; \ - (*(_c4) = ((_name)) & 0xff; \ - } -); - -/*PAGE - * - * _Objects_Build_id - * - */ - -#define _Objects_Build_id( _node, _index ) \ - ( ((_node) << 16) | (_index) ) - -/*PAGE - * - * rtems_get_node - * - */ - -#define rtems_get_node( _id ) \ - ((_id) >> 16) - -/*PAGE - * - * rtems_get_index - * - */ - -#define rtems_get_index( _id ) \ - ((_id) & 0xFFFF) - -/*PAGE - * - * _Objects_Is_local_node - * - */ - -#define _Objects_Is_local_node( _node ) \ - ( (_node) == _Objects_Local_node ) - -/*PAGE - * - * _Objects_Is_local_id - * - */ - -#define _Objects_Is_local_id( _id ) \ - _Objects_Is_local_node( rtems_get_node(_id) ) - -/*PAGE - * - * _Objects_Are_ids_equal - * - */ - -#define _Objects_Are_ids_equal( _left, _right ) \ - ( (_left) == (_right) ) - -/*PAGE - * - * _Objects_Allocate - * - */ - -#define _Objects_Allocate( _information ) \ - (Objects_Control *) _Chain_Get( &(_information)->Inactive ) - -/*PAGE - * - * _Objects_Free - * - */ - -#define _Objects_Free( _information, _the_object ) \ - _Chain_Append( &(_information)->Inactive, &(_the_object)->Node ) - -/*PAGE - * - * _Objects_Open - * - */ - -#define _Objects_Open( _information, _the_object, _name ) \ - { \ - unsigned32 _index; \ - \ - _index = rtems_get_index( (_the_object)->id ); \ - (_information)->local_table[ _index ] = (_the_object); \ - (_information)->name_table[ _index ] = (_name); \ - } - -/*PAGE - * - * _Objects_Close - * - */ - -#define _Objects_Close( _information, _the_object ) \ - { \ - unsigned32 _index; \ - \ - _index = rtems_get_index( (_the_object)->id ); \ - (_information)->local_table[ _index ] = NULL; \ - (_information)->name_table[ _index ] = 0; \ - } - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/objectmp.inl b/cpukit/score/macros/rtems/score/objectmp.inl deleted file mode 100644 index 2f1c5ac7fa..0000000000 --- a/cpukit/score/macros/rtems/score/objectmp.inl +++ /dev/null @@ -1,50 +0,0 @@ -/* macros/objectmp.inl - * - * This include file contains the bodies of all inlined routines - * which deal with global objects. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_MP_OBJECTS_inl -#define __MACROS_MP_OBJECTS_inl - -/*PAGE - * - * _Objects_MP_Allocate_global_object - * - */ - -#define _Objects_MP_Allocate_global_object() \ - (Objects_MP_Control *) \ - _Chain_Get( &_Objects_MP_Inactive_global_objects ) - -/*PAGE - * _Objects_MP_Free_global_object - * - */ - -#define _Objects_MP_Free_global_object( _the_object ) \ - _Chain_Append( \ - &_Objects_MP_Inactive_global_objects, \ - &(_the_object)->Object.Node \ - ) - -/*PAGE - * _Objects_MP_Is_null_global_object - * - */ - -#define _Objects_MP_Is_null_global_object( _the_object ) \ - ( (_the_object) == NULL ) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/priority.inl b/cpukit/score/macros/rtems/score/priority.inl deleted file mode 100644 index 7ad1fd909a..0000000000 --- a/cpukit/score/macros/rtems/score/priority.inl +++ /dev/null @@ -1,144 +0,0 @@ -/* priority.inl - * - * This file contains the macro implementation of all inlined routines - * in the Priority Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __PRIORITY_inl -#define __PRIORITY_inl - -#include - -/*PAGE - * - * _Priority_Handler_initialization - * - */ - -#define _Priority_Handler_initialization() \ - { \ - unsigned32 index; \ - \ - _Priority_Major_bit_map = 0; \ - for ( index=0 ; index <16 ; index++ ) \ - _Priority_Bit_map[ index ] = 0; \ - } - -/*PAGE - * - * _Priority_Is_valid - * - */ - -#define _Priority_Is_valid( _the_priority ) \ - ( ( (_the_priority) >= RTEMS_MINIMUM_PRIORITY ) && \ - ( (_the_priority) <= RTEMS_MAXIMUM_PRIORITY ) ) - -/*PAGE - * - * _Priority_Major - * - */ - -#define _Priority_Major( _the_priority ) ( (_the_priority) / 16 ) - -/*PAGE - * - * _Priority_Minor - * - */ - -#define _Priority_Minor( _the_priority ) ( (_the_priority) % 16 ) - -/*PAGE - * - * _Priority_Add_to_bit_map - * - */ - -#define _Priority_Add_to_bit_map( _the_priority_map ) \ - { \ - *(_the_priority_map)->minor |= (_the_priority_map)->ready_minor; \ - _Priority_Major_bit_map |= (_the_priority_map)->ready_major; \ - } - -/*PAGE - * - * _Priority_Remove_from_bit_map - * - */ - -#define _Priority_Remove_from_bit_map( _the_priority_map ) \ - { \ - *(_the_priority_map)->minor &= (_the_priority_map)->block_minor; \ - if ( *(_the_priority_map)->minor == 0 ) \ - _Priority_Major_bit_map &= (_the_priority_map)->block_major; \ - } - -/*PAGE - * - * _Priority_Get_highest - * - */ - -#define _Priority_Get_highest( _high_priority ) \ - { \ - Priority_Bit_map_control minor; \ - Priority_Bit_map_control major; \ - \ - _Bitfield_Find_first_bit( _Priority_Major_bit_map, major ); \ - _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); \ - \ - (_high_priority) = (_CPU_Priority_Bits_index( major ) * 16) + \ - _CPU_Priority_Bits_index( minor ); \ - } - -/*PAGE - * - * _Priority_Initialize_information - * - */ - -#define _Priority_Initialize_information( \ - _the_priority_map, _new_priority ) \ - { \ - Priority_Bit_map_control _major; \ - Priority_Bit_map_control _minor; \ - Priority_Bit_map_control _mask; \ - \ - _major = _Priority_Major( (_new_priority) ); \ - _minor = _Priority_Minor( (_new_priority) ); \ - \ - (_the_priority_map)->minor = \ - &_Priority_Bit_map[ _CPU_Priority_Bits_index(_major) ]; \ - \ - _mask = _CPU_Priority_Mask( _major ); \ - (_the_priority_map)->ready_major = _mask; \ - (_the_priority_map)->block_major = ~_mask; \ - \ - _mask = _CPU_Priority_Mask( _minor ); \ - (_the_priority_map)->ready_minor = _mask; \ - (_the_priority_map)->block_minor = ~_mask; \ - } - -/*PAGE - * - * _Priority_Is_group_empty - * - */ - -#define _Priority_Is_group_empty ( _the_priority ) \ - ( (_the_priority) == 0 ) -} -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/stack.inl b/cpukit/score/macros/rtems/score/stack.inl deleted file mode 100644 index 208503b45f..0000000000 --- a/cpukit/score/macros/rtems/score/stack.inl +++ /dev/null @@ -1,50 +0,0 @@ -/* stack.inl - * - * This file contains the macro implementation of the inlined - * routines from the Stack Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STACK_inl -#define __STACK_inl - -/*PAGE - * - * _Stack_Initialize - * - */ - -#define _Stack_Initialize( _the_stack, _starting_address, _size ) \ - { \ - (_the_stack)->area = (_starting_address); \ - (_the_stack)->size = (_size); \ - } - -/*PAGE - * - * _Stack_Is_enough - * - */ - -#define _Stack_Is_enough( _size ) \ - ( (_size) >= RTEMS_MINIMUM_STACK_SIZE ) - -/*PAGE - * - * _Stack_Adjust_size - */ - -#define _Stack_Adjust_size( _size ) \ - ((_size) + CPU_STACK_ALIGNMENT) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/states.inl b/cpukit/score/macros/rtems/score/states.inl deleted file mode 100644 index f69c4ba042..0000000000 --- a/cpukit/score/macros/rtems/score/states.inl +++ /dev/null @@ -1,201 +0,0 @@ -/* states.inl - * - * This file contains the macro implementation of the inlined - * routines associated with RTEMS state information. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __STATES_inl -#define __STATES_inl - -/*PAGE - * - * _States_Set - * - */ - -#define _States_Set( _states_to_set, _current_state ) \ - ((_current_state) | (_states_to_set)) - -/*PAGE - * - * _States_Clear - * - */ - -#define _States_Clear( _states_to_clear, _current_state ) \ - ((_current_state) & ~(_states_to_clear)) - -/*PAGE - * - * _States_Is_ready - * - */ - -#define _States_Is_ready( _the_states ) \ - ( (_the_states) == STATES_READY ) - -/*PAGE - * - * _States_Is_only_dormant - * - */ - -#define _States_Is_only_dormant( _the_states ) \ - ( (_the_states) == STATES_DORMANT ) - -/*PAGE - * - * _States_Is_dormant - * - */ - -#define _States_Is_dormant( _the_states ) \ - ( (_the_states) & STATES_DORMANT ) - -/*PAGE - * - * _States_Is_suspended - * - */ - -#define _States_Is_suspended( _the_states ) \ - ( (_the_states) & STATES_SUSPENDED ) - -/*PAGE - * - * _States_Is_Transient - * - */ - -#define _States_Is_transient( _the_states ) \ - ( (_the_states) & STATES_TRANSIENT ) - -/*PAGE - * - * _States_Is_delaying - * - */ - -#define _States_Is_delaying( _the_states ) \ - ( (_the_states) & STATES_DELAYING ) - -/*PAGE - * - * _States_Is_waiting_for_buffer - * - */ - -#define _States_Is_waiting_for_buffer( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_BUFFER ) - -/*PAGE - * - * _States_Is_waiting_for_segment - * - */ - -#define _States_Is_waiting_for_segment( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_SEGMENT ) - -/*PAGE - * - * _States_Is_waiting_for_message - * - */ - -#define _States_Is_waiting_for_message( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_MESSAGE ) - -/*PAGE - * - * _States_Is_waiting_for_event - * - */ - -#define _States_Is_waiting_for_event( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_EVENT ) - -/*PAGE - * - * _States_Is_waiting_for_semaphore - * - */ - -#define _States_Is_waiting_for_semaphore( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_SEMAPHORE ) - -/*PAGE - * - * _States_Is_waiting_for_time - * - */ - -#define _States_Is_waiting_for_time( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_TIME ) - -/*PAGE - * - * _States_Is_waiting_for_rpc_reply - * - */ - -#define _States_Is_waiting_for_rpc_reply( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_RPC_REPLY ) - -/*PAGE - * - * _States_Is_waiting_for_period - * - */ - -#define _States_Is_waiting_for_period( _the_states ) \ - ( (_the_states) & STATES_WAITING_FOR_PERIOD ) - -/*PAGE - * - * _States_Is_locally_blocked - * - */ - -#define _States_Is_locally_blocked( _the_states ) \ - ( (_the_states) & STATES_LOCALLY_BLOCKED ) - -/*PAGE - * - * _States_Is_waiting_on_thread_queue - * - */ - -#define _States_Is_waiting_on_thread_queue( _the_states ) \ - ( (_the_states) & STATES_WAITING_ON_THREAD_QUEUE ) - -/*PAGE - * - * _States_Is_blocked - * - */ - -#define _States_Is_blocked( _the_states ) \ - ( (_the_states) & STATES_BLOCKED ) - -/*PAGE - * - * _States_Are_set - * - */ - -#define _States_Are_set( _the_states, _mask ) \ - ( ((_the_states) & (_mask)) != STATES_READY ) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/sysstate.inl b/cpukit/score/macros/rtems/score/sysstate.inl deleted file mode 100644 index 5cc9f9e9f9..0000000000 --- a/cpukit/score/macros/rtems/score/sysstate.inl +++ /dev/null @@ -1,77 +0,0 @@ -/* sysstates.inl - * - * This file contains the macro implementation of routines regarding the - * system state. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __SYSTEM_STATE_inl -#define __SYSTEM_STATE_inl - -/*PAGE - * - * _System_state_Set - */ - -#define _System_state_Set( _state ) \ - _System_state_Current = (_state) - -/*PAGE - * - * _System_state_Get - */ - -#define _System_state_Get( void ) \ - (_System_state_Current) - -/*PAGE - * - * _System_state_Is_before_initialization - */ - -#define _System_state_Is_before_initialization( _state ) \ - ((_state) == SYSTEM_STATE_BEFORE_INITIALIZATION) - -/*PAGE - * - * _System_state_Is_before_multitasking - */ - -#define _System_state_Is_before_multitasking( _state ) \ - ((_state) == SYSTEM_STATE_BEFORE_MULTITASKING) - -/*PAGE - * - * _System_state_Is_begin_multitasking - */ - -#define _System_state_Is_begin_multitasking( _state ) \ - ((_state) == SYSTEM_STATE_BEGIN_MULTITASKING) - -/*PAGE - * - * _System_state_Is_up - */ - -#define _System_state_Is_up( _state ) \ - ((_state) == SYSTEM_STATE_UP) - -/*PAGE - * - * _System_state_Is_failed - */ - -#define _System_state_Is_failed( _state ) \ - ((_state) == SYSTEM_STATE_FAILED) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/thread.inl b/cpukit/score/macros/rtems/score/thread.inl deleted file mode 100644 index 0e041de5ac..0000000000 --- a/cpukit/score/macros/rtems/score/thread.inl +++ /dev/null @@ -1,193 +0,0 @@ -/* thread.inl - * - * This file contains the macro implementation of the inlined - * routines from the Thread handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_inl -#define __THREAD_inl - -/*PAGE - * - * _Thread_Stop_multitasking - * - */ - -#define _Thread_Stop_multitasking() \ - _Context_Switch( &_Thread_Executing->Registers, &_Thread_BSP_context ); - -/*PAGE - * - * _Thread_Is_executing - * - */ - -#define _Thread_Is_executing( _the_thread ) \ - ( (_the_thread) == _Thread_Executing ) - -/*PAGE - * - * _Thread_Is_heir - * - */ - -#define _Thread_Is_heir( _the_thread ) \ - ( (_the_thread) == _Thread_Heir ) - -/*PAGE - * - * _Thread_Is_executing_also_the_heir - * - */ - -#define _Thread_Is_executing_also_the_heir() \ - ( _Thread_Executing == _Thread_Heir ) - -/*PAGE - * - * _Thread_Resume - * - */ - -#define _Thread_Resume( _the_thread ) \ - _Thread_Clear_state( (_the_thread), STATES_SUSPENDED ) - -/*PAGE - * - * _Thread_Unblock - * - */ - -#define _Thread_Unblock( _the_thread ) \ - _Thread_Clear_state( (_the_thread), STATES_BLOCKED ); - -/*PAGE - * - * _Thread_Restart_self - * - */ - -#define _Thread_Restart_self() \ - { \ - if ( _Thread_Executing->fp_context != NULL ) \ - _Context_Restore_fp( &_Thread_Executing->fp_context ); \ - \ - _CPU_Context_Restart_self( &_Thread_Executing->Registers ); \ - } - -/*PAGE - * - * _Thread_Calculate_heir - * - */ - -#define _Thread_Calculate_heir() \ - { \ - rtems_task_priority highest; \ - \ - _Priority_Get_highest( highest ); \ - \ - _Thread_Heir = (Thread_Control *) _Thread_Ready_chain[ highest ].first; \ - } - -/*PAGE - * - * _Thread_Is_allocated_fp - * - */ - -#define _Thread_Is_allocated_fp( _the_thread ) \ - ( (_the_thread) == _Thread_Allocated_fp ) - -/*PAGE - * - * _Thread_Deallocate_fp - * - */ - -#define _Thread_Deallocate_fp() \ - _Thread_Allocated_fp = NULL - -/*PAGE - * - * _Thread_Disable_dispatch - * - */ - -#define _Thread_Disable_dispatch() \ - _Thread_Dispatch_disable_level += 1 - -/*PAGE - * - * _Thread_Enable_dispatch - * - */ - -#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE ) -#define _Thread_Enable_dispatch() \ - { if ( (--_Thread_Dispatch_disable_level) == 0 ) \ - _Thread_Dispatch(); \ - } -#endif - -#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE ) -void _Thread_Enable_dispatch( void ); -#endif - -/*PAGE - * - * _Thread_Unnest_dispatch - * - */ - -#define _Thread_Unnest_dispatch() \ - _Thread_Dispatch_disable_level -= 1 - -/*PAGE - * - * _Thread_Is_dispatching_enabled - * - */ - -#define _Thread_Is_dispatching_enabled() \ - ( _Thread_Dispatch_disable_level == 0 ) - -/*PAGE - * - * _Thread_Is_context_switch_necessary - * - */ - -#define _Thread_Is_context_switch_necessary() \ - ( _Context_Switch_necessary == TRUE ) - -/*PAGE - * - * _Thread_Dispatch_initialization - * - */ - -#define _Thread_Dispatch_initialization() \ - _Thread_Dispatch_disable_level = 1 - -/*PAGE - * - * _Thread_Is_null - * - */ - -#define _Thread_Is_null( _the_thread ) \ - ( (_the_thread) == NULL ) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/threadmp.inl b/cpukit/score/macros/rtems/score/threadmp.inl deleted file mode 100644 index c601862f96..0000000000 --- a/cpukit/score/macros/rtems/score/threadmp.inl +++ /dev/null @@ -1,50 +0,0 @@ -/* macros/threadmp.h - * - * This include file contains the bodies of all inlined routines - * for the multiprocessing part of thread package. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __MACROS_MP_THREAD_h -#define __MACROS_MP_THREAD_h - -/*PAGE - * - * _Thread_MP_Is_receive - * - */ - -#define _Thread_MP_Is_receive( _the_thread ) \ - ( (_the_thread) == _Thread_MP_Receive) - -/*PAGE - * - * _Thread_MP_Free_proxy - * - */ - -#define _Thread_MP_Free_proxy( _the_thread ) \ -{ \ - Thread_Proxy_control *_the_proxy; \ - \ - _the_proxy = (Thread_Proxy_control *) (_the_thread); \ - \ - _Chain_Extract( &_the_proxy->Active ); \ - \ - _Chain_Append( \ - &_Thread_MP_Inactive_proxies, \ - &(_the_thread)->Object.Node \ - ); \ -} - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/tod.inl b/cpukit/score/macros/rtems/score/tod.inl deleted file mode 100644 index 9360a588b1..0000000000 --- a/cpukit/score/macros/rtems/score/tod.inl +++ /dev/null @@ -1,59 +0,0 @@ -/* tod.inl - * - * This file contains the macro implementation of the inlined routines - * from the Time of Day Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TIME_OF_DAY_inl -#define __TIME_OF_DAY_inl - -/*PAGE - * - * _TOD_Is_set - * - */ - -#define _TOD_Is_set() \ - _Watchdog_Is_active( &_TOD_Seconds_watchdog ) - -/*PAGE - * - * _TOD_Tickle_ticks - * - */ - -#define _TOD_Tickle_ticks() \ - _TOD_Current.ticks++; \ - _TOD_Ticks_since_boot++ - -/*PAGE - * - * _TOD_Deactivate - * - */ - -#define _TOD_Deactivate() \ - _Watchdog_Remove( &_TOD_Seconds_watchdog ) - -/*PAGE - * - * _TOD_Activate - * - */ - -#define _TOD_Activate( ticks ) \ - _Watchdog_Insert_ticks( &_TOD_Seconds_watchdog, \ - (ticks), WATCHDOG_ACTIVATE_NOW ) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/tqdata.inl b/cpukit/score/macros/rtems/score/tqdata.inl deleted file mode 100644 index 5f657c1a94..0000000000 --- a/cpukit/score/macros/rtems/score/tqdata.inl +++ /dev/null @@ -1,39 +0,0 @@ -/* tqdata.inl - * - * This file contains the macro implementation of the inlined - * routines needed to support the Thread Queue Data. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __THREAD_QUEUE_DATA_inl -#define __THREAD_QUEUE_DATA_inl - -/*PAGE - * - * _Thread_queue_Header_number - * - */ - -#define _Thread_queue_Header_number( _the_priority ) \ - ( (_the_priority) >> 6 ) - -/*PAGE - * - * _Thread_queue_Is_reverse_search - * - */ - -#define _Thread_queue_Is_reverse_search( _the_priority ) \ - ( (_the_priority) & 0x20 ) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/userext.inl b/cpukit/score/macros/rtems/score/userext.inl deleted file mode 100644 index 781f30ad40..0000000000 --- a/cpukit/score/macros/rtems/score/userext.inl +++ /dev/null @@ -1,184 +0,0 @@ -/* userext.inl - * - * This file contains the macro implementation of the inlined routines - * from the User Extension Handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __USER_EXTENSIONS_inl -#define __USER_EXTENSIONS_inl - -/*PAGE - * - * _User_extensions_Handler_initialization - * - */ - -#define _User_extensions_Handler_initialization( _initial_extensions ) \ - { \ - _Chain_Initialize_empty( &_User_extensions_List ); \ - \ - if ( (_initial_extensions) ) { \ - _User_extensions_Initial.Callouts = *(_initial_extensions); \ - _Chain_Append( \ - &_User_extensions_List, &_User_extensions_Initial.Node ); \ - } \ - } - -/*PAGE - * - * _User_extensions_Add_set - */ - -#define _User_extensions_Add_set( _the_extension, _extension_table ) \ - { \ - (_the_extension)->Callouts = *(_extension_table); \ - \ - _Chain_Append( &_User_extensions_List, &(_the_extension)->Node ); \ - } - -/*PAGE - * - * _User_extensions_Remove_set - */ - -#define _User_extensions_Remove_set( _the_extension ) \ - _Chain_Extract( &(_the_extension)->Node ) - -/*PAGE - * - * _User_extensions_Run_list_forward - * - * NOTE: No parentheses around macro names here to avoid - * messing up the name and function call expansion. - */ - -#define _User_extensions_Run_list_forward( _name, _arguments ) \ - do { \ - Chain_Node *the_node; \ - User_extensions_Control *the_extension; \ - \ - for ( the_node = _User_extensions_List.first ; \ - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; \ - the_node = the_node->next ) { \ - the_extension = (User_extensions_Control *) the_node; \ - \ - if ( the_extension->Callouts.## _name != NULL ) \ - (*the_extension->Callouts.## _name) _arguments; \ - \ - } \ - \ - } while ( 0 ) - -/*PAGE - * - * _User_extensions_Run_list_backward - * - * NOTE: No parentheses around macro names here to avoid - * messing up the name and function call expansion. - */ - -#define _User_extensions_Run_list_backward( _name, _arguments ) \ - do { \ - Chain_Node *the_node; \ - User_extensions_Control *the_extension; \ - \ - for ( the_node = _User_extensions_List.last ; \ - !_Chain_Is_head( &_User_extensions_List, the_node ) ; \ - the_node = the_node->previous ) { \ - the_extension = (User_extensions_Control *) the_node; \ - \ - if ( the_extension->Callouts.## _name != NULL ) \ - (*the_extension->Callouts.## _name) _arguments; \ - \ - } \ - \ - } while ( 0 ) - -/*PAGE - * - * _User_extensions_Task_create - * - */ - -#define _User_extensions_Task_create( _the_thread ) \ - _User_extensions_Run_list_forward(rtems_task_create, \ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_delete - * - */ - -#define _User_extensions_Task_delete( _the_thread ) \ - _User_extensions_Run_list_backward(rtems_task_delete, \ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_start - * - */ - -#define _User_extensions_Task_start( _the_thread ) \ - _User_extensions_Run_list_forward(rtems_task_start, \ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_restart - * - */ - -#define _User_extensions_Task_restart( _the_thread ) \ - _User_extensions_Run_list_forward(rtems_task_restart,\ - (_Thread_Executing, _the_thread) ) - -/*PAGE - * - * _User_extensions_Task_switch - * - */ - -#define _User_extensions_Task_switch( _executing, _heir ) \ - _User_extensions_Run_list_forward(task_switch, (_executing, _heir) ) - -/*PAGE - * - * _User_extensions_Task_begin - * - */ - -#define _User_extensions_Task_begin( _executing ) \ - _User_extensions_Run_list_forward(task_begin, (_executing) ) - -/*PAGE - * - * _User_extensions_Task_exitted - * - */ - -#define _User_extensions_Task_exitted( _executing ) \ - _User_extensions_Run_list_backward(task_exitted, (_executing) ) - -/*PAGE - * - * _User_extensions_Fatal - * - */ - -#define _User_extensions_Fatal( _the_error ) \ - _User_extensions_Run_list_backward(fatal, (_the_error) ) - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/watchdog.inl b/cpukit/score/macros/rtems/score/watchdog.inl deleted file mode 100644 index 1b150d8dab..0000000000 --- a/cpukit/score/macros/rtems/score/watchdog.inl +++ /dev/null @@ -1,202 +0,0 @@ -/* watchdog.inl - * - * This file contains the macro implementation of all inlined routines - * in the Watchdog Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WATCHDOG_inl -#define __WATCHDOG_inl - -#include - -/*PAGE - * - * _Watchdog_Initialize - * - */ - -#define _Watchdog_Initialize( _the_watchdog, _routine, _id, _user_data ) \ - { \ - (_the_watchdog)->state = WATCHDOG_INACTIVE; \ - (_the_watchdog)->routine = (_routine); \ - (_the_watchdog)->id = (_id); \ - (_the_watchdog)->user_data = (_user_data); \ - } - -/*PAGE - * - * _Watchdog_Is_active - * - */ - -#define _Watchdog_Is_active( _the_watchdog ) \ - ( (_the_watchdog)->state == WATCHDOG_ACTIVE ) - -/*PAGE - * - * _Watchdog_Activate - * - */ - -#define _Watchdog_Activate( _the_watchdog ) \ - (_the_watchdog)->state = WATCHDOG_ACTIVE - -/*PAGE - * - * _Watchdog_Deactivate - * - */ - -#define _Watchdog_Deactivate( _the_watchdog ) \ - (_the_watchdog)->state = WATCHDOG_REMOVE_IT - -/*PAGE - * - * _Watchdog_Tickle_ticks - * - */ - -#define _Watchdog_Tickle_ticks() \ - _Watchdog_Tickle( &_Watchdog_Ticks_chain ) - -/*PAGE - * - * _Watchdog_Tickle_seconds - * - */ - -#define _Watchdog_Tickle_seconds() \ - _Watchdog_Tickle( &_Watchdog_Seconds_chain ) - -/*PAGE - * - * _Watchdog_Insert_ticks - * - */ - -#define _Watchdog_Insert_ticks( _the_watchdog, _units, _insert_mode ) \ - { \ - (_the_watchdog)->initial = (_units); \ - _Watchdog_Insert( &_Watchdog_Ticks_chain, \ - (_the_watchdog), (_insert_mode) ); \ - } - -/*PAGE - * - * _Watchdog_Insert_seconds - * - */ - -#define _Watchdog_Insert_seconds( _the_watchdog, _units, _insert_mode ) \ - { \ - (_the_watchdog)->initial = (_units); \ - _Watchdog_Insert( &_Watchdog_Seconds_chain, \ - (_the_watchdog), (_insert_mode) ); \ - } - -/*PAGE - * - * _Watchdog_Adjust_seconds - * - */ - -#define _Watchdog_Adjust_seconds( _direction, _units ) \ - _Watchdog_Adjust( &_Watchdog_Seconds_chain, (_direction), (_units) ) - -/*PAGE - * - * _Watchdog_Adjust_ticks - * - */ - -#define _Watchdog_Adjust_ticks( _direction, _units ) \ - _Watchdog_Adjust( &_Watchdog_Ticks_chain, (_direction), (_units) ) - -/*PAGE - * - * _Watchdog_Reset - * - */ - -#define _Watchdog_Reset( _the_watchdog ) \ - { \ - (void) _Watchdog_Remove( (_the_watchdog) ); \ - _Watchdog_Insert( &_Watchdog_Ticks_chain, \ - (_the_watchdog), WATCHDOG_ACTIVATE_NOW ); \ - } - -/*PAGE - * - * _Watchdog_Next - * - */ - -#define _Watchdog_Next( _watchdog ) \ - ((Watchdog_Control *) (_watchdog)->Node.next) - -/*PAGE - * - * _Watchdog_Previous - * - */ - -#define _Watchdog_Previous( _watchdog ) \ - ((Watchdog_Control *) (_watchdog)->Node.previous) - -/*PAGE - * - * _Watchdog_First - * - */ - -#define _Watchdog_First( _header ) \ - ((Watchdog_Control *) (_header)->first) - -/*PAGE - * - * _Watchdog_Last - * - */ - -#define _Watchdog_Last( _header ) \ - ((Watchdog_Control *) (_header)->last) - -/*PAGE - * - * _Watchdog_Get_sync - * - */ - -#define _Watchdog_Get_sync() \ - ((Watchdog_Control *) _Watchdog_Sync) - -/*PAGE - * - * _Watchdog_Set_sync - * - */ - -#define _Watchdog_Set_sync( _the_watchdog ) \ - _Watchdog_Sync = (Watchdog_Synchronization_pointer) (_the_watchdog) - -/*PAGE - * - * _Watchdog_Clear_sync - * - */ - -#define _Watchdog_Clear_sync() \ - _Watchdog_Sync = NULL; - -#endif -/* end of include file */ diff --git a/cpukit/score/macros/rtems/score/wkspace.inl b/cpukit/score/macros/rtems/score/wkspace.inl deleted file mode 100644 index 3c516bfb93..0000000000 --- a/cpukit/score/macros/rtems/score/wkspace.inl +++ /dev/null @@ -1,101 +0,0 @@ -/* wkspace.inl - * - * This file contains the macro implementation of the inlined routines - * from the RTEMS RAM Workspace Handler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __WORKSPACE_inl -#define __WORKSPACE_inl - -#include -#include -#include - -/*PAGE - * - * _Workspace_Handler_initialization - * - */ - -#define _Workspace_Handler_initialization( _starting_address, _size ) \ -{ \ - unsigned32 *zero_out_array; \ - unsigned32 index; \ - unsigned32 memory_available; \ - \ - if ( ((_starting_address) == NULL) || \ - !_Addresses_Is_aligned( (_starting_address) ) ) \ - rtems_fatal_error_occurred( RTEMS_INVALID_ADDRESS ); \ - \ - if ( _CPU_Table.do_zero_of_workspace ) { \ - for( zero_out_array = (unsigned32 *) (_starting_address), index = 0 ; \ - index < (_size) / 4 ; \ - index++ ) \ - zero_out_array[ index ] = 0; \ - } \ - \ - memory_available = _Heap_Initialize( \ - &_Workspace_Area, \ - (_starting_address), \ - (_size), \ - CPU_ALIGNMENT \ - ); \ - \ - if ( memory_available == 0 ) \ - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); \ -} - -/*PAGE - * - * _Workspace_Allocate - * - */ - -#define _Workspace_Allocate( _size ) \ - _Heap_Allocate( &_Workspace_Area, (_size) ) - -/*PAGE - * - * _Workspace_Allocate_or_fatal_error - * - * NOTE: XXX FIX ME - * - * When not using static inlines, this should really be a function - * somewhere. - */ - -static inline void _Workspace_Allocate_or_fatal_error( - unsigned32 size -) -{ - void *memory; - - memory = _Workspace_Allocate( size ); - - if ( memory == NULL ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); - - return memory; -} - -/*PAGE - * - * _Workspace_Free - * - */ - -#define _Workspace_Free( _block ) \ - _Heap_Free( &_Workspace_Area, (_block) ) - -#endif -/* end of include file */ diff --git a/cpukit/score/src/chain.c b/cpukit/score/src/chain.c deleted file mode 100644 index 88f6759b0b..0000000000 --- a/cpukit/score/src/chain.c +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Chain Handler - * - * NOTE: - * - * The order of this file is to allow proper compilation due to the - * order of inlining required by the compiler. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/*PAGE - * - * _Chain_Initialize - * - * This kernel routine initializes a doubly linked chain. - * - * Input parameters: - * the_chain - pointer to chain header - * starting_address - starting address of first node - * number_nodes - number of nodes in chain - * node_size - size of node in bytes - * - * Output parameters: NONE - */ - -void _Chain_Initialize( - Chain_Control *the_chain, - void *starting_address, - unsigned32 number_nodes, - unsigned32 node_size -) -{ - unsigned32 count; - Chain_Node *current; - Chain_Node *next; - - count = number_nodes; - current = _Chain_Head( the_chain ); - the_chain->permanent_null = NULL; - next = (Chain_Node *)starting_address; - while ( count-- ) { - current->next = next; - next->previous = current; - current = next; - next = (Chain_Node *) - _Addresses_Add_offset( (void *) next, node_size ); - } - current->next = _Chain_Tail( the_chain ); - the_chain->last = current; -} - -/*PAGE - * - * _Chain_Get_first_unprotected - */ - -#ifndef USE_INLINES -Chain_Node *_Chain_Get_first_unprotected( - Chain_Control *the_chain -) -{ - Chain_Node *return_node; - Chain_Node *new_first; - - return_node = the_chain->first; - new_first = return_node->next; - the_chain->first = new_first; - new_first->previous = _Chain_Head( the_chain ); - - return return_node; -} -#endif /* USE_INLINES */ - -/*PAGE - * - * _Chain_Get - * - * This kernel routine returns a pointer to a node taken from the - * given chain. - * - * Input parameters: - * the_chain - pointer to chain header - * - * Output parameters: - * return_node - pointer to node in chain allocated - * CHAIN_END - if no nodes available - * - * INTERRUPT LATENCY: - * only case - */ - -Chain_Node *_Chain_Get( - Chain_Control *the_chain -) -{ - ISR_Level level; - Chain_Node *return_node; - - return_node = NULL; - _ISR_Disable( level ); - if ( !_Chain_Is_empty( the_chain ) ) - return_node = _Chain_Get_first_unprotected( the_chain ); - _ISR_Enable( level ); - return return_node; -} - -/*PAGE - * - * _Chain_Append - * - * This kernel routine puts a node on the end of the specified chain. - * - * Input parameters: - * the_chain - pointer to chain header - * node - address of node to put at rear of chain - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Chain_Append( - Chain_Control *the_chain, - Chain_Node *node -) -{ - ISR_Level level; - - _ISR_Disable( level ); - _Chain_Append_unprotected( the_chain, node ); - _ISR_Enable( level ); -} - -/*PAGE - * - * _Chain_Extract - * - * This kernel routine deletes the given node from a chain. - * - * Input parameters: - * node - pointer to node in chain to be deleted - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Chain_Extract( - Chain_Node *node -) -{ - ISR_Level level; - - _ISR_Disable( level ); - _Chain_Extract_unprotected( node ); - _ISR_Enable( level ); -} - -/*PAGE - * - * _Chain_Insert - * - * This kernel routine inserts a given node after a specified node - * a requested chain. - * - * Input parameters: - * after_node - pointer to node in chain to be inserted after - * node - pointer to node to be inserted - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Chain_Insert( - Chain_Node *after_node, - Chain_Node *node -) -{ - ISR_Level level; - - _ISR_Disable( level ); - _Chain_Insert_unprotected( after_node, node ); - _ISR_Enable( level ); -} diff --git a/cpukit/score/src/coretod.c b/cpukit/score/src/coretod.c deleted file mode 100644 index 4689c637d7..0000000000 --- a/cpukit/score/src/coretod.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Time of Day (TOD) Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -/*PAGE - * - * _TOD_Handler_initialization - * - * This routine initializes the time of day handler. - * - * Input parameters: - * microseconds_per_tick - microseconds between clock ticks - * - * Output parameters: NONE - */ - -void _TOD_Handler_initialization( - unsigned32 microseconds_per_tick -) -{ - _TOD_Microseconds_per_tick = microseconds_per_tick; - - _TOD_Ticks_since_boot = 0; - _TOD_Seconds_since_epoch = 0; - - _TOD_Current.year = TOD_BASE_YEAR; - _TOD_Current.month = 1; - _TOD_Current.day = 1; - _TOD_Current.hour = 0; - _TOD_Current.minute = 0; - _TOD_Current.second = 0; - _TOD_Current.ticks = 0; - - if ( microseconds_per_tick == 0 ) - _TOD_Ticks_per_second = 0; - else - _TOD_Ticks_per_second = - TOD_MICROSECONDS_PER_SECOND / microseconds_per_tick; - - _Watchdog_Initialize( &_TOD_Seconds_watchdog, _TOD_Tickle, 0, NULL ); -} - -/*PAGE - * - * _TOD_Set - * - * This rountine sets the current date and time with the specified - * new date and time structure. - * - * Input parameters: - * the_tod - pointer to the time and date structure - * seconds_since_epoch - seconds since system epoch - * - * Output parameters: NONE - */ - -void _TOD_Set( - rtems_time_of_day *the_tod, - rtems_interval seconds_since_epoch -) -{ - rtems_interval ticks_until_next_second; - - _Thread_Disable_dispatch(); - _TOD_Deactivate(); - - if ( seconds_since_epoch < _TOD_Seconds_since_epoch ) - _Watchdog_Adjust_seconds( WATCHDOG_BACKWARD, - _TOD_Seconds_since_epoch - seconds_since_epoch ); - else - _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, - seconds_since_epoch - _TOD_Seconds_since_epoch ); - - ticks_until_next_second = _TOD_Ticks_per_second; - if ( ticks_until_next_second > _TOD_Current.ticks ) - ticks_until_next_second -= _TOD_Current.ticks; - - _TOD_Current = *the_tod; - _TOD_Seconds_since_epoch = seconds_since_epoch; - _TOD_Activate( ticks_until_next_second ); - - _Thread_Enable_dispatch(); -} - -/*PAGE - * - * _TOD_Validate - * - * This kernel routine checks the validity of a date and time structure. - * - * Input parameters: - * the_tod - pointer to a time and date structure - * - * Output parameters: - * RTEMS_SUCCESSFUL - if the date, time, and tick are valid - * RTEMS_INVALID_CLOCK - if the the_tod is invalid - * - * NOTE: This routine only works for leap-years through 2099. - */ - -rtems_status_code _TOD_Validate( - rtems_time_of_day *the_tod -) -{ - unsigned32 days_in_month; - - if ((the_tod->ticks >= _TOD_Ticks_per_second) || - (the_tod->second >= TOD_SECONDS_PER_MINUTE) || - (the_tod->minute >= TOD_MINUTES_PER_HOUR) || - (the_tod->hour >= TOD_HOURS_PER_DAY) || - (the_tod->month == 0) || - (the_tod->month > TOD_MONTHS_PER_YEAR) || - (the_tod->year < TOD_BASE_YEAR) || - (the_tod->day == 0) ) - return RTEMS_INVALID_CLOCK; - - if ( (the_tod->year % 4) == 0 ) - days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ]; - else - days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ]; - - if ( the_tod->day > days_in_month ) - return RTEMS_INVALID_CLOCK; - - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * _TOD_To_seconds - * - * This routine returns the seconds from the epoch until the - * current date and time. - * - * Input parameters: - * the_tod - pointer to the time and date structure - * - * Output parameters: - * returns - seconds since epoch until the_tod - */ - -unsigned32 _TOD_To_seconds( - rtems_time_of_day *the_tod -) -{ - unsigned32 time; - unsigned32 year_mod_4; - - time = the_tod->day - 1; - year_mod_4 = the_tod->year & 3; - - if ( year_mod_4 == 0 ) - time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; - else - time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; - - time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * - ( (TOD_DAYS_PER_YEAR * 4) + 1); - - time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; - - time *= TOD_SECONDS_PER_DAY; - - time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) - * TOD_SECONDS_PER_MINUTE; - - time += the_tod->second; - - return( time ); -} - -/*PAGE - * - * _TOD_Tickle - * - * This routine updates the calendar time and tickles the - * per second watchdog timer chain. - * - * Input parameters: - * ignored - this parameter is ignored - * - * Output parameters: NONE - * - * NOTE: This routine only works for leap-years through 2099. - */ - -void _TOD_Tickle( - Objects_Id id, - void *ignored -) -{ - unsigned32 leap; - - _TOD_Current.ticks = 0; - ++_TOD_Seconds_since_epoch; - if ( ++_TOD_Current.second >= TOD_SECONDS_PER_MINUTE ) { - _TOD_Current.second = 0; - if ( ++_TOD_Current.minute >= TOD_MINUTES_PER_HOUR ) { - _TOD_Current.minute = 0; - if ( ++_TOD_Current.hour >= TOD_HOURS_PER_DAY ) { - _TOD_Current.hour = 0; - if ( _TOD_Current.year & 0x3 ) leap = 0; - else leap = 1; - if ( ++_TOD_Current.day > - _TOD_Days_per_month[ leap ][ _TOD_Current.month ]) { - _TOD_Current.day = 1; - if ( ++_TOD_Current.month > TOD_MONTHS_PER_YEAR ) { - _TOD_Current.month = 1; - _TOD_Current.year++; - } - } - } - } - } - - _Watchdog_Tickle_seconds(); - _Watchdog_Insert_ticks( &_TOD_Seconds_watchdog, _TOD_Ticks_per_second, - WATCHDOG_ACTIVATE_NOW ); -} diff --git a/cpukit/score/src/heap.c b/cpukit/score/src/heap.c deleted file mode 100644 index 485012ddf7..0000000000 --- a/cpukit/score/src/heap.c +++ /dev/null @@ -1,478 +0,0 @@ -/* - * Heap Handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include -#include -#include - -/*PAGE - * - * _Heap_Initialize - * - * This kernel routine initializes a heap. - * - * Input parameters: - * the_heap - pointer to heap header - * starting_address - starting address of heap - * size - size of heap - * page_size - allocatable unit of memory - * - * Output parameters: - * returns - maximum memory available if RTEMS_SUCCESSFUL - * 0 - otherwise - * - * This is what a heap looks like in memory immediately - * after initialization: - * - * +--------------------------------+ - * 0 | size = 0 | status = used | a.k.a. dummy back flag - * +--------------------------------+ - * 4 | size = size-8 | status = free | a.k.a. front flag - * +--------------------------------+ - * 8 | next = PERM HEAP_TAIL | - * +--------------------------------+ - * 12 | previous = PERM HEAP_HEAD | - * +--------------------------------+ - * | | - * | memory available | - * | for allocation | - * | | - * +--------------------------------+ - * size - 8 | size = size-8 | status = free | a.k.a. back flag - * +--------------------------------+ - * size - 4 | size = 0 | status = used | a.k.a. dummy front flag - * +--------------------------------+ - */ - -unsigned32 _Heap_Initialize( - Heap_Control *the_heap, - void *starting_address, - unsigned32 size, - unsigned32 page_size -) -{ - Heap_Block *the_block; - unsigned32 the_size; - - if ( !_Heap_Is_page_size_valid( page_size ) || - (size < HEAP_MINIMUM_SIZE) ) - return 0; - - the_heap->page_size = page_size; - the_size = size - HEAP_OVERHEAD; - - the_block = (Heap_Block *) starting_address; - the_block->back_flag = HEAP_DUMMY_FLAG; - the_block->front_flag = the_size; - the_block->next = _Heap_Tail( the_heap ); - the_block->previous = _Heap_Head( the_heap ); - - the_heap->start = the_block; - the_heap->first = the_block; - the_heap->permanent_null = NULL; - the_heap->last = the_block; - - the_block = _Heap_Next_block( the_block ); - the_block->back_flag = the_size; - the_block->front_flag = HEAP_DUMMY_FLAG; - the_heap->final = the_block; - - return ( the_size - HEAP_BLOCK_USED_OVERHEAD ); -} - -/*PAGE - * - * _Heap_Extend - * - * This routine grows the_heap memory area using the size bytes which - * begin at starting_address. - * - * Input parameters: - * the_heap - pointer to heap header. - * starting_address - pointer to the memory area. - * size - size in bytes of the memory block to allocate. - * - * Output parameters: - * *amount_extended - amount of memory added to the_heap - */ - -Heap_Extend_status _Heap_Extend( - Heap_Control *the_heap, - void *starting_address, - unsigned32 size, - unsigned32 *amount_extended -) -{ - Heap_Block *the_block; - Heap_Block *next_block; - Heap_Block *previous_block; - - /* - * There are five possibilities for the location of starting - * address: - * - * 1. non-contiguous lower address (NOT SUPPORTED) - * 2. contiguous lower address (NOT SUPPORTED) - * 3. in the heap (ERROR) - * 4. contiguous higher address (SUPPORTED) - * 5. non-contiguous higher address (NOT SUPPORTED) - * - * As noted, this code only supports (4). - */ - - if ( starting_address >= (void *) the_heap->start && /* case 3 */ - starting_address <= (void *) the_heap->final - ) - return HEAP_EXTEND_ERROR; - - if ( starting_address < (void *) the_heap->start ) { /* cases 1 and 2 */ - - return HEAP_EXTEND_NOT_IMPLEMENTED; /* cases 1 and 2 */ - - } else { /* cases 4 and 5 */ - - the_block = (Heap_Block *) (starting_address - HEAP_OVERHEAD); - if ( the_block != the_heap->final ) - return HEAP_EXTEND_NOT_IMPLEMENTED; /* case 5 */ - } - - /* - * Currently only case 4 should make it to this point. - */ - - *amount_extended = size - HEAP_BLOCK_USED_OVERHEAD; - - previous_block = the_heap->last; - - the_block = (Heap_Block *) starting_address; - the_block->front_flag = size; - the_block->next = previous_block->next; - the_block->previous = previous_block; - - previous_block->next = the_block; - the_heap->last = the_block; - - next_block = _Heap_Next_block( the_block ); - next_block->back_flag = size; - next_block->front_flag = HEAP_DUMMY_FLAG; - the_heap->final = next_block; - - return HEAP_EXTEND_SUCCESSFUL; -} - -/*PAGE - * - * _Heap_Allocate - * - * This kernel routine allocates the requested size of memory - * from the specified heap. - * - * Input parameters: - * the_heap - pointer to heap header. - * size - size in bytes of the memory block to allocate. - * - * Output parameters: - * returns - starting address of memory block allocated - */ - -void *_Heap_Allocate( - Heap_Control *the_heap, - unsigned32 size -) -{ - unsigned32 excess; - unsigned32 the_size; - Heap_Block *the_block; - Heap_Block *next_block; - Heap_Block *temporary_block; - - excess = size % the_heap->page_size; - the_size = size + HEAP_BLOCK_USED_OVERHEAD; - - if ( excess ) - the_size += the_heap->page_size - excess; - - if ( the_size < sizeof( Heap_Block ) ) - the_size = sizeof( Heap_Block ); - - for ( the_block = the_heap->first; - ; - the_block = the_block->next ) { - if ( the_block == _Heap_Tail( the_heap ) ) - return( NULL ); - if ( the_block->front_flag >= the_size ) - break; - } - - if ( (the_block->front_flag - the_size) > - (the_heap->page_size + HEAP_BLOCK_USED_OVERHEAD) ) { - the_block->front_flag -= the_size; - next_block = _Heap_Next_block( the_block ); - next_block->back_flag = the_block->front_flag; - - temporary_block = _Heap_Block_at( next_block, the_size ); - temporary_block->back_flag = - next_block->front_flag = _Heap_Build_flag( the_size, - HEAP_BLOCK_USED ); - return( _Heap_Start_of_user_area( next_block ) ); - } else { - next_block = _Heap_Next_block( the_block ); - next_block->back_flag = _Heap_Build_flag( the_block->front_flag, - HEAP_BLOCK_USED ); - the_block->front_flag = next_block->back_flag; - the_block->next->previous = the_block->previous; - the_block->previous->next = the_block->next; - return( _Heap_Start_of_user_area( the_block ) ); - } -} - -/*PAGE - * - * _Heap_Size_of_user_area - * - * This kernel routine returns the size of the memory area - * given heap block. - * - * Input parameters: - * the_heap - pointer to heap header - * starting_address - starting address of the memory block to free. - * size - pointer to size of area - * - * Output parameters: - * size - size of area filled in - * TRUE - if starting_address is valid heap address - * FALSE - if starting_address is invalid heap address - */ - -boolean _Heap_Size_of_user_area( - Heap_Control *the_heap, - void *starting_address, - unsigned32 *size -) -{ - Heap_Block *the_block; - Heap_Block *next_block; - unsigned32 the_size; - - the_block = _Heap_Block_at( starting_address, - (sizeof( void * ) * 2) ); - - if ( !_Heap_Is_block_in( the_heap, the_block ) || - _Heap_Is_block_free( the_block ) ) - return( FALSE ); - - the_size = _Heap_Block_size( the_block ); - next_block = _Heap_Block_at( the_block, the_size ); - - if ( !_Heap_Is_block_in( the_heap, next_block ) || - (the_block->front_flag != next_block->back_flag) ) - return( FALSE ); - - *size = the_size; - return( TRUE ); -} - -/*PAGE - * - * _Heap_Free - * - * This kernel routine returns the memory designated by the - * given heap and given starting address to the memory pool. - * - * Input parameters: - * the_heap - pointer to heap header - * starting_address - starting address of the memory block to free. - * - * Output parameters: - * TRUE - if starting_address is valid heap address - * FALSE - if starting_address is invalid heap address - */ - -boolean _Heap_Free( - Heap_Control *the_heap, - void *starting_address -) -{ - Heap_Block *the_block; - Heap_Block *next_block; - Heap_Block *new_next_block; - Heap_Block *previous_block; - Heap_Block *temporary_block; - unsigned32 the_size; - - the_block = _Heap_Block_at( starting_address, - (sizeof( void * ) * 2) ); - - if ( !_Heap_Is_block_in( the_heap, the_block ) || - _Heap_Is_block_free( the_block ) ) { - return( FALSE ); - } - - the_size = _Heap_Block_size( the_block ); - next_block = _Heap_Block_at( the_block, the_size ); - - if ( !_Heap_Is_block_in( the_heap, next_block ) || - (the_block->front_flag != next_block->back_flag) ) { - return( FALSE ); - } - - if ( _Heap_Is_previous_block_free( the_block ) ) { - previous_block = _Heap_Previous_block( the_block ); - - if ( !_Heap_Is_block_in( the_heap, previous_block ) ) { - return( FALSE ); - } - - if ( _Heap_Is_block_free( next_block ) ) { /* coalesce both */ - previous_block->front_flag += next_block->front_flag + the_size; - temporary_block = _Heap_Next_block( previous_block ); - temporary_block->back_flag = previous_block->front_flag; - next_block->next->previous = next_block->previous; - next_block->previous->next = next_block->next; - } - else { /* coalesce prev */ - previous_block->front_flag = - next_block->back_flag = previous_block->front_flag + the_size; - } - } - else if ( _Heap_Is_block_free( next_block ) ) { /* coalesce next */ - the_block->front_flag = the_size + next_block->front_flag; - new_next_block = _Heap_Next_block( the_block ); - new_next_block->back_flag = the_block->front_flag; - the_block->next = next_block->next; - the_block->previous = next_block->previous; - next_block->previous->next = the_block; - next_block->next->previous = the_block; - - if (the_heap->first == next_block) - the_heap->first = the_block; - } - else { /* no coalesce */ - next_block->back_flag = - the_block->front_flag = the_size; - the_block->previous = _Heap_Head( the_heap ); - the_block->next = the_heap->first; - the_heap->first = the_block; - the_block->next->previous = the_block; - } - - return( TRUE ); -} - -/*PAGE - * - * _Heap_Walk - * - * This kernel routine walks the heap and verifies its correctness. - * - * Input parameters: - * the_heap - pointer to heap header - * source - a numeric indicator of the invoker of this routine - * do_dump - when TRUE print the information - * - * Output parameters: NONE - */ - -#include -#include - -void _Heap_Walk( - Heap_Control *the_heap, - int source, - boolean do_dump -) -{ - Heap_Block *the_block; - Heap_Block *next_block; - int notdone = 1; - - /* - * We don't want to allow walking the heap until we have - * transferred control to the user task so we watch the - * system state. - */ - - if ( !_System_state_Is_up( _System_state_Get() ) ) - return; - - the_block = the_heap->start; - - if (do_dump == TRUE) { - printf("\nPASS: %d start @ 0x%p final 0x%p, first 0x%p last 0x%p\n", - source, the_heap->start, the_heap->final, - the_heap->first, the_heap->last - ); - } - - /* - * Handle the 1st block - */ - - if (the_block->back_flag != HEAP_DUMMY_FLAG) { - printf("PASS: %d Back flag of 1st block isn't HEAP_DUMMY_FLAG\n", source); - } - - while (notdone) { - if (do_dump == TRUE) { - printf("PASS: %d Block @ 0x%p Back %d, Front %d", - source, the_block, - the_block->back_flag, the_block->front_flag); - if ( _Heap_Is_block_free(the_block) ) { - printf( " Prev 0x%p, Next 0x%p\n", - the_block->previous, the_block->next); - } else { - printf("\n"); - } - } - - /* - * Handle the last block - */ - - if ( the_block->front_flag != HEAP_DUMMY_FLAG ) { - next_block = _Heap_Next_block(the_block); - if ( the_block->front_flag != next_block->back_flag ) { - printf("PASS: %d Front and back flags don't match\n", source); - printf(" Current Block: Back - %d, Front - %d", - the_block->back_flag, the_block->front_flag); - if (do_dump == TRUE) { - if (_Heap_Is_block_free(the_block)) { - printf(" Prev 0x%p, Next 0x%p\n", - the_block->previous, the_block->next); - } else { - printf("\n"); - } - } else { - printf("\n"); - } - printf(" Next Block: Back - %d, Front - %d", - next_block->back_flag, next_block->front_flag); - if (do_dump == TRUE) { - if (_Heap_Is_block_free(next_block)) { - printf(" Prev 0x%p, Next 0x%p\n", - the_block->previous, the_block->next); - } else { - printf("\n"); - } - } else { - printf("\n"); - } - } - } - - if (the_block->front_flag == HEAP_DUMMY_FLAG) - notdone = 0; - else - the_block = next_block; - } -} diff --git a/cpukit/score/src/mpci.c b/cpukit/score/src/mpci.c deleted file mode 100644 index e8d3803d76..0000000000 --- a/cpukit/score/src/mpci.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Multiprocessing Communications Interface (MPCI) Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _MPCI_Handler_initialization - * - * This subprogram performs the initialization necessary for this handler. - */ - -void _MPCI_Handler_initialization ( void ) -{ - _Thread_queue_Initialize( - &_MPCI_Remote_blocked_threads, - RTEMS_FIFO, - STATES_WAITING_FOR_RPC_REPLY - ); -} - -/*PAGE - * - * _MPCI_Initialization - * - * This subprogram initializes the MPCI driver by - * invoking the user provided MPCI initialization callout. - */ - -void _MPCI_Initialization ( void ) -{ - (*_Configuration_MPCI_table->initialization)( - _Configuration_Table, - &_CPU_Table, - _Configuration_MP_table - ); -} - -/*PAGE - * - * _MPCI_Get_packet - * - * This subprogram obtains a packet by invoking the user provided - * MPCI get packet callout. - */ - -rtems_packet_prefix *_MPCI_Get_packet ( void ) -{ - rtems_packet_prefix *the_packet; - - (*_Configuration_MPCI_table->get_packet)( &the_packet ); - - if ( the_packet == NULL ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); - - /* - * Put in a default timeout that will be used for - * all packets that do not otherwise have a timeout. - */ - - the_packet->timeout = MPCI_DEFAULT_TIMEOUT; - - return the_packet; -} - -/*PAGE - * - * _MPCI_Return_packet - * - * This subprogram returns a packet by invoking the user provided - * MPCI return packet callout. - */ - -void _MPCI_Return_packet ( - rtems_packet_prefix *the_packet -) -{ - (*_Configuration_MPCI_table->return_packet)( the_packet ); -} - -/*PAGE - * - * _MPCI_Send_process_packet - * - * This subprogram sends a process packet by invoking the user provided - * MPCI send callout. - */ - -void _MPCI_Send_process_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -) -{ - the_packet->source_tid = _Thread_Executing->Object.id; - the_packet->to_convert = - ( the_packet->to_convert - sizeof(rtems_packet_prefix) ) / - sizeof(unsigned32); - - (*_Configuration_MPCI_table->send_packet)( destination, the_packet ); -} - -/*PAGE - * - * _MPCI_Send_request_packet - * - * This subprogram sends a request packet by invoking the user provided - * MPCI send callout. - */ - -rtems_status_code _MPCI_Send_request_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet, - States_Control extra_state -) -{ - the_packet->source_tid = _Thread_Executing->Object.id; - the_packet->source_priority = _Thread_Executing->current_priority; - the_packet->to_convert = - ( the_packet->to_convert - sizeof(rtems_packet_prefix) ) / - sizeof(unsigned32); - - _Thread_Executing->Wait.id = the_packet->id; - - _Thread_Executing->Wait.queue = &_MPCI_Remote_blocked_threads; - - _Thread_Disable_dispatch(); - - (*_Configuration_MPCI_table->send_packet)( destination, the_packet ); - - _MPCI_Remote_blocked_threads.sync = TRUE; - - /* - * See if we need a default timeout - */ - - if (the_packet->timeout == MPCI_DEFAULT_TIMEOUT) - the_packet->timeout = _Configuration_MPCI_table->default_timeout; - - _Thread_queue_Enqueue( &_MPCI_Remote_blocked_threads, the_packet->timeout ); - - _Thread_Executing->current_state = - _States_Set( extra_state, _Thread_Executing->current_state ); - - _Thread_Enable_dispatch(); - - return _Thread_Executing->Wait.return_code; -} - -/*PAGE - * - * _MPCI_Send_response_packet - * - * This subprogram sends a response packet by invoking the user provided - * MPCI send callout. - */ - -void _MPCI_Send_response_packet ( - unsigned32 destination, - rtems_packet_prefix *the_packet -) -{ - the_packet->source_tid = _Thread_Executing->Object.id; - - (*_Configuration_MPCI_table->send_packet)( destination, the_packet ); -} - -/*PAGE - * - * _MPCI_Receive_packet - * - * This subprogram receives a packet by invoking the user provided - * MPCI receive callout. - */ - -rtems_packet_prefix *_MPCI_Receive_packet ( void ) -{ - rtems_packet_prefix *the_packet; - - (*_Configuration_MPCI_table->receive_packet)( &the_packet ); - - return the_packet; -} - -/*PAGE - * - * _MPCI_Process_response - * - * This subprogram obtains a packet by invoking the user provided - * MPCI get packet callout. - */ - -Thread_Control *_MPCI_Process_response ( - rtems_packet_prefix *the_packet -) -{ - Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( the_packet->id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: - the_thread = NULL; /* IMPOSSIBLE */ - break; - case OBJECTS_LOCAL: - _Thread_queue_Extract( &_MPCI_Remote_blocked_threads, the_thread ); - the_thread->Wait.return_code = the_packet->return_code; - _Thread_Unnest_dispatch(); - break; - } - - return the_thread; -} - -/* end of file */ diff --git a/cpukit/score/src/object.c b/cpukit/score/src/object.c deleted file mode 100644 index 71c365fa1e..0000000000 --- a/cpukit/score/src/object.c +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Object Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Objects_Handler_initialization - * - * This routine initializes the object handler. - * - * Input parameters: - * node - local node - * maximum_global_objects - number of configured global objects - * - * Output parameters: NONE - */ - -void _Objects_Handler_initialization( - unsigned32 node, - unsigned32 maximum_global_objects -) -{ - _Objects_Local_node = node; - - _Objects_MP_Handler_initialization( maximum_global_objects ); -} - -/*PAGE - * - * _Objects_Initialize_information - * - * This routine initializes all object information related data structures. - * - * Input parameters: - * information - object class - * supports_global - TRUE if this is a global object class - * maximum - maximum objects of this class - * size - size of this object's control block - * - * Output parameters: NONE - */ - -void _Objects_Initialize_information( - Objects_Information *information, - boolean supports_global, - unsigned32 maximum, - unsigned32 size -) -{ - unsigned32 minimum_index; - unsigned32 index; - Objects_Control *the_object; - - information->maximum = maximum; - - if ( maximum == 0 ) minimum_index = 0; - else minimum_index = 1; - - information->minimum_id = - _Objects_Build_id( _Objects_Local_node, minimum_index ); - - information->maximum_id = - _Objects_Build_id( _Objects_Local_node, maximum ); - - information->local_table = _Workspace_Allocate_or_fatal_error( - (maximum + 1) * sizeof(Objects_Control *) - ); - - information->name_table = _Workspace_Allocate_or_fatal_error( - (maximum + 1) * sizeof(Objects_Name) - ); - - for ( index=0 ; index < maximum ; index++ ) { - information->local_table[ index ] = NULL; - information->name_table[ index ] = 0; - } - - if ( maximum == 0 ) { - _Chain_Initialize_empty( &information->Inactive ); - } else { - - - _Chain_Initialize( - &information->Inactive, - _Workspace_Allocate_or_fatal_error( maximum * size ), - maximum, - size - ); - - the_object = (Objects_Control *) information->Inactive.first; - for ( index=1; - index <= maximum ; - index++ ) { - the_object->id = _Objects_Build_id( _Objects_Local_node, index ); - the_object = (Objects_Control *) the_object->Node.next; - } - - } - - if ( supports_global == TRUE && _Configuration_Is_multiprocessing() ) { - - information->global_table = _Workspace_Allocate_or_fatal_error( - (_Configuration_MP_table->maximum_nodes + 1) * sizeof(Chain_Control) - ); - - for ( index=1; - index <= _Configuration_MP_table->maximum_nodes ; - index++ ) - _Chain_Initialize_empty( &information->global_table[ index ] ); - } - else - information->global_table = NULL; -} - -/*PAGE - * - * _Objects_Name_to_id - * - * These kernel routines search the object table(s) for the given - * object name and returns the associated object id. - * - * Input parameters: - * information - object information - * name - user defined object name - * node - node indentifier (0 indicates any node) - * id - address of return ID - * - * Output parameters: - * obj_id - object id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code _Objects_Name_to_id( - Objects_Information *information, - Objects_Name name, - unsigned32 node, - Objects_Id *id -) -{ - Objects_Name *names; - unsigned32 index; - - if ( name == 0 ) - return( RTEMS_INVALID_NAME ); - - if ( (information->maximum != 0) && - (node == RTEMS_SEARCH_ALL_NODES || - node == RTEMS_SEARCH_LOCAL_NODE || - _Objects_Is_local_node( node )) ) { - for ( names = information->name_table, index = 1; - index <= information->maximum; - index++ - ) - if ( name == names[ index ] ) { - *id = _Objects_Build_id( _Objects_Local_node, index ); - return( RTEMS_SUCCESSFUL ); - } - } - - if ( _Objects_Is_local_node( node ) || node == RTEMS_SEARCH_LOCAL_NODE ) - return( RTEMS_INVALID_NAME ); - - return ( _Objects_MP_Global_name_search( information, name, node, id ) ); -} - -/*PAGE - * - * _Objects_Get - * - * This routine sets the object pointer for the given - * object id based on the given object information structure. - * - * Input parameters: - * information - pointer to entry in table for this class - * id - object id to search for - * location - address of where to store the location - * - * Output parameters: - * returns - address of object if local - * location - one of the following: - * OBJECTS_ERROR - invalid object ID - * OBJECTS_REMOTE - remote object - * OBJECTS_LOCAL - local object - */ - -Objects_Control *_Objects_Get( - Objects_Information *information, - Objects_Id id, - Objects_Locations *location -) -{ - Objects_Control *the_object; - unsigned32 index; - - index = id - information->minimum_id; - if ( information->maximum >= index ) { - _Thread_Disable_dispatch(); - if ( (the_object = information->local_table[index+1]) != NULL ) { - *location = OBJECTS_LOCAL; - return( the_object ); - } - _Thread_Enable_dispatch(); - *location = OBJECTS_ERROR; - return( NULL ); - } - *location = OBJECTS_ERROR; - _Objects_MP_Is_remote( information, id, location, &the_object ); - return the_object; -} diff --git a/cpukit/score/src/objectmp.c b/cpukit/score/src/objectmp.c deleted file mode 100644 index d75a34b150..0000000000 --- a/cpukit/score/src/objectmp.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Multiprocessing Support for the Object Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/*PAGE - * - * _Objects_MP_Handler_initialization - * - */ - -void _Objects_MP_Handler_initialization ( - unsigned32 maximum_global_objects -) -{ - - if ( maximum_global_objects == 0 ) { - _Chain_Initialize_empty( &_Objects_MP_Inactive_global_objects ); - return; - } - - _Chain_Initialize( - &_Objects_MP_Inactive_global_objects, - _Workspace_Allocate_or_fatal_error( - maximum_global_objects * sizeof( Objects_MP_Control ) - ), - maximum_global_objects, - sizeof( Objects_MP_Control ) - ); - -} - -/*PAGE - * - * _Objects_MP_Open - * - */ - -boolean _Objects_MP_Open ( - Objects_Information *information, - Objects_Name the_name, - Objects_Id the_id, - boolean is_fatal_error -) -{ - Objects_MP_Control *the_global_object; - - the_global_object = _Objects_MP_Allocate_global_object(); - if ( _Objects_MP_Is_null_global_object( the_global_object ) ) { - - if ( is_fatal_error == FALSE ) - return FALSE; - - rtems_fatal_error_occurred( RTEMS_TOO_MANY ); - - } - - the_global_object->Object.id = the_id; - the_global_object->name = the_name; - - _Chain_Prepend( - &information->global_table[ rtems_get_node( the_id ) ], - &the_global_object->Object.Node - ); - - return TRUE; -} - -/*PAGE - * - * _Objects_MP_Close - * - */ - -void _Objects_MP_Close ( - Objects_Information *information, - Objects_Id the_id -) -{ - Chain_Control *the_chain; - Chain_Node *the_node; - Objects_MP_Control *the_object; - - the_chain = &information->global_table[ rtems_get_node( the_id ) ]; - - for ( the_node = the_chain->first ; - !_Chain_Is_tail( the_chain, the_node ) ; - the_node = the_node->next ) { - - the_object = (Objects_MP_Control *) the_node; - - if ( _Objects_Are_ids_equal( the_object->Object.id, the_id ) ) { - - _Chain_Extract( the_node ); - _Objects_MP_Free_global_object( the_object ); - - return; - - } - - } - - rtems_fatal_error_occurred( RTEMS_INVALID_ID ); - - -} - -/*PAGE - * - * _Objects_MP_Global_name_search - * - */ - -rtems_status_code _Objects_MP_Global_name_search ( - Objects_Information *information, - Objects_Name the_name, - unsigned32 nodes_to_search, - Objects_Id *the_id -) -{ - unsigned32 low_node; - unsigned32 high_node; - unsigned32 node_index; - Chain_Control *the_chain; - Chain_Node *the_node; - Objects_MP_Control *the_object; - - - if ( nodes_to_search > _Configuration_MP_table->maximum_nodes ) - return ( RTEMS_INVALID_NODE ); - - if ( information->global_table == NULL ) - return ( RTEMS_INVALID_NAME ); - - if ( nodes_to_search == RTEMS_SEARCH_ALL_NODES || - nodes_to_search == RTEMS_SEARCH_OTHER_NODES ) { - low_node = 1; - high_node = _Configuration_MP_table->maximum_nodes; - } else { - low_node = - high_node = nodes_to_search; - } - - _Thread_Disable_dispatch(); - - for ( node_index = low_node ; node_index <= high_node ; node_index++ ) { - - /* - * NOTE: The local node was search (if necessary) by - * _Objects_Name_to_id before this was invoked. - */ - - if ( !_Objects_Is_local_node( node_index ) ) { - the_chain = &information->global_table[ node_index ]; - - for ( the_node = the_chain->first ; - !_Chain_Is_tail( the_chain, the_node ) ; - the_node = the_node->next ) { - - the_object = (Objects_MP_Control *) the_node; - - if ( the_object->name == the_name ) { - *the_id = the_object->Object.id; - _Thread_Enable_dispatch(); - return ( RTEMS_SUCCESSFUL ); - } - } - } - } - - _Thread_Enable_dispatch(); - return ( RTEMS_INVALID_NAME ); -} - -/*PAGE - * - * _Objects_MP_Is_remote - * - */ - -void _Objects_MP_Is_remote ( - Objects_Information *information, - Objects_Id the_id, - Objects_Locations *location, - Objects_Control **the_object -) -{ - unsigned32 node; - Chain_Control *the_chain; - Chain_Node *the_node; - Objects_MP_Control *the_global_object; - - node = rtems_get_node( the_id ); - - /* - * NOTE: The local node was search (if necessary) by - * _Objects_Name_to_id before this was invoked. - * - * The NODE field of an object id cannot be 0 - * because 0 is an invalid node number. - */ - - if ( node == 0 || - _Objects_Is_local_node( node ) || - node > _Configuration_MP_table->maximum_nodes || - information->global_table == NULL ) { - - *location = OBJECTS_ERROR; - *the_object = NULL; - return; - } - - _Thread_Disable_dispatch(); - - the_chain = &information->global_table[ node ]; - - for ( the_node = the_chain->first ; - !_Chain_Is_tail( the_chain, the_node ) ; - the_node = the_node->next ) { - - the_global_object = (Objects_MP_Control *) the_node; - - if ( _Objects_Are_ids_equal( the_global_object->Object.id, the_id ) ) { - _Thread_Unnest_dispatch(); - *location = OBJECTS_REMOTE; - *the_object = (Objects_Control *) the_global_object; - return; - } - } - - _Thread_Enable_dispatch(); - *location = OBJECTS_ERROR; - *the_object = NULL; - -} diff --git a/cpukit/score/src/thread.c b/cpukit/score/src/thread.c deleted file mode 100644 index 2d9fc33e6b..0000000000 --- a/cpukit/score/src/thread.c +++ /dev/null @@ -1,805 +0,0 @@ -/* - * Thread Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Thread_Handler_initialization - * - * This routine initializes all thread manager related data structures. - * - * Input parameters: - * maximum_tasks - number of tasks to initialize - * ticks_per_timeslice - clock ticks per quantum - * - * Output parameters: NONE - */ - -void _Thread_Handler_initialization( - unsigned32 maximum_tasks, - unsigned32 ticks_per_timeslice, - unsigned32 maximum_proxies -) -{ - unsigned32 index; - - _Context_Switch_necessary = FALSE; - _Thread_Executing = NULL; - _Thread_Heir = NULL; - _Thread_Allocated_fp = NULL; - - _Thread_Ticks_remaining_in_timeslice = ticks_per_timeslice; - _Thread_Ticks_per_timeslice = ticks_per_timeslice; - - _Objects_Initialize_information( - &_Thread_Information, - TRUE, - maximum_tasks, - sizeof( Thread_Control ) - ); - - _Thread_Ready_chain = _Workspace_Allocate_or_fatal_error( - (RTEMS_MAXIMUM_PRIORITY + 1) * sizeof(Chain_Control) - ); - - for ( index=0; index <= RTEMS_MAXIMUM_PRIORITY ; index++ ) - _Chain_Initialize_empty( &_Thread_Ready_chain[ index ] ); - - _Thread_MP_Handler_initialization( maximum_proxies ); -} - -/*PAGE - * - * _Thread_Start_multitasking - * - * This kernel routine readies the requested thread, the thread chain - * is adjusted. A new heir thread may be selected. - * - * Input parameters: - * system_thread - pointer to system initialization thread control block - * idle_thread - pointer to idle thread control block - * - * Output parameters: NONE - * - * NOTE: This routine uses the "blocking" heir selection mechanism. - * This insures the correct heir after a thread restart. - * - * INTERRUPT LATENCY: - * ready chain - * select heir - */ - -void _Thread_Start_multitasking( - Thread_Control *system_thread, - Thread_Control *idle_thread -) -{ - - _Thread_Executing = - _Thread_Heir = - _Thread_MP_Receive = system_thread; - - /* - * Scheduling will not work "correctly" until the above - * statements have been executed. - */ - - _Thread_Ready( system_thread ); - _Thread_Ready( idle_thread ); - - _Context_Switch_necessary = FALSE; - - _Context_Switch( &_Thread_BSP_context, &system_thread->Registers ); - -} - -/*PAGE - * - * _Thread_Dispatch - * - * This kernel routine determines if a dispatch is needed, and if so - * dispatches to the heir thread. Once the heir is running an attempt - * is made to dispatch any ASRs. - * - * ALTERNATE ENTRY POINTS: - * void _Thread_Enable_dispatch(); - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * dispatch thread - * no dispatch thread - */ - -#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE ) -void _Thread_Enable_dispatch( void ) -{ - if ( --_Thread_Dispatch_disable_level ) - return; - _Thread_Dispatch(); -} -#endif - -void _Thread_Dispatch( void ) -{ - Thread_Control *executing; - Thread_Control *heir; - ISR_Level level; - rtems_signal_set signal_set; - rtems_mode previous_mode; - - executing = _Thread_Executing; - _ISR_Disable( level ); - while ( _Context_Switch_necessary == TRUE ) { - heir = _Thread_Heir; - _Thread_Dispatch_disable_level = 1; - _Context_Switch_necessary = FALSE; - _Thread_Executing = heir; - _ISR_Enable( level ); - - _User_extensions_Task_switch( executing, heir ); - - _Thread_Ticks_remaining_in_timeslice = _Thread_Ticks_per_timeslice; - - /* - * If the CPU has hardware floating point, then we must address saving - * and restoring it as part of the context switch. - * - * The second conditional compilation section selects the algorithm used - * to context switch between floating point tasks. The deferred algorithm - * can be significantly better in a system with few floating point tasks - * because it reduces the total number of save and restore FP context - * operations. However, this algorithm can not be used on all CPUs due - * to unpredictable use of FP registers by some compilers for integer - * operations. - */ - -#if ( CPU_HARDWARE_FP == TRUE ) -#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE ) - if ( (heir->fp_context != NULL) && !_Thread_Is_allocated_fp( heir ) ) { - if ( _Thread_Allocated_fp != NULL ) - _Context_Save_fp( &_Thread_Allocated_fp->fp_context ); - _Context_Restore_fp( &heir->fp_context ); - _Thread_Allocated_fp = heir; - } -#else - if ( executing->fp_context != NULL ) - _Context_Save_fp( &executing->fp_context ); - - if ( heir->fp_context != NULL ) - _Context_Restore_fp( &heir->fp_context ); -#endif -#endif - - _Context_Switch( &executing->Registers, &heir->Registers ); - - executing = _Thread_Executing; - _ISR_Disable( level ); - } - - _Thread_Dispatch_disable_level = 0; - - if ( _ASR_Are_signals_pending( &executing->Signal ) ) { - signal_set = executing->Signal.signals_posted; - executing->Signal.signals_posted = 0; - _ISR_Enable( level ); - - executing->Signal.nest_level += 1; - if (_Thread_Change_mode( executing->Signal.mode_set, - RTEMS_ALL_MODE_MASKS, &previous_mode )) - _Thread_Dispatch(); - - (*executing->Signal.handler)( signal_set ); - - executing->Signal.nest_level -= 1; - if (_Thread_Change_mode( previous_mode, - RTEMS_ALL_MODE_MASKS, &previous_mode )) - _Thread_Dispatch(); - } - else - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Ready - * - * This kernel routine readies the requested thread, the thread chain - * is adjusted. A new heir thread may be selected. - * - * Input parameters: - * the_thread - pointer to thread control block - * - * Output parameters: NONE - * - * NOTE: This routine uses the "blocking" heir selection mechanism. - * This insures the correct heir after a thread restart. - * - * INTERRUPT LATENCY: - * ready chain - * select heir - */ - -void _Thread_Ready( - Thread_Control *the_thread -) -{ - ISR_Level level; - Thread_Control *heir; - - _ISR_Disable( level ); - - the_thread->current_state = STATES_READY; - - _Priority_Add_to_bit_map( &the_thread->Priority_map ); - - _Chain_Append_unprotected( the_thread->ready, &the_thread->Object.Node ); - - _ISR_Flash( level ); - - _Thread_Calculate_heir(); - - heir = _Thread_Heir; - - if ( !_Thread_Is_executing( heir ) && - _Modes_Is_preempt( _Thread_Executing->current_modes ) ) - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Clear_state - * - * This kernel routine clears the appropriate states in the - * requested thread. The thread ready chain is adjusted if - * necessary and the Heir thread is set accordingly. - * - * Input parameters: - * the_thread - pointer to thread control block - * state - state set to clear - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * priority map - * select heir - */ - -void _Thread_Clear_state( - Thread_Control *the_thread, - States_Control state -) -{ - ISR_Level level; - - _ISR_Disable( level ); - the_thread->current_state = - _States_Clear( state, the_thread->current_state ); - - if ( _States_Is_ready( the_thread->current_state ) ) { - - _Priority_Add_to_bit_map( &the_thread->Priority_map ); - - _Chain_Append_unprotected( the_thread->ready, &the_thread->Object.Node ); - - _ISR_Flash( level ); - - if ( the_thread->current_priority < _Thread_Heir->current_priority ) { - _Thread_Heir = the_thread; - if ( _Modes_Is_preempt( _Thread_Executing->current_modes ) ) - _Context_Switch_necessary = TRUE; - } - } - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Set_state - * - * This kernel routine sets the requested state in the THREAD. The - * THREAD chain is adjusted if necessary. - * - * Input parameters: - * the_thread - pointer to thread control block - * state - state to be set - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * ready chain - * select map - */ - -void _Thread_Set_state( - Thread_Control *the_thread, - States_Control state -) -{ - ISR_Level level; - Chain_Control *ready; - - ready = the_thread->ready; - _ISR_Disable( level ); - if ( !_States_Is_ready( the_thread->current_state ) ) { - the_thread->current_state = - _States_Set( state, the_thread->current_state ); - _ISR_Enable( level ); - return; - } - - the_thread->current_state = state; - - if ( _Chain_Has_only_one_node( ready ) ) { - - _Chain_Initialize_empty( ready ); - _Priority_Remove_from_bit_map( &the_thread->Priority_map ); - - } else - _Chain_Extract_unprotected( &the_thread->Object.Node ); - - _ISR_Flash( level ); - - if ( _Thread_Is_heir( the_thread ) ) - _Thread_Calculate_heir(); - - if ( _Thread_Is_executing( the_thread ) ) - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Set_transient - * - * This kernel routine places the requested thread in the transient state - * which will remove it from the ready queue, if necessary. No - * rescheduling is necessary because it is assumed that the transient - * state will be cleared before dispatching is enabled. - * - * Input parameters: - * the_thread - pointer to thread control block - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Thread_Set_transient( - Thread_Control *the_thread -) -{ - ISR_Level level; - unsigned32 old_state; - Chain_Control *ready; - - ready = the_thread->ready; - _ISR_Disable( level ); - - old_state = the_thread->current_state; - the_thread->current_state = _States_Set( STATES_TRANSIENT, old_state ); - - if ( _States_Is_ready( old_state ) ) { - if ( _Chain_Has_only_one_node( ready ) ) { - - _Chain_Initialize_empty( ready ); - _Priority_Remove_from_bit_map( &the_thread->Priority_map ); - - } else - _Chain_Extract_unprotected( &the_thread->Object.Node ); - } - - _ISR_Enable( level ); - -} - -/*PAGE - * - * _Thread_Reset_timeslice - * - * This routine will remove the running thread from the ready chain - * and place it immediately at the rear of this chain and then the - * timeslice counter is reset. The heir THREAD will be updated if - * the running is also the currently the heir. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * ready chain - * select heir - */ - -void _Thread_Reset_timeslice( void ) -{ - ISR_Level level; - Thread_Control *executing; - Chain_Control *ready; - - executing = _Thread_Executing; - ready = executing->ready; - _ISR_Disable( level ); - if ( _Chain_Has_only_one_node( ready ) ) { - _Thread_Ticks_remaining_in_timeslice = _Thread_Ticks_per_timeslice; - _ISR_Enable( level ); - return; - } - _Chain_Extract_unprotected( &executing->Object.Node ); - _Chain_Append_unprotected( ready, &executing->Object.Node ); - - _ISR_Flash( level ); - - if ( _Thread_Is_heir( executing ) ) - _Thread_Heir = (Thread_Control *) ready->first; - - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Tickle_timeslice - * - * This scheduler routine determines if timeslicing is enabled - * for the currently executing thread and, if so, updates the - * timeslice count and checks for timeslice expiration. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void _Thread_Tickle_timeslice( void ) -{ - if ( ( _Modes_Is_timeslice(_Thread_Executing->current_modes) ) && - ( _States_Is_ready( _Thread_Executing->current_state ) ) && - ( --_Thread_Ticks_remaining_in_timeslice == 0 ) ) { - _Thread_Reset_timeslice(); - } -} - -/*PAGE - * - * _Thread_Yield_processor - * - * This kernel routine will remove the running THREAD from the ready chain - * and place it immediatly at the rear of this chain. Reset timeslice - * and yield the processor functions both use this routine, therefore if - * reset is TRUE and this is the only thread on the chain then the - * timeslice counter is reset. The heir THREAD will be updated if the - * running is also the currently the heir. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * ready chain - * select heir - */ - -void _Thread_Yield_processor( void ) -{ - ISR_Level level; - Thread_Control *executing; - Chain_Control *ready; - - executing = _Thread_Executing; - ready = executing->ready; - _ISR_Disable( level ); - if ( !_Chain_Has_only_one_node( ready ) ) { - _Chain_Extract_unprotected( &executing->Object.Node ); - _Chain_Append_unprotected( ready, &executing->Object.Node ); - - _ISR_Flash( level ); - - if ( _Thread_Is_heir( executing ) ) - _Thread_Heir = (Thread_Control *) ready->first; - _Context_Switch_necessary = TRUE; - } - else if ( !_Thread_Is_heir( executing ) ) - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Load_environment - * - * Load starting environment for another thread from its start area in the - * thread. Only called from t_restart and t_start. - * - * Input parameters: - * the_thread - thread control block pointer - * - * Output parameters: NONE - */ - -void _Thread_Load_environment( - Thread_Control *the_thread -) -{ - if ( the_thread->Start.fp_context ) { - the_thread->fp_context = the_thread->Start.fp_context; - _Context_Initialize_fp( &the_thread->fp_context ); - } - - _Context_Initialize( - &the_thread->Registers, - the_thread->Start.Initial_stack.area, - the_thread->Start.Initial_stack.size, - _Modes_Get_interrupt_level( the_thread->Start.initial_modes ), - _Thread_Handler - ); - -} - -/*PAGE - * - * _Thread_Handler - * - * This routine is the default thread exitted error handler. It is - * returned to when a thread exits. The configured fatal error handler - * is invoked to process the exit. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void _Thread_Handler( void ) -{ - Thread_Control *executing; - - executing = _Thread_Executing; - - _Thread_Dispatch_disable_level = 0; - - /* - * Do the 'begin' here instead of after the context switch. - * This ensures 'switch' extensions can not be called before - * 'begin' extensions. - */ - - _User_extensions_Task_begin( executing ); - - if ( _Thread_Is_context_switch_necessary() ) - _Thread_Dispatch(); - - (*executing->Start.entry_point)( executing->Start.initial_argument ); - - _User_extensions_Task_exitted( executing ); - - rtems_fatal_error_occurred( RTEMS_TASK_EXITTED ); -} - -/*PAGE - * - * _Thread_Delay_ended - * - * This routine processes a thread whose delay period has ended. - * It is called by the watchdog handler. - * - * Input parameters: - * id - thread id - * - * Output parameters: NONE - */ - -void _Thread_Delay_ended( - Objects_Id id, - void *ignored -) -{ - Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: /* impossible */ - break; - case OBJECTS_LOCAL: - _Thread_Unblock( the_thread ); - _Thread_Unnest_dispatch(); - break; - } -} - -/*PAGE - * - * _Thread_Change_priority - * - * This kernel routine changes the priority of the thread. The - * thread chain is adjusted if necessary. - * - * Input parameters: - * the_thread - pointer to thread control block - * new_priority - ultimate priority - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * ready chain - * select heir - */ - -void _Thread_Change_priority( - Thread_Control *the_thread, - rtems_task_priority new_priority -) -{ - ISR_Level level; - - _Thread_Set_transient( the_thread ); - - if ( the_thread->current_priority != new_priority ) - _Thread_Set_priority( the_thread, new_priority ); - - _ISR_Disable( level ); - - the_thread->current_state = - _States_Clear( STATES_TRANSIENT, the_thread->current_state ); - - if ( ! _States_Is_ready( the_thread->current_state ) ) { - _ISR_Enable( level ); - return; - } - - _Priority_Add_to_bit_map( &the_thread->Priority_map ); - _Chain_Append_unprotected( the_thread->ready, &the_thread->Object.Node ); - - _ISR_Flash( level ); - - _Thread_Calculate_heir(); - - if ( !_Thread_Is_executing_also_the_heir() && - _Modes_Is_preempt(_Thread_Executing->current_modes) ) - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_Set_priority - * - * This directive enables and disables several modes of - * execution for the requesting thread. - * - * Input parameters: - * the_thread - pointer to thread priority - * new_priority - new priority - * - * Output: NONE - */ - -void _Thread_Set_priority( - Thread_Control *the_thread, - rtems_task_priority new_priority -) -{ - the_thread->current_priority = new_priority; - the_thread->ready = &_Thread_Ready_chain[ new_priority ]; - - _Priority_Initialize_information( &the_thread->Priority_map, new_priority ); -} - -/*PAGE - * - * _Thread_Change_mode - * - * This routine enables and disables several modes of - * execution for the requesting thread. - * - * Input parameters: - * mode - new mode - * mask - mask - * old_mode_set - address of previous mode - * - * Output: - * *old_mode_set - previous mode - * returns TRUE if scheduling necessary - * - * INTERRUPT LATENCY: - * only one case - */ - -boolean _Thread_Change_mode( - unsigned32 new_mode_set, - unsigned32 mask, - unsigned32 *old_mode_set -) -{ - rtems_mode changed; - rtems_mode threads_new_mode_set; - Thread_Control *executing; - boolean need_dispatch; - - executing = _Thread_Executing; - *old_mode_set = executing->current_modes; - - _Modes_Change( executing->current_modes, - new_mode_set, mask, &threads_new_mode_set, &changed ); - - _Modes_Set_interrupt_level( threads_new_mode_set ); - - if ( _Modes_Mask_changed( changed, RTEMS_ASR_MASK ) ) - _ASR_Swap_signals( &executing->Signal ); - - executing->current_modes = threads_new_mode_set; - need_dispatch = TRUE; - - if ( !_States_Is_ready( executing->current_state ) || - ( !_Thread_Is_heir( executing ) && - _Modes_Is_preempt(threads_new_mode_set) ) ) - - _Context_Switch_necessary = TRUE; - - else if ( !_ASR_Are_signals_pending( &executing->Signal ) ) - - need_dispatch = FALSE; - - return need_dispatch; -} - -/*PAGE - * - * _Thread_Get - * - * NOTE: If we are not using static inlines, this must be a real - * subroutine call. - */ - -#ifndef USE_INLINES - -STATIC INLINE Thread_Control *_Thread_Get ( - Objects_Id id, - unsigned32 *location -) -{ - if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { - _Thread_Disable_dispatch(); - *location = OBJECTS_LOCAL; - return( _Thread_Executing ); - } - - return (Thread_Control *) _Objects_Get( &_Thread_Information, id, location ); -} -#endif - diff --git a/cpukit/score/src/threadmp.c b/cpukit/score/src/threadmp.c deleted file mode 100644 index 5d352e2d25..0000000000 --- a/cpukit/score/src/threadmp.c +++ /dev/null @@ -1,229 +0,0 @@ -/* - * Multiprocessing Support for the Thread Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include - -/*PAGE - * - * _Thread_MP_Handler_initialization - * - */ - -void _Thread_MP_Handler_initialization ( - unsigned32 maximum_proxies -) -{ - - _Chain_Initialize_empty( &_Thread_MP_Active_proxies ); - - if ( maximum_proxies == 0 ) { - _Chain_Initialize_empty( &_Thread_MP_Inactive_proxies ); - return; - } - - - _Chain_Initialize( - &_Thread_MP_Inactive_proxies, - _Workspace_Allocate_or_fatal_error( - maximum_proxies * sizeof( Thread_Proxy_control ) - ), - maximum_proxies, - sizeof( Thread_Proxy_control ) - ); - -} - -/*PAGE - * - * _Thread_MP_Allocate_proxy - * - */ - -Thread_Control *_Thread_MP_Allocate_proxy ( - States_Control the_state -) -{ - Thread_Control *the_thread; - Thread_Proxy_control *the_proxy; - - the_thread = (Thread_Control *)_Chain_Get( &_Thread_MP_Inactive_proxies ); - - if ( !_Thread_Is_null( the_thread ) ) { - - the_proxy = (Thread_Proxy_control *) the_thread; - - _Thread_Executing->Wait.return_code = RTEMS_PROXY_BLOCKING; - - the_proxy->receive_packet = _Thread_MP_Receive->receive_packet; - - the_proxy->Object.id = _Thread_MP_Receive->receive_packet->source_tid; - - the_proxy->current_priority = - _Thread_MP_Receive->receive_packet->source_priority; - - the_proxy->current_state = _States_Set( STATES_DORMANT, the_state ); - - the_proxy->Wait = _Thread_Executing->Wait; - - _Chain_Append( &_Thread_MP_Active_proxies, &the_proxy->Active ); - - return the_thread; - } - - rtems_fatal_error_occurred( RTEMS_TOO_MANY ); - - /* - * NOTE: The following return insures that the compiler will - * think that all paths return a value. - */ - - return NULL; -} - -/*PAGE - * - * _Thread_MP_Find_proxy - * - */ - -/* - * The following macro provides the offset of the Active element - * in the Thread_Proxy_control structure. This is the logical - * equivalent of the POSITION attribute in Ada. - */ - -#define _Thread_MP_Proxy_Active_offset \ - ((unsigned32)&(((Thread_Proxy_control *)0))->Active) - -Thread_Control *_Thread_MP_Find_proxy ( - Objects_Id the_id -) -{ - - Chain_Node *proxy_node; - Thread_Control *the_thread; - ISR_Level level; - -restart: - - _ISR_Disable( level ); - - for ( proxy_node = _Thread_MP_Active_proxies.first; - !_Chain_Is_tail( &_Thread_MP_Active_proxies, proxy_node ) ; - ) { - - the_thread = _Addresses_Subtract_offset( - proxy_node, - _Thread_MP_Proxy_Active_offset - ); - - if ( _Objects_Are_ids_equal( the_thread->Object.id, the_id ) ) { - _ISR_Enable( level ); - return the_thread; - } - - _ISR_Flash( level ); - - proxy_node = proxy_node->next; - - /* - * A proxy which is only dormant is not in a blocking state. - * Therefore, we are looking at proxy which has been moved from - * active to inactive chain (by an ISR) and need to restart - * the search. - */ - - if ( _States_Is_only_dormant( the_thread->current_state ) ) { - _ISR_Enable( level ); - goto restart; - } - } - - _ISR_Enable( level ); - return NULL; -} - -/*PAGE - * - * _Thread_MP_Block - * - */ - -void _Thread_MP_Block( void ) -{ - ISR_Level level; - - _ISR_Disable( level ); - - if ( _Thread_MP_Receive->Notepads[ 0 ] != 0 ) { - _Priority_Remove_from_bit_map( &_Thread_MP_Receive->Priority_map ); - - _Thread_MP_Receive->current_state = STATES_SUSPENDED; - - _ISR_Flash( level ); - - _Thread_Calculate_heir(); - - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); - - _Thread_Dispatch_disable_level = 0; - - _Thread_Dispatch(); - - return; - - } - _ISR_Enable( level ); - -} - -/*PAGE - * - * _Thread_MP_Ready - * - */ - -void _Thread_MP_Ready( void ) -{ - ISR_Level level; - - _ISR_Disable( level ); - - if ( _States_Is_suspended( _Thread_MP_Receive->current_state ) ) { - _Priority_Add_to_bit_map( &_Thread_MP_Receive->Priority_map ); - - _Thread_MP_Receive->current_state = STATES_READY; - - _Thread_Heir = _Thread_MP_Receive; - - _Context_Switch_necessary = TRUE; - - _ISR_Enable( level ); - - if ( _Thread_Is_dispatching_enabled() ) - _Thread_Dispatch(); - - } else { - - _Thread_MP_Receive->Notepads[ 0 ] = 0; - _ISR_Enable( level ); - - } -} diff --git a/cpukit/score/src/threadq.c b/cpukit/score/src/threadq.c deleted file mode 100644 index 60ffb5db38..0000000000 --- a/cpukit/score/src/threadq.c +++ /dev/null @@ -1,837 +0,0 @@ -/* - * Thread Queue Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/*PAGE - * - * _Thread_queue_Initialize - * - * This routine initializes the specified threadq. - * - * Input parameters: - * the_thread_queue - pointer to a threadq header - * attribute_set - used to determine queueing discipline - * state - state of waiting threads - * - * Output parameters: NONE - */ - -void _Thread_queue_Initialize( - Thread_queue_Control *the_thread_queue, - rtems_attribute attribute_set, - States_Control state -) -{ - unsigned32 index; - - if ( _Attributes_Is_priority( attribute_set ) ) { - the_thread_queue->discipline = THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE; - for( index=0 ; - index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; - index++) - _Chain_Initialize_empty( &the_thread_queue->Queues.Priority[index] ); - } - else { - the_thread_queue->discipline = THREAD_QUEUE_DATA_FIFO_DISCIPLINE; - _Chain_Initialize_empty( &the_thread_queue->Queues.Fifo ); - } - - the_thread_queue->state = state; - -} - -/*PAGE - * - * _Thread_queue_Enqueue - * - * This routine blocks a thread, places it on a thread, and optionally - * starts a timeout timer. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * timeout - interval to wait - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Thread_queue_Enqueue( - Thread_queue_Control *the_thread_queue, - rtems_interval timeout -) -{ - Thread_Control *the_thread; - - the_thread = _Thread_Executing; - - if ( _Thread_MP_Is_receive( the_thread ) ) - the_thread = _Thread_MP_Allocate_proxy( the_thread_queue->state ); - else - _Thread_Set_state( the_thread, the_thread_queue->state ); - - if ( timeout ) { - _Watchdog_Initialize( - &the_thread->Timer, - _Thread_queue_Timeout, - the_thread->Object.id, - NULL - ); - - _Watchdog_Insert_ticks( - &the_thread->Timer, - timeout, - WATCHDOG_NO_ACTIVATE - ); - } - - switch( the_thread_queue->discipline ) { - case THREAD_QUEUE_DATA_FIFO_DISCIPLINE: - _Thread_queue_Enqueue_fifo( the_thread_queue, the_thread, timeout ); - break; - case THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE: - _Thread_queue_Enqueue_priority( - the_thread_queue, the_thread, timeout ); - break; - } -} - -/*PAGE - * - * _Thread_queue_Dequeue - * - * This routine removes a thread from the specified threadq. If the - * threadq discipline is RTEMS_FIFO, it unblocks a thread, and cancels its - * timeout timer. Priority discipline is processed elsewhere. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * - * Output parameters: - * returns - thread dequeued or NULL - * - * INTERRUPT LATENCY: - * check sync - * RTEMS_FIFO - */ - -Thread_Control *_Thread_queue_Dequeue( - Thread_queue_Control *the_thread_queue -) -{ - Thread_Control *the_thread; - ISR_Level level; - - switch ( the_thread_queue->discipline ) { - case THREAD_QUEUE_DATA_FIFO_DISCIPLINE: - the_thread = _Thread_queue_Dequeue_fifo( the_thread_queue ); - break; - case THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE: - the_thread = _Thread_queue_Dequeue_priority( the_thread_queue ); - break; - default: /* this is only to prevent warnings */ - the_thread = NULL; - break; - } - - if ( !_Thread_Is_null( the_thread ) ) - return( the_thread ); - - _ISR_Disable( level ); - if ( the_thread_queue->sync == FALSE ) { - _ISR_Enable( level ); - return( NULL ); - } - - the_thread_queue->sync = FALSE; - _ISR_Enable( level ); - return( _Thread_Executing ); -} - -/*PAGE - * - * _Thread_queue_Extract - * - * This routine removes a specific thread from the specified threadq, - * deletes any timeout, and unblocks the thread. - * - * Input parameters: - * the_thread_queue - pointer to a threadq header - * the_thread - pointer to a thread control block - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: NONE - */ - -void _Thread_queue_Extract( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -) -{ - switch ( the_thread_queue->discipline ) { - case THREAD_QUEUE_DATA_FIFO_DISCIPLINE: - _Thread_queue_Extract_fifo( the_thread_queue, the_thread ); - break; - case THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE: - _Thread_queue_Extract_priority( the_thread_queue, the_thread ); - break; - } -} - -/*PAGE - * - * _Thread_queue_Flush - * - * This kernel routine flushes the given thread queue. - * - * Input parameters: - * the_thread_queue - pointer to threadq to be flushed - * - * Output parameters: NONE - */ - -void _Thread_queue_Flush( - Thread_queue_Control *the_thread_queue, - Thread_queue_Flush_callout remote_extract_callout -) -{ - Thread_Control *the_thread; - - while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) { - if ( _Objects_Is_local_id( the_thread->Object.id ) ) - the_thread->Wait.return_code = RTEMS_OBJECT_WAS_DELETED; - else - ( *remote_extract_callout )( the_thread ); - } -} - -/*PAGE - * - * _Thread_queue_First - * - * This routines returns a pointer to the first thread on the - * specified threadq. - * - * Input parameters: - * the_thread_queue - pointer to thread queue - * - * Output parameters: - * returns - first thread or NULL - */ - -Thread_Control *_Thread_queue_First( - Thread_queue_Control *the_thread_queue -) -{ - Thread_Control *the_thread; - - switch ( the_thread_queue->discipline ) { - case THREAD_QUEUE_DATA_FIFO_DISCIPLINE: - the_thread = _Thread_queue_First_fifo( the_thread_queue ); - break; - case THREAD_QUEUE_DATA_PRIORITY_DISCIPLINE: - the_thread = _Thread_queue_First_priority( the_thread_queue ); - break; - default: /* this is only to prevent warnings */ - the_thread = NULL; - break; - } - - return the_thread; -} - -/*PAGE - * - * _Thread_queue_Timeout - * - * This routine processes a thread which timeouts while waiting on - * a thread queue. It is called by the watchdog handler. - * - * Input parameters: - * id - thread id - * - * Output parameters: NONE - */ - -void _Thread_queue_Timeout( - Objects_Id id, - void *ignored -) -{ - Thread_Control *the_thread; - Objects_Locations location; - - the_thread = _Thread_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: /* impossible */ - break; - case OBJECTS_LOCAL: - the_thread->Wait.return_code = RTEMS_TIMEOUT; - _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); - _Thread_Unnest_dispatch(); - break; - } -} - -/*PAGE - * - * _Thread_queue_Enqueue_fifo - * - * This routine blocks a thread, places it on a thread, and optionally - * starts a timeout timer. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * the_thread - pointer to the thread to block - * timeout - interval to wait - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * only case - */ - -void _Thread_queue_Enqueue_fifo ( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread, - rtems_interval timeout -) -{ - ISR_Level level; - - _ISR_Disable( level ); - if ( the_thread_queue->sync == TRUE ) { - the_thread_queue->sync = FALSE; - - _Chain_Append_unprotected( - &the_thread_queue->Queues.Fifo, - &the_thread->Object.Node - ); - - if ( timeout != RTEMS_NO_TIMEOUT ) - _Watchdog_Activate( &the_thread->Timer ); - - _ISR_Enable( level ); - return; - } - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); - -} - -/*PAGE - * - * _Thread_queue_Dequeue_fifo - * - * This routine removes a thread from the specified threadq. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * - * Output parameters: - * returns - thread dequeued or NULL - * - * INTERRUPT LATENCY: - * check sync - * RTEMS_FIFO - */ - -Thread_Control *_Thread_queue_Dequeue_fifo( - Thread_queue_Control *the_thread_queue -) -{ - ISR_Level level; - Thread_Control *the_thread; - - _ISR_Disable( level ); - if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) { - - the_thread = (Thread_Control *) - _Chain_Get_first_unprotected( &the_thread_queue->Queues.Fifo ); - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); - - return( the_thread ); - } - _ISR_Enable( level ); - return( NULL ); -} - -/*PAGE - * - * _Thread_queue_Extract_fifo - * - * This routine removes a specific thread from the specified threadq, - * deletes any timeout, and unblocks the thread. - * - * Input parameters: - * the_thread_queue - pointer to a threadq header - * the_thread - pointer to the thread to block - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * EXTRACT_FIFO - */ - -void _Thread_queue_Extract_fifo( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -) -{ - ISR_Level level; - - _ISR_Disable( level ); - - if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { - _ISR_Enable( level ); - return; - } - - _Chain_Extract_unprotected( &the_thread->Object.Node ); - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); -} - -/*PAGE - * - * _Thread_queue_First_fifo - * - * This routines returns a pointer to the first thread on the - * specified threadq. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * - * Output parameters: - * returns - first thread or NULL - */ - -Thread_Control *_Thread_queue_First_fifo( - Thread_queue_Control *the_thread_queue -) -{ - if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) - return (Thread_Control *) the_thread_queue->Queues.Fifo.first; - - return NULL; -} - -/*PAGE - * - * _Thread_queue_Enqueue_priority - * - * This routine blocks a thread, places it on a thread, and optionally - * starts a timeout timer. - * - * Input parameters: - * the_thread_queue - pointer to threadq - * thread - thread to insert - * timeout - timeout interval in ticks - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * forward less than - * forward equal - */ - -void _Thread_queue_Enqueue_priority( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread, - rtems_interval timeout -) -{ - rtems_task_priority search_priority; - Thread_Control *search_thread; - ISR_Level level; - Chain_Control *header; - unsigned32 header_index; - Chain_Node *the_node; - Chain_Node *next_node; - Chain_Node *previous_node; - Chain_Node *search_node; - rtems_task_priority priority; - States_Control block_state; - - _Chain_Initialize_empty( &the_thread->Wait.Block2n ); - - priority = the_thread->current_priority; - header_index = _Thread_queue_Header_number( priority ); - header = &the_thread_queue->Queues.Priority[ header_index ]; - block_state = the_thread_queue->state; - - if ( _Thread_queue_Is_reverse_search( priority ) ) - goto restart_reverse_search; - -restart_forward_search: - search_priority = RTEMS_MINIMUM_PRIORITY - 1; - _ISR_Disable( level ); - search_thread = (Thread_Control *) header->first; - while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) { - search_priority = search_thread->current_priority; - if ( priority <= search_priority ) - break; - -#if ( CPU_UNROLL_ENQUEUE_PRIORITY == TRUE ) - search_thread = (Thread_Control *) search_thread->Object.Node.next; - if ( _Chain_Is_tail( header, (Chain_Node *)search_thread ) ) - break; - search_priority = search_thread->current_priority; - if ( priority <= search_priority ) - break; -#endif - _ISR_Flash( level ); - if ( !_States_Are_set( search_thread->current_state, block_state) ) { - _ISR_Enable( level ); - goto restart_forward_search; - } - search_thread = - (Thread_Control *)search_thread->Object.Node.next; - } - if ( the_thread_queue->sync == FALSE ) - goto syncronize; - - the_thread_queue->sync = FALSE; - if ( timeout != RTEMS_NO_TIMEOUT ) - _Watchdog_Activate( &the_thread->Timer ); - - if ( priority == search_priority ) - goto equal_priority; - - search_node = (Chain_Node *) search_thread; - previous_node = search_node->previous; - the_node = (Chain_Node *) the_thread; - - the_node->next = search_node; - the_node->previous = previous_node; - previous_node->next = the_node; - search_node->previous = the_node; - _ISR_Enable( level ); - return; - -restart_reverse_search: - search_priority = RTEMS_MAXIMUM_PRIORITY + 1; - - _ISR_Disable( level ); - search_thread = (Thread_Control *) header->last; - while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) { - search_priority = search_thread->current_priority; - if ( priority >= search_priority ) - break; -#if ( CPU_UNROLL_ENQUEUE_PRIORITY == TRUE ) - search_thread = (Thread_Control *) search_thread->Object.Node.previous; - if ( _Chain_Is_head( header, (Chain_Node *)search_thread ) ) - break; - search_priority = search_thread->current_priority; - if ( priority >= search_priority ) - break; -#endif - _ISR_Flash( level ); - if ( !_States_Are_set( search_thread->current_state, block_state) ) { - _ISR_Enable( level ); - goto restart_reverse_search; - } - search_thread = (Thread_Control *) - search_thread->Object.Node.previous; - } - if ( !the_thread_queue->sync ) - goto syncronize; - - the_thread_queue->sync = FALSE; - if ( timeout != RTEMS_NO_TIMEOUT ) - _Watchdog_Activate( &the_thread->Timer ); - - if ( priority == search_priority ) - goto equal_priority; - - search_node = (Chain_Node *) search_thread; - next_node = search_node->next; - the_node = (Chain_Node *) the_thread; - - the_node->next = next_node; - the_node->previous = search_node; - search_node->next = the_node; - next_node->previous = the_node; - _ISR_Enable( level ); - return; - -equal_priority: /* add at end of priority group */ - search_node = _Chain_Tail( &search_thread->Wait.Block2n ); - previous_node = search_node->previous; - the_node = (Chain_Node *) the_thread; - - the_node->next = search_node; - the_node->previous = previous_node; - previous_node->next = the_node; - search_node->previous = the_node; - _ISR_Enable( level ); - return; - -syncronize: - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); -} - -/*PAGE - * - * _Thread_queue_Dequeue_priority - * - * This routine removes a thread from the specified RTEMS_PRIORITY based - * threadq, unblocks it, and cancels its timeout timer. - * - * Input parameters: - * the_thread_queue - pointer to thread queue - * - * Output parameters: - * returns - thread dequeued or NULL - * - * INTERRUPT LATENCY: - * only case - */ - -Thread_Control *_Thread_queue_Dequeue_priority( - Thread_queue_Control *the_thread_queue -) -{ - unsigned32 index; - ISR_Level level; - Thread_Control *the_thread; - Thread_Control *new_first_thread; - Chain_Node *new_first_node; - Chain_Node *new_second_node; - Chain_Node *last_node; - Chain_Node *next_node; - Chain_Node *previous_node; - - for( index=0 ; - index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; - index++ ) { - _ISR_Disable( level ); - if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) { - the_thread = (Thread_Control *) - the_thread_queue->Queues.Priority[ index ].first; - goto dequeue; - } - _ISR_Enable( level ); - } - return NULL; - -dequeue: - new_first_node = the_thread->Wait.Block2n.first; - new_first_thread = (Thread_Control *) new_first_node; - next_node = the_thread->Object.Node.next; - previous_node = the_thread->Object.Node.previous; - - if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { - last_node = the_thread->Wait.Block2n.last; - new_second_node = new_first_node->next; - - previous_node->next = new_first_node; - next_node->previous = new_first_node; - new_first_node->next = next_node; - new_first_node->previous = previous_node; - - if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) { - /* > two threads on 2-n */ - new_second_node->previous = - _Chain_Head( &new_first_thread->Wait.Block2n ); - - new_first_thread->Wait.Block2n.first = new_second_node; - new_first_thread->Wait.Block2n.last = last_node; - - last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); - } - } else { - previous_node->next = next_node; - next_node->previous = previous_node; - } - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); - return( the_thread ); -} - -/*PAGE - * - * _Thread_queue_Extract_priority - * - * This routine removes a specific thread from the specified threadq, - * deletes any timeout, and unblocks the thread. - * - * Input parameters: - * the_thread_queue - pointer to a threadq header - * the_thread - pointer to a thread control block - * - * Output parameters: NONE - * - * INTERRUPT LATENCY: - * EXTRACT_PRIORITY - */ - -void _Thread_queue_Extract_priority( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -) -{ - ISR_Level level; - Chain_Node *the_node; - Chain_Node *next_node; - Chain_Node *previous_node; - Thread_Control *new_first_thread; - Chain_Node *new_first_node; - Chain_Node *new_second_node; - Chain_Node *last_node; - - the_node = (Chain_Node *) the_thread; - _ISR_Disable( level ); - if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { - next_node = the_node->next; - previous_node = the_node->previous; - - if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { - new_first_node = the_thread->Wait.Block2n.first; - new_first_thread = (Thread_Control *) new_first_node; - last_node = the_thread->Wait.Block2n.last; - new_second_node = new_first_node->next; - - previous_node->next = new_first_node; - next_node->previous = new_first_node; - new_first_node->next = next_node; - new_first_node->previous = previous_node; - - if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) { - /* > two threads on 2-n */ - new_second_node->previous = - _Chain_Head( &new_first_thread->Wait.Block2n ); - new_first_thread->Wait.Block2n.first = new_second_node; - - new_first_thread->Wait.Block2n.last = last_node; - last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); - } - } else { - previous_node->next = next_node; - next_node->previous = previous_node; - } - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - _Thread_Unblock( the_thread ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - _Thread_Unblock( the_thread ); - } - - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); - } - else - _ISR_Enable( level ); -} - -/*PAGE - * - * _Thread_queue_First_priority - * - * This routines returns a pointer to the first thread on the - * specified threadq. - * - * Input parameters: - * the_thread_queue - pointer to thread queue - * - * Output parameters: - * returns - first thread or NULL - */ - -Thread_Control *_Thread_queue_First_priority ( - Thread_queue_Control *the_thread_queue -) -{ - unsigned32 index; - - for( index=0 ; - index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; - index++ ) { - if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) - return (Thread_Control *) - the_thread_queue->Queues.Priority[ index ].first; - } - return NULL; -} diff --git a/cpukit/score/src/watchdog.c b/cpukit/score/src/watchdog.c deleted file mode 100644 index 7db26c0cd5..0000000000 --- a/cpukit/score/src/watchdog.c +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Watchdog Handler - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -/*PAGE - * - * _Watchdog_Handler_initialization - * - * This routine initializes the watchdog handler. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void _Watchdog_Handler_initialization( void ) -{ - _Watchdog_Clear_sync(); - _Chain_Initialize_empty( &_Watchdog_Ticks_chain ); - _Chain_Initialize_empty( &_Watchdog_Seconds_chain ); -} - -/*PAGE - * - * _Watchdog_Remove - * - * The routine removes a watchdog from a delta chain and updates - * the delta counters of the remaining watchdogs. - */ - -Watchdog_States _Watchdog_Remove( - Watchdog_Control *the_watchdog -) -{ - ISR_Level level; - Watchdog_States previous_state; - Watchdog_Control *next_watchdog; - - _ISR_Disable( level ); - previous_state = the_watchdog->state; - switch ( previous_state ) { - case WATCHDOG_INACTIVE: - break; - case WATCHDOG_ACTIVE: - case WATCHDOG_REINSERT: - case WATCHDOG_REMOVE_IT: - - the_watchdog->state = WATCHDOG_INACTIVE; - next_watchdog = _Watchdog_Next( the_watchdog ); - - if ( _Watchdog_Next(next_watchdog) ) - next_watchdog->delta_interval += the_watchdog->delta_interval; - - if ( the_watchdog == _Watchdog_Sync ) - _Watchdog_Sync = _Watchdog_Previous( the_watchdog ); - - _Chain_Extract_unprotected( &the_watchdog->Node ); - break; - } - _ISR_Enable( level ); - return( previous_state ); -} - -/*PAGE - * - * _Watchdog_Adjust - * - * This routine adjusts the delta chain backward or forward in response - * to a time change. - * - * Input parameters: - * header - pointer to the delta chain to be adjusted - * direction - forward or backward adjustment to delta chain - * units - units to adjust - * - * Output parameters: - */ - -void _Watchdog_Adjust( - Chain_Control *header, - Watchdog_Adjust_directions direction, - rtems_interval units -) -{ - if ( !_Chain_Is_empty( header ) ) { - switch ( direction ) { - case WATCHDOG_BACKWARD: - _Watchdog_First( header )->delta_interval += units; - break; - case WATCHDOG_FORWARD: - while ( units ) { - if ( units < _Watchdog_First( header )->delta_interval ) { - _Watchdog_First( header )->delta_interval -= units; - break; - } else { - units -= _Watchdog_First( header )->delta_interval; - _Watchdog_First( header )->delta_interval = 1; - _Watchdog_Tickle( header ); - if ( _Chain_Is_empty( header ) ) - break; - } - } - break; - } - } -} - -/*PAGE - * - * _Watchdog_Insert - * - * This routine inserts a watchdog timer on to the appropriate delta - * chain while updating the delta interval counters. - */ - -void _Watchdog_Insert( - Chain_Control *header, - Watchdog_Control *the_watchdog, - Watchdog_Insert_modes insert_mode -) -{ - ISR_Level level; - Watchdog_Control *after; - - the_watchdog->state = WATCHDOG_REINSERT; - the_watchdog->delta_interval = the_watchdog->initial; - - _ISR_Disable( level ); - - for ( after = _Watchdog_First( header ) ; - ; - after = _Watchdog_Next( _Watchdog_Get_sync() ) ) { - - if ( the_watchdog->delta_interval == 0 || !_Watchdog_Next( after ) ) - break; - - if ( the_watchdog->delta_interval < after->delta_interval ) { - after->delta_interval -= the_watchdog->delta_interval; - break; - } - - the_watchdog->delta_interval -= after->delta_interval; - _Watchdog_Set_sync( after ); - - /* - * If you experience problems comment out the _ISR_Flash line. Under - * certain circumstances, this flash allows interrupts to execute - * which violate the design assumptions. The critical section - * mechanism used here must be redesigned to address this. - */ - - _ISR_Flash( level ); - } - - if ( insert_mode == WATCHDOG_ACTIVATE_NOW ) - _Watchdog_Activate( the_watchdog ); - - _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node ); - - _Watchdog_Clear_sync(); - - _ISR_Enable( level ); -} - -/*PAGE - * - * _Watchdog_Tickle - * - * This routine decrements the delta counter in response to a tick. The - * delta chain is updated accordingly. - * - * Input parameters: - * header - pointer to the delta chain to be tickled - * - * Output parameters: NONE - */ - -void _Watchdog_Tickle( - Chain_Control *header -) -{ - Watchdog_Control *the_watchdog; - - if ( _Chain_Is_empty( header ) ) - return; - - the_watchdog = _Watchdog_First( header ); - the_watchdog->delta_interval--; - if ( the_watchdog->delta_interval != 0 ) - return; - - do { - switch( _Watchdog_Remove( the_watchdog ) ) { - case WATCHDOG_ACTIVE: - (*the_watchdog->routine)( - the_watchdog->id, - the_watchdog->user_data - ); - break; - case WATCHDOG_REINSERT: - _Watchdog_Insert( header, the_watchdog, WATCHDOG_ACTIVATE_NOW ); - break; - case WATCHDOG_INACTIVE: - case WATCHDOG_REMOVE_IT: - break; - } - the_watchdog = _Watchdog_First( header ); - } while ( !_Chain_Is_empty( header ) && - (the_watchdog->delta_interval == 0) ); -} diff --git a/cpukit/score/src/wkspace.c b/cpukit/score/src/wkspace.c deleted file mode 100644 index 577b0f6c01..0000000000 --- a/cpukit/score/src/wkspace.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Workspace Handler - * - * NOTE: - * - * This file only exists to contain the one function which cannot - * be written as a macro when "static inlines" are not used. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -#ifndef USE_INLINES - -/*PAGE - * - * _Workspace_Allocate_or_fatal_error - * - */ - -void *_Workspace_Allocate_or_fatal_error( - unsigned32 size -) -{ - void *memory; - - memory = _Workspace_Allocate( size ); - - if ( memory == NULL ) - rtems_fatal_error_occurred( RTEMS_UNSATISFIED ); - - return memory; -} - -#endif /* USE_INLINES */ - diff --git a/testsuites/README b/testsuites/README deleted file mode 100644 index 0b0e339b97..0000000000 --- a/testsuites/README +++ /dev/null @@ -1,39 +0,0 @@ -# -# $Id$ -# - -This is the directory under which the RTEMS -test programs provided with the release are located. The -following is a description of the contents of each file and -subdirectory directly in this directory: - -NOTE: Other than the 'samples' directory these tests are intended - only to exercise RTEMS features and are *not* good examples - of programming for RTEMS. - - samples - - This directory contains a set of simple sample applications - which can be used either to test a board support package - or as the starting point for a custom application. - - mptest - - This directory contains the RTEMS Multiprocessor Test Suite. - The tests in this directory provide near complete (98%+) test - coverage of the multiprocessor specific code in RTEMS. - - sptest - - This directory contains the RTEMS Single Processor Test Suite. - The tests in this directory provide near complete (98%+) test - coverage of the non-multiprocessor code in RTEMS. - - tmtest - - This directory contains the RTEMS Timing Test Suite. - The tests in this directory are used to measure the execution - time of RTEMS directive and some critical internal functions. - The results of these test are reported in the Fact Sheets - and Supplental Manuals. - diff --git a/testsuites/libtests/README b/testsuites/libtests/README deleted file mode 100644 index bc4b217832..0000000000 --- a/testsuites/libtests/README +++ /dev/null @@ -1,10 +0,0 @@ -# -# $Id$ -# - -This directory contains tests for some of the items in -the lib directories. The intent is to be able to -verify the basic functionality of a library. For example, -it is important to know that the stack checker successfully -detects tasks which both stay within and exceed their -stack limits. diff --git a/testsuites/libtests/stackchk/blow.c b/testsuites/libtests/stackchk/blow.c deleted file mode 100644 index 9ad93d849c..0000000000 --- a/testsuites/libtests/stackchk/blow.c +++ /dev/null @@ -1,47 +0,0 @@ -/* task1.c - * - * This set of three tasks do some simple task switching for about - * 15 seconds and then call a routine to "blow the stack". - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -void b() {} - -void blow_stack( void ) -{ - volatile unsigned32 *low, *high; - -b(); - /* - * Destroy the first and last 16 bytes of our stack... Hope it - * does not cause problems :) - */ - - low = _Thread_Executing->Start.Initial_stack.area + HEAP_OVERHEAD; - high = _Thread_Executing->Start.Initial_stack.area + - _Thread_Executing->Start.Initial_stack.size - 16; - - low[0] = 0x11111111; - low[1] = 0x22222222; - low[2] = 0x33333333; - low[3] = 0x44444444; - - high[0] = 0x55555555; - high[1] = 0x66666666; - high[2] = 0x77777777; - high[3] = 0x88888888; - -} diff --git a/testsuites/libtests/stackchk/init.c b/testsuites/libtests/stackchk/init.c deleted file mode 100644 index dc0d94931e..0000000000 --- a/testsuites/libtests/stackchk/init.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "app.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_time_of_day time; - rtems_status_code status; - - puts( "\n\n*** TEST STACK CHECKER ***" ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - TASK_STACK_SIZE, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - TASK_STACK_SIZE, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 1, - TASK_STACK_SIZE, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/libtests/stackchk/stackchk.scn b/testsuites/libtests/stackchk/stackchk.scn deleted file mode 100644 index 84a5c5e342..0000000000 --- a/testsuites/libtests/stackchk/stackchk.scn +++ /dev/null @@ -1,9 +0,0 @@ -*** TEST STACK CHECKER *** -TA1 - rtems_clock_get - 09:00:00 12/31/1988 -TA2 - rtems_clock_get - 09:00:00 12/31/1988 -TA3 - rtems_clock_get - 09:00:00 12/31/1988 -TA1 - rtems_clock_get - 09:00:05 12/31/1988 -TA1 - rtems_clock_get - 09:00:10 12/31/1988 -TA2 - rtems_clock_get - 09:00:10 12/31/1988 -TA1 - rtems_clock_get - 09:00:15 12/31/1988 ----> error indictation diff --git a/testsuites/libtests/stackchk/task1.c b/testsuites/libtests/stackchk/task1.c deleted file mode 100644 index d683619c7e..0000000000 --- a/testsuites/libtests/stackchk/task1.c +++ /dev/null @@ -1,44 +0,0 @@ -/* task1.c - * - * This set of three tasks do some simple task switching for about - * 15 seconds and then call a routine to "blow the stack". - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "app.h" - -rtems_task Task_1_through_3( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - while( FOREVER ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second >= 15 && tid == Task_id[ 1 ] ) { - blow_stack(); - } - - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - status = rtems_task_wake_after( task_number( tid ) * 5 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } -} diff --git a/testsuites/mptests/README b/testsuites/mptests/README deleted file mode 100644 index 68cb459b55..0000000000 --- a/testsuites/mptests/README +++ /dev/null @@ -1,10 +0,0 @@ -# -# $Id$ -# - -This directory contains the RTEMS Multiprocessor Test Suite. -The tests in this directory provide near complete (98%+) test -coverage of the multiprocessor specific code in RTEMS. - -These tests are designed to test RTEMS in a two node configuration. - diff --git a/testsuites/mptests/mp01/init.c b/testsuites/mptests/mp01/init.c deleted file mode 100644 index 2af49c8a6b..0000000000 --- a/testsuites/mptests/mp01/init.c +++ /dev/null @@ -1,99 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_time_of_day time; - char c; - - printf( - "\n\n*** TEST 1 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - if ( Multiprocessing_configuration.node != 1 ) c = 'S'; - else c = 'M'; - - Task_name[ 1 ] = rtems_build_name( c, 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( c, 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( c, 'A', '3', ' ' ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - puts( "Creating task 1 (Global)" ); - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of Task 1" ); - - puts( "Creating task 2 (Global)" ); - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of Task 2" ); - - puts( "Creating task 3 (Local)" ); - status = rtems_task_create( - Task_name[ 3 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of Task 3" ); - - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start of Task 1" ); - - status = rtems_task_start( Task_id[ 2 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start of Task 2" ); - - status = rtems_task_start( Task_id[ 3 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start of Task 3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/mptests/mp01/node1/mp01.doc b/testsuites/mptests/mp01/node1/mp01.doc deleted file mode 100644 index 83e06e2357..0000000000 --- a/testsuites/mptests/mp01/node1/mp01.doc +++ /dev/null @@ -1,53 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test50 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_set, tm_get, tm_wkafter, t_delete - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of a global task on the local processor. - - i. Verifies that a task can delete itself or a global task on - the local processor. - - j. Verifies Shared Memory Locked Queue driver for initialization, - getting a packet, broadcasting a packet, and returning a packet. - - k. Can be used to verify that global packet type P_SYSVERIFY, - P_OBJCREATE (task), and P_OBJDELETE (task) are sent and - correctly processed by a remote node. diff --git a/testsuites/mptests/mp01/node1/mp01.scn b/testsuites/mptests/mp01/node1/mp01.scn deleted file mode 100644 index d399f79b2a..0000000000 --- a/testsuites/mptests/mp01/node1/mp01.scn +++ /dev/null @@ -1,15 +0,0 @@ -*** TEST 1 -- NODE 1 *** -Creating task 1 (Global) -Creating task 2 (Global) -Creating task 3 (Local) -MA1 - rtems_clock_get - 09:00:00 12/31/1988 -MA2 - rtems_clock_get - 09:00:00 12/31/1988 -MA3 - rtems_clock_get - 09:00:00 12/31/1988 -MA1 - rtems_clock_get - 09:00:05 12/31/1988 -MA1 - deleting self -MA2 - rtems_clock_get - 09:00:10 12/31/1988 -MA2 - waiting to be deleted by MA3 -MA3 - rtems_clock_get - 09:00:15 12/31/1988 -MA3 - getting TID of MA2 -MA3 - deleting MA2 -*** END OF TEST 1 *** diff --git a/testsuites/mptests/mp01/node2/mp01.doc b/testsuites/mptests/mp01/node2/mp01.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp01/node2/mp01.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp01/node2/mp01.scn b/testsuites/mptests/mp01/node2/mp01.scn deleted file mode 100644 index c9831ff9db..0000000000 --- a/testsuites/mptests/mp01/node2/mp01.scn +++ /dev/null @@ -1,15 +0,0 @@ -*** TEST 1 -- NODE 2 *** -Creating task 1 (Global) -Creating task 2 (Global) -Creating task 3 (Local) -SA1 - rtems_clock_get - 09:00:00 12/31/1988 -SA2 - rtems_clock_get - 09:00:00 12/31/1988 -SA3 - rtems_clock_get - 09:00:00 12/31/1988 -SA1 - rtems_clock_get - 09:00:05 12/31/1988 -SA1 - deleting self -SA2 - rtems_clock_get - 09:00:10 12/31/1988 -SA2 - waiting to be deleted by SA3 -SA3 - rtems_clock_get - 09:00:15 12/31/1988 -SA3 - getting TID of SA2 -SA3 - deleting SA2 -*** END OF TEST 1 *** diff --git a/testsuites/mptests/mp01/system.h b/testsuites/mptests/mp01/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/mptests/mp01/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp01/task1.c b/testsuites/mptests/mp01/task1.c deleted file mode 100644 index a2c3ec3a1d..0000000000 --- a/testsuites/mptests/mp01/task1.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Test_task - * - * This task is used for three test tasks. It obtains its task id and - * based upon that id, performs certain actions. - * - * Task_1 delays 5 seconds and deletes itself. - * Task_2 delays 10 seconds and then loops until - * deleted by the third task. - * Task 3 delays 15 seconds, then deletes task 2 and itself. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id tid; - rtems_time_of_day time; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - status = rtems_task_wake_after( task_number( tid ) * 5 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - if ( task_number(tid) == 1 ) { /* TASK 1 */ - put_name( Task_name[ 1 ], FALSE ); - printf( " - deleting self\n" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); - } - else if ( task_number(tid) == 2 ) { /* TASK 2 */ - put_name( Task_name[ 2 ], FALSE ); - printf( " - waiting to be deleted by " ); - put_name( Task_name[ 3 ], TRUE ); - while ( FOREVER ); - } - else { /* TASK 3 */ - put_name( Task_name[ 3 ], FALSE ); - printf( " - getting TID of " ); - put_name( Task_name[ 2 ], TRUE ); - do { - status = rtems_task_ident( Task_name[ 2 ], RTEMS_SEARCH_ALL_NODES, &tid ); - } while ( status != RTEMS_SUCCESSFUL ); - directive_failed( status, "rtems_task_ident" ); - - put_name( Task_name[ 3 ], FALSE ); - printf( " - deleting " ); - put_name( Task_name[ 2 ], TRUE ); - status = rtems_task_delete( tid ); - directive_failed( status, "rtems_task_delete of Task 2" ); - - puts( "*** END OF TEST 1 ***" ); - exit(0); - } -} diff --git a/testsuites/mptests/mp02/init.c b/testsuites/mptests/mp02/init.c deleted file mode 100644 index 75d8565785..0000000000 --- a/testsuites/mptests/mp02/init.c +++ /dev/null @@ -1,63 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 2 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[Multiprocessing_configuration.node], - 1, - 2048, - RTEMS_NO_PREEMPT, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/mptests/mp02/node1/mp02.doc b/testsuites/mptests/mp02/node1/mp02.doc deleted file mode 100644 index e74807f7f1..0000000000 --- a/testsuites/mptests/mp02/node1/mp02.doc +++ /dev/null @@ -1,47 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test51 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_set, tm_get, tm_wkafter, t_delete, t_restart, t_getreg, t_setreg - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - c. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - d. Verifies executive initialization performed correctly. - - e. Verifies that a task can get the task identification number of itself. - - f. Verifies that a task can get the task identification number - of another task. - - g. Verifies that a task can delete itself or another task. - - h. Verifies that errors are returned in the following situations: - 1) when attempting to delete a remote task. - 2) when attempting to start a remote task. - 3) when attempting to restart a remote task. - - i. Verifies that a remote task's registers can be set and read. diff --git a/testsuites/mptests/mp02/node1/mp02.scn b/testsuites/mptests/mp02/node1/mp02.scn deleted file mode 100644 index 72fdefe69d..0000000000 --- a/testsuites/mptests/mp02/node1/mp02.scn +++ /dev/null @@ -1,14 +0,0 @@ -*** TEST 2 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 222 -Getting TID of remote task (all nodes) -Getting TID of remote task (1 node) -rtems_task_delete of remote task returned the correct error -rtems_task_start of remote task returned the correct error -rtems_task_restart of remote task returned the correct error -Setting notepad 1 of the remote task to 1 -Getting a notepad of the remote task -Remote notepad set and read correctly -*** END OF TEST 2 *** diff --git a/testsuites/mptests/mp02/node2/mp02.doc b/testsuites/mptests/mp02/node2/mp02.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp02/node2/mp02.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp02/node2/mp02.scn b/testsuites/mptests/mp02/node2/mp02.scn deleted file mode 100644 index 233a910999..0000000000 --- a/testsuites/mptests/mp02/node2/mp02.scn +++ /dev/null @@ -1,14 +0,0 @@ -*** TEST 2 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 111 -Getting TID of remote task (all nodes) -Getting TID of remote task (1 node) -rtems_task_delete of remote task returned the correct error -rtems_task_start of remote task returned the correct error -rtems_task_restart of remote task returned the correct error -Setting notepad 2 of the remote task to 2 -Getting a notepad of the remote task -Remote notepad set and read correctly -*** END OF TEST 2 *** diff --git a/testsuites/mptests/mp02/system.h b/testsuites/mptests/mp02/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/mptests/mp02/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp02/task1.c b/testsuites/mptests/mp02/task1.c deleted file mode 100644 index 44764486b0..0000000000 --- a/testsuites/mptests/mp02/task1.c +++ /dev/null @@ -1,118 +0,0 @@ -/* Test_task - * - * This task tests the rtems_task_set_note directive on a remote task and that - * errors are returned when attempting to delete, start, or restart - * a remote task. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_multiprocessing_table Multiprocessing_configuration; - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_status_code status; - rtems_unsigned32 remote_node; - rtems_id remote_tid; - rtems_id test_tid; - rtems_unsigned32 note; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - - remote_node = (Multiprocessing_configuration.node == 1) ? 2 : 1; - printf( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - puts( "Getting TID of remote task (all nodes)" ); - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( status != RTEMS_SUCCESSFUL ); - - directive_failed( status, "rtems_task_ident" ); - - puts( "Getting TID of remote task (1 node)" ); - status = rtems_task_ident( Task_name[ remote_node ], remote_node, &test_tid ); - directive_failed( status, "rtems_task_ident" ); - - if ( test_tid != remote_tid ) { - puts( "rtems_task_ident tid's do not match!!" ); - rtems_fatal_error_occurred( status ); - } - - status = rtems_task_delete( remote_tid ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_task_delete of remote task" - ); - puts( "rtems_task_delete of remote task returned the correct error" ); - - status = rtems_task_start( remote_tid, Test_task, 0 ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_task_start of remote task" - ); - puts( "rtems_task_start of remote task returned the correct error" ); - - status = rtems_task_restart( remote_tid, 0 ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_task_restart of remote task" - ); - puts( "rtems_task_restart of remote task returned the correct error" ); - - printf( - "Setting notepad %d of the remote task to %d\n", - rtems_get_node(tid), - rtems_get_node(tid) - ); - status = rtems_task_set_note( - remote_tid, - rtems_get_node(tid), - rtems_get_node(tid) - ); - directive_failed( status, "rtems_task_set_note" ); - - puts( "Getting a notepad of the remote task" ); - status = rtems_task_get_note( remote_tid, rtems_get_node(tid), ¬e ); - directive_failed( status, "rtems_task_get_note" ); - - if ( note == rtems_get_node(tid) ) - puts( "Remote notepad set and read correctly" ); - else - printf( - "FAILURE!! Remote notepad was not set and read correctly (%d, %d)\n", - note, - rtems_get_node( tid ) - ); - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "*** END OF TEST 2 ***" ); - exit( 0 ); -} diff --git a/testsuites/mptests/mp03/delay.c b/testsuites/mptests/mp03/delay.c deleted file mode 100644 index 6a6bb5f25e..0000000000 --- a/testsuites/mptests/mp03/delay.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Delayed_send_event - * - * This routine is a timer service routine which sends an event to task 1. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Delayed_send_event( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_16 ); - directive_failed( status, "rtems_event_send" ); -} diff --git a/testsuites/mptests/mp03/init.c b/testsuites/mptests/mp03/init.c deleted file mode 100644 index a1f210dad1..0000000000 --- a/testsuites/mptests/mp03/init.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 3 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[ Multiprocessing_configuration.node ], - 1, - 2048, - RTEMS_NO_PREEMPT, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/mptests/mp03/node1/mp03.doc b/testsuites/mptests/mp03/node1/mp03.doc deleted file mode 100644 index 348afef85f..0000000000 --- a/testsuites/mptests/mp03/node1/mp03.doc +++ /dev/null @@ -1,45 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test52 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_wkafter, t_suspend, t_resume - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of another task (on another node). - - i. Verifies that a task can suspend and resume a remote task. diff --git a/testsuites/mptests/mp03/node1/mp03.scn b/testsuites/mptests/mp03/node1/mp03.scn deleted file mode 100644 index 129e5bccba..0000000000 --- a/testsuites/mptests/mp03/node1/mp03.scn +++ /dev/null @@ -1,24 +0,0 @@ -*** TEST 3 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting TID of remote task -Remote task's name is : 222 -111 - Suspending remote task -111 - Resuming remote task -111 - Suspending remote task -111 - Resuming remote task -111 - Suspending remote task -111 - Resuming remote task -111 - Have I been suspended????? -111 - Have I been suspended????? -111 - Have I been suspended????? -111 - Have I been suspended????? - - ........ - -111 - Have I been suspended????? -111 - Have I been suspended????? -111 - Have I been suspended????? -111 - Have I been suspended????? -*** END OF TEST 3 *** diff --git a/testsuites/mptests/mp03/node2/mp03.doc b/testsuites/mptests/mp03/node2/mp03.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp03/node2/mp03.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp03/node2/mp03.scn b/testsuites/mptests/mp03/node2/mp03.scn deleted file mode 100644 index d77c09e9f7..0000000000 --- a/testsuites/mptests/mp03/node2/mp03.scn +++ /dev/null @@ -1,24 +0,0 @@ -*** TEST 3 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting TID of remote task -Remote task's name is : 111 -222 - Have I been suspended????? -222 - Have I been suspended????? -222 - Have I been suspended????? -222 - Have I been suspended????? - - ........ - -222 - Have I been suspended????? -222 - Have I been suspended????? -222 - Have I been suspended????? -222 - Have I been suspended????? -222 - Suspending remote task -222 - Resuming remote task -222 - Suspending remote task -222 - Resuming remote task -222 - Suspending remote task -222 - Resuming remote task -*** END OF TEST 3 *** diff --git a/testsuites/mptests/mp03/system.h b/testsuites/mptests/mp03/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/mptests/mp03/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp03/task1.c b/testsuites/mptests/mp03/task1.c deleted file mode 100644 index c1f0f777fd..0000000000 --- a/testsuites/mptests/mp03/task1.c +++ /dev/null @@ -1,155 +0,0 @@ -/* Test_task - * - * This task suspends and resumes a remote task. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -/*PAGE - * - * Test_Task_Support - * - */ - -void Test_Task_Support( - rtems_unsigned32 node -) -{ - rtems_event_set events; - rtems_status_code status; - - if ( Multiprocessing_configuration.node == node ) { - - for ( ; ; ) { - - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &events - ); - - if ( status == RTEMS_SUCCESSFUL ) - break; - - fatal_directive_status(status, RTEMS_UNSATISFIED, "rtems_event_receive"); - - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - put_name( Task_name[ node ], FALSE ); - puts( " - Suspending remote task" ); - - status = rtems_task_suspend( remote_tid ); - directive_failed( status, "rtems_task_suspend" ); - - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - put_name( Task_name[ node ], FALSE ); - puts( " - Resuming remote task" ); - - status = rtems_task_resume( remote_tid ) ; - directive_failed( status, "rtems_task_resume" ); - - } - - } else { - - for ( ; ; ) { - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &events - ); - - if ( status == RTEMS_SUCCESSFUL ) - break; - - fatal_directive_status(status, RTEMS_UNSATISFIED, "rtems_event_receive"); - - put_name( Task_name[ remote_node ], FALSE ); - puts( " - have I been suspended???" ); - - status = rtems_task_wake_after( TICKS_PER_SECOND / 2 ); - directive_failed( status, "rtems_task_wake_after" ); - } - - } - -} - -/*PAGE - * - * Test_task - */ - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - puts( "Getting TID of remote task" ); - remote_node = (Multiprocessing_configuration.node == 1) ? 2 : 1; - printf( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( status != RTEMS_SUCCESSFUL ); - - directive_failed( status, "rtems_task_ident" ); - - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - Delayed_send_event, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - Test_Task_Support( 1 ); - - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - Delayed_send_event, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } - - Test_Task_Support( 2 ); - - puts( "*** END OF TEST 3 ***" ); - exit( 0 ); -} diff --git a/testsuites/mptests/mp04/init.c b/testsuites/mptests/mp04/init.c deleted file mode 100644 index 106176c6ca..0000000000 --- a/testsuites/mptests/mp04/init.c +++ /dev/null @@ -1,63 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 4 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[ Multiprocessing_configuration.node ], - Multiprocessing_configuration.node, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/mptests/mp04/node1/mp04.doc b/testsuites/mptests/mp04/node1/mp04.doc deleted file mode 100644 index 39a76d48a0..0000000000 --- a/testsuites/mptests/mp04/node1/mp04.doc +++ /dev/null @@ -1,41 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test53 - -directives: - ex_init, ex_start, t_create, t_start, i_return, t_ident, tm_get, - tm_wkafter, tm_setpri - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies that the system can get the id of a remote task. - - c. Verifies that the system can change the priority of a remote - task. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can delete itself or another task. diff --git a/testsuites/mptests/mp04/node1/mp04.scn b/testsuites/mptests/mp04/node1/mp04.scn deleted file mode 100644 index e9518f3ac2..0000000000 --- a/testsuites/mptests/mp04/node1/mp04.scn +++ /dev/null @@ -1,8 +0,0 @@ -*** TEST 4 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting TID of remote task -Remote task's name is : 222 -Local task priority has been set -*** END OF TEST 4 *** diff --git a/testsuites/mptests/mp04/node2/mp04.doc b/testsuites/mptests/mp04/node2/mp04.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp04/node2/mp04.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp04/node2/mp04.scn b/testsuites/mptests/mp04/node2/mp04.scn deleted file mode 100644 index 8ccfcfef79..0000000000 --- a/testsuites/mptests/mp04/node2/mp04.scn +++ /dev/null @@ -1,8 +0,0 @@ -*** TEST 4 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting TID of remote task -Remote task's name is : 111 -Local task priority has been set -*** END OF TEST 4 *** diff --git a/testsuites/mptests/mp04/system.h b/testsuites/mptests/mp04/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/mptests/mp04/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp04/task1.c b/testsuites/mptests/mp04/task1.c deleted file mode 100644 index 7e7e0ca849..0000000000 --- a/testsuites/mptests/mp04/task1.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Test_task - * - * This task tests the rtems_task_set_priority directive on a remote task. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_multiprocessing_table Multiprocessing_configuration; - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_status_code status; - rtems_unsigned32 remote_node; - rtems_id remote_tid; - rtems_task_priority previous_priority; - rtems_task_priority previous_priority_1; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - puts( "Getting TID of remote task" ); - remote_node = (Multiprocessing_configuration.node == 1) ? 2 : 1; - puts_nocr( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( status != RTEMS_SUCCESSFUL ); - - directive_failed( status, "rtems_task_ident" ); - - status = rtems_task_set_priority( - remote_tid, - Multiprocessing_configuration.node, - &previous_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - - if ( previous_priority != remote_node ) { - printf( - "Remote priority (0x%x) does not match remote node (0x%x)!!!\n", - previous_priority, - remote_node - ); - exit( 0xf0000 ); - } - - do { - status = rtems_task_set_priority( - RTEMS_SELF, - RTEMS_CURRENT_PRIORITY, - &previous_priority_1 - ); - directive_failed( status, "rtems_task_set_priority" ); - } while ( previous_priority_1 != remote_node ); - - puts( "Local task priority has been set" ); - - puts( "*** END OF TEST 4 ***" ); - exit( 0 ); -} diff --git a/testsuites/mptests/mp05/asr.c b/testsuites/mptests/mp05/asr.c deleted file mode 100644 index 9f98e42692..0000000000 --- a/testsuites/mptests/mp05/asr.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Process_asr - * - * This routine performs the processing for task 1's RTEMS_ASR. It is called - * by an assembly routine which saves the necessary registers. - * - * Input parameters: - * signal - signal set - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_asr Process_asr( - rtems_signal_set signal -) -{ - if ( signal != expected_signal ) { - printf( - "ERROR: I was expecting signal 0x%.8x got 0x%.8x\n", - expected_signal, - signal - ); - rtems_fatal_error_occurred( 0xf0000 ); - } - signal_caught = 1; -} diff --git a/testsuites/mptests/mp05/init.c b/testsuites/mptests/mp05/init.c deleted file mode 100644 index 5db791d8f2..0000000000 --- a/testsuites/mptests/mp05/init.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 5 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[Multiprocessing_configuration.node], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/mptests/mp05/node1/mp05.doc b/testsuites/mptests/mp05/node1/mp05.doc deleted file mode 100644 index 6b9ccd556d..0000000000 --- a/testsuites/mptests/mp05/node1/mp05.doc +++ /dev/null @@ -1,45 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test54 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_wkafter, as_catch, as_return - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of another task. - - i. Verifies that a signal can be sent to a remote task. diff --git a/testsuites/mptests/mp05/node1/mp05.scn b/testsuites/mptests/mp05/node1/mp05.scn deleted file mode 100644 index 472740ba18..0000000000 --- a/testsuites/mptests/mp05/node1/mp05.scn +++ /dev/null @@ -1,11 +0,0 @@ -*** TEST 5 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -rtems_signal_catch: initializing signal catcher -Remote task's name is : 222 -Getting TID of remote task -Sending signal to remote task -.................................................... -.................................................... -*** END OF TEST 5 *** diff --git a/testsuites/mptests/mp05/node2/mp05.doc b/testsuites/mptests/mp05/node2/mp05.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp05/node2/mp05.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp05/node2/mp05.scn b/testsuites/mptests/mp05/node2/mp05.scn deleted file mode 100644 index 0c4b412f65..0000000000 --- a/testsuites/mptests/mp05/node2/mp05.scn +++ /dev/null @@ -1,10 +0,0 @@ -*** TEST 5 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -rtems_signal_catch: initializing signal catcher -Remote task's name is : 111 -Getting TID of remote task -.................................................... -.................................................... -*** END OF TEST 5 *** diff --git a/testsuites/mptests/mp05/system.h b/testsuites/mptests/mp05/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/mptests/mp05/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp05/task1.c b/testsuites/mptests/mp05/task1.c deleted file mode 100644 index 6934663850..0000000000 --- a/testsuites/mptests/mp05/task1.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Test_task - * - * This task initializes the signal catcher, sends the first signal - * if running on the first node, and loops while waiting for signals. - * - * NOTE: The signal catcher is not reentrant and hence RTEMS_NO_ASR must - * be a part of its execution mode. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#define SIGNALS_PER_DOT 15 - -rtems_timer_service_routine Stop_Test_TSR( - rtems_id ignored_id, - void *ignored_address -) -{ - Stop_Test = TRUE; -} - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - - Stop_Test = FALSE; - - signal_caught = 0; - signal_count = 0; - - puts( "rtems_signal_catch: initializing signal catcher" ); - status = rtems_signal_catch( Process_asr, RTEMS_NO_ASR|RTEMS_NO_PREEMPT ); - directive_failed( status, "rtems_signal_catch" ); - - if (Multiprocessing_configuration.node == 1) { - remote_node = 2; - remote_signal = RTEMS_SIGNAL_18; - expected_signal = RTEMS_SIGNAL_17; - } - else { - remote_node = 1; - remote_signal = RTEMS_SIGNAL_17; - expected_signal = RTEMS_SIGNAL_18; - } - puts_nocr( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - puts( "Getting TID of remote task" ); - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( status != RTEMS_SUCCESSFUL ); - directive_failed( status, "rtems_task_ident" ); - - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 3 * TICKS_PER_SECOND, - Stop_Test_TSR, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Sending signal to remote task" ); - do { - status = rtems_signal_send( remote_tid, remote_signal ); - if ( status == RTEMS_NOT_DEFINED ) - continue; - } while ( status != RTEMS_SUCCESSFUL ); - directive_failed( status, "rtems_signal_send" ); - } - - while ( Stop_Test == FALSE ) { - if ( signal_caught ) { - signal_caught = 0; - if ( ++signal_count >= SIGNALS_PER_DOT ) { - signal_count = 0; - put_dot( '.' ); - } - status = rtems_signal_send( remote_tid, remote_signal ); - directive_failed( status, "rtems_signal_send" ); - } - } - puts( "\n*** END OF TEST 5 ***" ); - exit( 0 ); -} diff --git a/testsuites/mptests/mp06/init.c b/testsuites/mptests/mp06/init.c deleted file mode 100644 index ab41308954..0000000000 --- a/testsuites/mptests/mp06/init.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 6 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[Multiprocessing_configuration.node], - 1, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/mptests/mp06/node1/mp06.doc b/testsuites/mptests/mp06/node1/mp06.doc deleted file mode 100644 index 879c15d705..0000000000 --- a/testsuites/mptests/mp06/node1/mp06.doc +++ /dev/null @@ -1,45 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test55 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - ev_send, ev_receive - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of another task. - - i. Verifies that events can be sent to a remote task. diff --git a/testsuites/mptests/mp06/node1/mp06.scn b/testsuites/mptests/mp06/node1/mp06.scn deleted file mode 100644 index 592777e5d7..0000000000 --- a/testsuites/mptests/mp06/node1/mp06.scn +++ /dev/null @@ -1,11 +0,0 @@ -*** TEST 6 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 222 -Getting TID of remote task -Sending events to remote task -.................................................... -.................................................... -*** END OF TEST 6 *** - diff --git a/testsuites/mptests/mp06/node2/mp06.doc b/testsuites/mptests/mp06/node2/mp06.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp06/node2/mp06.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp06/node2/mp06.scn b/testsuites/mptests/mp06/node2/mp06.scn deleted file mode 100644 index 9cb653c2f3..0000000000 --- a/testsuites/mptests/mp06/node2/mp06.scn +++ /dev/null @@ -1,12 +0,0 @@ -*** TEST 6 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 111 -Getting TID of remote task -Receiving events from remote task -.................................................... -.................................................... -rtems_event_receive - correctly returned RTEMS_TIMEOUT -*** END OF TEST 6 *** - diff --git a/testsuites/mptests/mp06/system.h b/testsuites/mptests/mp06/system.h deleted file mode 100644 index 60f2b1a0a2..0000000000 --- a/testsuites/mptests/mp06/system.h +++ /dev/null @@ -1,31 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp06/task1.c b/testsuites/mptests/mp06/task1.c deleted file mode 100644 index 5b63a9ff76..0000000000 --- a/testsuites/mptests/mp06/task1.c +++ /dev/null @@ -1,176 +0,0 @@ -/* Test_task - * - * This task tests global event operations. If running on node one, it - * continuously sends events. If running on node two, it continuously - * receives events. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#define DOT_COUNT 25 - -/*PAGE - * - * Stop_Test_TSR - */ - -rtems_timer_service_routine Stop_Test_TSR( - rtems_id ignored_id, - void *ignored_address -) -{ - Stop_Test = TRUE; -} - -/*PAGE - * - * Event_set_table - */ - -rtems_event_set Event_set_table[] = { - RTEMS_EVENT_0, - RTEMS_EVENT_1, - RTEMS_EVENT_2, - RTEMS_EVENT_3, - RTEMS_EVENT_4, - RTEMS_EVENT_5, - RTEMS_EVENT_6, - RTEMS_EVENT_7, - RTEMS_EVENT_8, - RTEMS_EVENT_9, - RTEMS_EVENT_10, - RTEMS_EVENT_11, - RTEMS_EVENT_12, - RTEMS_EVENT_13, - RTEMS_EVENT_14, - RTEMS_EVENT_15, - RTEMS_EVENT_16, - RTEMS_EVENT_17, - RTEMS_EVENT_18, - RTEMS_EVENT_19, - RTEMS_EVENT_20, - RTEMS_EVENT_21, - RTEMS_EVENT_22, - RTEMS_EVENT_23, - RTEMS_EVENT_24, - RTEMS_EVENT_25, - RTEMS_EVENT_26, - RTEMS_EVENT_27, - RTEMS_EVENT_28, - RTEMS_EVENT_29, - RTEMS_EVENT_30, - RTEMS_EVENT_31 -}; - -/*PAGE - * - * Test_task - */ - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 count; - rtems_unsigned32 remote_node; - rtems_id remote_tid; - rtems_event_set event_out; - rtems_event_set event_for_this_iteration; - - Stop_Test = FALSE; - - remote_node = (Multiprocessing_configuration.node == 1) ? 2 : 1; - puts_nocr( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - puts( "Getting TID of remote task" ); - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( status != RTEMS_SUCCESSFUL ); - directive_failed( status, "rtems_task_ident FAILED!!" ); - - if ( Multiprocessing_configuration.node == 1 ) - puts( "Sending events to remote task" ); - else - puts( "Receiving events from remote task" ); - - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - Stop_Test_TSR, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - count = 0; - - for ( ; ; ) { - if ( Stop_Test == TRUE ) - break; - - event_for_this_iteration = Event_set_table[ count % 32 ]; - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_event_send( remote_tid, event_for_this_iteration ); - directive_failed( status, "rtems_event_send" ); - - status = rtems_task_wake_after( 1 ); - directive_failed( status, "rtems_task_wake_after" ); - } else { - status = rtems_event_receive( - event_for_this_iteration, - RTEMS_DEFAULT_OPTIONS, - 1 * TICKS_PER_SECOND, - &event_out - ); - if ( rtems_are_statuses_equal( status, RTEMS_TIMEOUT ) ) { - if ( Multiprocessing_configuration.node == 2 ) - puts( "\nCorrect behavior if the other node exitted." ); - else - puts( "\nERROR... node 1 died" ); - break; - } else - directive_failed( status, "rtems_event_receive" ); - } - - if ( (count % DOT_COUNT) == 0 ) - put_dot('.'); - - count++; - } - - putchar( '\n' ); - - if ( Multiprocessing_configuration.node == 2 ) { - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - 1 * TICKS_PER_SECOND, - &event_out - ); - fatal_directive_status( status, RTEMS_TIMEOUT, "rtems_event_receive" ); - puts( "rtems_event_receive - correctly returned RTEMS_TIMEOUT" ); - } - puts( "*** END OF TEST 6 ***" ); - exit( 0 ); -} diff --git a/testsuites/mptests/mp07/init.c b/testsuites/mptests/mp07/init.c deleted file mode 100644 index 665c3f0b72..0000000000 --- a/testsuites/mptests/mp07/init.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 7 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[Multiprocessing_configuration.node], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/mptests/mp07/node1/mp07.doc b/testsuites/mptests/mp07/node1/mp07.doc deleted file mode 100644 index ca09867ab6..0000000000 --- a/testsuites/mptests/mp07/node1/mp07.doc +++ /dev/null @@ -1,46 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test56 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - ev_send, ev_receive - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of another task. - - i. Verifies that two tasks on different processors can alternate - sending each other events. diff --git a/testsuites/mptests/mp07/node1/mp07.scn b/testsuites/mptests/mp07/node1/mp07.scn deleted file mode 100644 index d348f48612..0000000000 --- a/testsuites/mptests/mp07/node1/mp07.scn +++ /dev/null @@ -1,10 +0,0 @@ -*** TEST 7 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 222 -Getting TID of remote task -Sending first event to remote task -.................................................... -.................................................... -*** END OF TEST 7 *** diff --git a/testsuites/mptests/mp07/node2/mp07.doc b/testsuites/mptests/mp07/node2/mp07.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp07/node2/mp07.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp07/node2/mp07.scn b/testsuites/mptests/mp07/node2/mp07.scn deleted file mode 100644 index 9e361d713c..0000000000 --- a/testsuites/mptests/mp07/node2/mp07.scn +++ /dev/null @@ -1,9 +0,0 @@ -*** TEST 7 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Remote task's name is : 111 -Getting TID of remote task -.................................................... -.................................................... -*** END OF TEST 7 *** diff --git a/testsuites/mptests/mp07/system.h b/testsuites/mptests/mp07/system.h deleted file mode 100644 index 34ec37a967..0000000000 --- a/testsuites/mptests/mp07/system.h +++ /dev/null @@ -1,28 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp07/task1.c b/testsuites/mptests/mp07/task1.c deleted file mode 100644 index 70fc8c73c5..0000000000 --- a/testsuites/mptests/mp07/task1.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Test_task - * - * This task continuously sends an event to its counterpart on the - * other node, and then waits for it to send an event. The copy - * running on node one send the first event. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#define DOT_COUNT 100 - -rtems_timer_service_routine Stop_Test_TSR( - rtems_id ignored_id, - void *ignored_address -) -{ - Stop_Test = TRUE; -} - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 count; - rtems_unsigned32 remote_node; - rtems_id remote_tid; - rtems_event_set event_out; - - Stop_Test = FALSE; - - remote_node = (Multiprocessing_configuration.node == 1) ? 2 : 1; - puts_nocr( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - puts( "Getting TID of remote task" ); - do { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - } while ( !rtems_is_status_successful( status ) ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Sending first event to remote task" ); - status = rtems_event_send( remote_tid, RTEMS_EVENT_16 ); - directive_failed( status, "rtems_event_send" ); - } - - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - Stop_Test_TSR, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - while ( Stop_Test == FALSE ) { - for ( count=DOT_COUNT ; count ; count-- ) { - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - if ( status == RTEMS_TIMEOUT ) { - puts( "\nTA1 - RTEMS_TIMEOUT .. probably OK if the other node exits" ); - break; - } else - directive_failed( status, "rtems_event_receive" ); - - status = rtems_event_send( remote_tid, RTEMS_EVENT_16 ); - directive_failed( status, "rtems_event_send" ); - } - put_dot('.'); - } - puts( "\n*** END OF TEST 7 ***" ); - exit( 0 ); -} diff --git a/testsuites/mptests/mp08/init.c b/testsuites/mptests/mp08/init.c deleted file mode 100644 index 2a669d2b9a..0000000000 --- a/testsuites/mptests/mp08/init.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 8 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'E', 'M', '\0' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Creating Sempahore (Global)" ); - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_GLOBAL, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - } - - puts( "Creating Test_task (Global)" ); - status = rtems_task_create( - Task_name[ Multiprocessing_configuration.node ], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (Global)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/mptests/mp08/node1/mp08.doc b/testsuites/mptests/mp08/node1/mp08.doc deleted file mode 100644 index 3ec09a3335..0000000000 --- a/testsuites/mptests/mp08/node1/mp08.doc +++ /dev/null @@ -1,52 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test57 - -GLOBAL SEMAPHORE TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - sm_create, sm_ident, sm_p, sm_v, sm_delete - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the identification number of - a global sempahore. - - h. Verifies that two tasks on different processors can - alternate accessing a semaphore. - - i. Verifies operation of sm_delete on global semaphores - for both normal and error case. - - j. Verifies Rpc and Process_pkt for packet types Q_SMP, Q_SMV, - P_OBJCREATE (semaphore), P_OBJDELETE (semaphore), P_SMDEL_TQ. - diff --git a/testsuites/mptests/mp08/node1/mp08.scn b/testsuites/mptests/mp08/node1/mp08.scn deleted file mode 100644 index cde263420c..0000000000 --- a/testsuites/mptests/mp08/node1/mp08.scn +++ /dev/null @@ -1,11 +0,0 @@ -*** TEST 8 -- NODE 1 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting SMID of semaphore -pvpvpvpvpvp....... -(continued) pvp - -Deleting global semaphore -*** END OF TEST 8 *** - diff --git a/testsuites/mptests/mp08/node2/mp08.doc b/testsuites/mptests/mp08/node2/mp08.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp08/node2/mp08.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp08/node2/mp08.scn b/testsuites/mptests/mp08/node2/mp08.scn deleted file mode 100644 index 5a613f45e5..0000000000 --- a/testsuites/mptests/mp08/node2/mp08.scn +++ /dev/null @@ -1,12 +0,0 @@ -*** TEST 8 -- NODE 2 *** -Creating Test_task (Global) -Starting Test_task (Global) -Deleting initialization task -Getting SMID of semaphore -rtems_semaphore_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT -pvpvpvpvpvp....... -(continued) pvp - -Global semaphore deleted -*** END OF TEST 8 *** - diff --git a/testsuites/mptests/mp08/system.h b/testsuites/mptests/mp08/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/mptests/mp08/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp08/task1.c b/testsuites/mptests/mp08/task1.c deleted file mode 100644 index dbd1526795..0000000000 --- a/testsuites/mptests/mp08/task1.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Test_task - * - * This task tests global semaphore operations. It verifies that - * global semaphore errors are correctly returned. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - rtems_status_code status; - - puts( "Getting SMID of semaphore" ); - - do { - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Semaphore_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - if ( Multiprocessing_configuration.node == 2 ) { - status = rtems_semaphore_delete( Semaphore_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_semaphore_delete did not return RTEMS_ILLEGAL_ON_REMOTE_OBJECT" - ); - puts( - "rtems_semaphore_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT" - ); - } - - count = 0; /* number of times node 1 releases semaphore */ - while ( FOREVER ) { - put_dot( 'p' ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - if ( status != RTEMS_SUCCESSFUL ) { - fatal_directive_status( - status, - RTEMS_OBJECT_WAS_DELETED, - "rtems_semaphore_obtain" - ); - puts( "\nGlobal semaphore deleted" ); - puts( "*** END OF TEST 8 ***" ); - exit( 0 ); - } - - if ( Multiprocessing_configuration.node == 1 && ++count == 1000 ) { - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "\nDeleting global semaphore" ); - status = rtems_semaphore_delete( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_delete" ); - - puts( "*** END OF TEST 8 ***" ); - exit( 0 ); - } - else { - put_dot( 'v' ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release FAILED!!" ); - } - } -} diff --git a/testsuites/mptests/mp09/init.c b/testsuites/mptests/mp09/init.c deleted file mode 100644 index bd19547cef..0000000000 --- a/testsuites/mptests/mp09/init.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 9 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'S', 'G', ' ' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Creating Message Queue (Global)" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_GLOBAL|RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create" ); - } - - puts( "Creating Test_task (local)" ); - status = rtems_task_create( - Task_name[Multiprocessing_configuration.node], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task (local)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/mptests/mp09/node1/mp09.doc b/testsuites/mptests/mp09/node1/mp09.doc deleted file mode 100644 index 15e05aae58..0000000000 --- a/testsuites/mptests/mp09/node1/mp09.doc +++ /dev/null @@ -1,50 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test58 - -GLOBAL MESSAGE QUEUE TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - tm_wkafter, q_create, q_send, q_broadcast, q_urgent, q_receive, - q_delete - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can delete itself. - - i. Verifies Rpc and Process_pkt for message queue related packets. - - j. Verifies normal and error paths for global message queue handling. - -NOTE: The SLAVE must be started first for this test to successfully run. diff --git a/testsuites/mptests/mp09/node1/mp09.scn b/testsuites/mptests/mp09/node1/mp09.scn deleted file mode 100644 index 2b612e4746..0000000000 --- a/testsuites/mptests/mp09/node1/mp09.scn +++ /dev/null @@ -1,21 +0,0 @@ -*** TEST 9 -- NODE 1 *** -Creating Message Queue (Global) -Creating Test_task (local) -Starting Test_task (local) -Deleting initialization task -Getting QID of message queue -Receiving message ... -Received : 123456789012345 -Receiving message ... -Received : abcdefghijklmno -Receiving message ... -Received : ABCDEFGHIJKLMNO -rtems_message_queue_send: 123456789012345 -Delaying for a second -rtems_message_queue_urgent: abcdefghijklmno -Delaying for a second -rtems_message_queue_broadcast: ABCDEFGHIJKLMNO -Delaying for a second -Delaying for 5 seconds -Deleting Message queue -*** END OF TEST 9 *** diff --git a/testsuites/mptests/mp09/node2/mp09.doc b/testsuites/mptests/mp09/node2/mp09.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp09/node2/mp09.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp09/node2/mp09.scn b/testsuites/mptests/mp09/node2/mp09.scn deleted file mode 100644 index 96708f7fe0..0000000000 --- a/testsuites/mptests/mp09/node2/mp09.scn +++ /dev/null @@ -1,27 +0,0 @@ -*** TEST 9 -- NODE 2 *** -Creating Test_task (local) -Starting Test_task (local) -Deleting initialization task -Getting QID of message queue -rtems_message_queue_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT -rtems_message_queue_send: 123456789012345 -Delaying for a second -rtems_message_queue_urgent: abcdefghijklmno -Delaying for a second -rtems_message_queue_broadcast: ABCDEFGHIJKLMNO -Delaying for a second -Receiving message ... -Received : 123456789012345 -Receiving message ... -Received : abcdefghijklmno -Receiving message ... -Received : ABCDEFGHIJKLMNO -Flushing remote empty queue -00 messages were flushed on the remote queue -Send messages to be flushed from remote queue -Flushing remote queue -01 messages were flushed on the remote queue -Waiting for message queue to be deleted - -Global message queue deleted -*** END OF TEST 9 *** diff --git a/testsuites/mptests/mp09/recvmsg.c b/testsuites/mptests/mp09/recvmsg.c deleted file mode 100644 index c3c1a8ef8b..0000000000 --- a/testsuites/mptests/mp09/recvmsg.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Receive_messages - * - * This routine receives and prints three messages. - * an error condition. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Receive_messages() -{ - rtems_status_code status; - rtems_unsigned32 index; - char receive_buffer[16]; - - for ( index=1 ; index <=3 ; index++ ) { - puts( "Receiving message ..." ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])receive_buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "Received : "); - puts( receive_buffer ); - } - - puts( "Receiver delaying for a second" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); -} diff --git a/testsuites/mptests/mp09/sendmsg.c b/testsuites/mptests/mp09/sendmsg.c deleted file mode 100644 index d800eb47cf..0000000000 --- a/testsuites/mptests/mp09/sendmsg.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Send_messages - * - * This routine sends a series of three messages. - * an error condition. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Send_messages() -{ - rtems_status_code status; - rtems_unsigned32 broadcast_count; - - puts_nocr( "rtems_message_queue_send: " ); - puts( buffer1 ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer1 ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "Delaying for a second" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts_nocr( "rtems_message_queue_urgent: " ); - puts( buffer2 ); - status = rtems_message_queue_urgent( Queue_id[ 1 ], (long (*)[4])buffer2 ); - directive_failed( status, "rtems_message_queue_urgent" ); - - puts( "Delaying for a second" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts_nocr( "rtems_message_queue_broadcast: " ); - puts( buffer3 ); - status = rtems_message_queue_broadcast( - Queue_id[ 1 ], - (long (*)[4])buffer3, - &broadcast_count - ); - directive_failed( status, "rtems_message_queue_broadcast" ); - - puts( "Delaying for a second" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); -} diff --git a/testsuites/mptests/mp09/system.h b/testsuites/mptests/mp09/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/mptests/mp09/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp09/task1.c b/testsuites/mptests/mp09/task1.c deleted file mode 100644 index ece05592dd..0000000000 --- a/testsuites/mptests/mp09/task1.c +++ /dev/null @@ -1,107 +0,0 @@ -/* Test_task - * - * This task tests global message queue operations. It also generates - * an error condition. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -char buffer1[16] = "123456789012345"; -char buffer2[16] = "abcdefghijklmno"; -char buffer3[16] = "ABCDEFGHIJKLMNO"; -char buffer4[16] = "PQRSTUVWXYZ(){}"; - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 count; - char receive_buffer[16]; - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Getting QID of message queue" ); - - do { - status = rtems_message_queue_ident( - Queue_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Queue_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - if ( Multiprocessing_configuration.node == 2 ) { - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_message_queue_delete" - ); - puts( - "rtems_message_queue_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT" - ); - - Send_messages(); - Receive_messages(); - - puts( "Flushing remote empty queue" ); - status = rtems_message_queue_flush( Queue_id[ 1 ], &count ); - directive_failed( status, "rtems_message_queue_flush" ); - printf( "%02d messages were flushed on the remote queue\n", count ); - - puts( "Send messages to be flushed from remote queue" ); - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer1 ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "Flushing remote queue" ); - status = rtems_message_queue_flush( Queue_id[ 1 ], &count ); - directive_failed( status, "rtems_message_queue_flush" ); - printf( "%02d messages were flushed on the remote queue\n", count ); - - puts( "Waiting for message queue to be deleted" ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])receive_buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_OBJECT_WAS_DELETED, - "rtems_message_queue_receive" - ); - puts( "\nGlobal message queue deleted" ); - } - else { /* node == 1 */ - Receive_messages(); - Send_messages(); - - puts( "Delaying for 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Deleting Message queue" ); - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete" ); - } - - puts( "*** END OF TEST 9 ***" ); - exit( 0 ); -} diff --git a/testsuites/mptests/mp10/init.c b/testsuites/mptests/mp10/init.c deleted file mode 100644 index 7acf5ca411..0000000000 --- a/testsuites/mptests/mp10/init.c +++ /dev/null @@ -1,144 +0,0 @@ -/* Init - * - * This routine is the initialization routine for this test program. - * Other than creating all objects needed by this test, if this routine - * is running on node one, it acquires a global semaphore to - * force all other tasks to pend. If running on node two, this task - * sleeps for a while, and then deletes two local tasks which are - * waiting on a remote message queue or a semaphore. - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 10 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'S', 'A', '3', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'S', 'G', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'E', 'M', ' ' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Creating Message Queue (Global)" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_GLOBAL|RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create" ); - - puts( "Creating Semaphore (Global)" ); - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 0, - RTEMS_GLOBAL | RTEMS_PRIORITY, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - - status = rtems_task_wake_after( 10 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - } else { - - puts( "Creating Test_task 1 (local)" ); - status = rtems_task_create( - Task_name[ 1 ], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task 1 (local)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task1, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Test_task 2 (local)" ); - status = rtems_task_create( - Task_name[ 2 ], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task 2 (local)" ); - status = rtems_task_start( Task_id[ 2 ], Test_task2, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Test_task 3 (local)" ); - status = rtems_task_create( - Task_name[ 3 ], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task 3 (local)" ); - status = rtems_task_start( Task_id[ 3 ], Test_task2, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Sleeping for 1 seconds ..." ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Deleting Test_task2" ); - status = rtems_task_delete( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_delete of Task 2" ); - - puts( "Deleting Test_task1" ); - status = rtems_task_delete( Task_id[ 1 ] ); - directive_failed( status, "rtems_task_delete of Task 1" ); - - puts( "Restarting Test_task3" ); - status = rtems_task_restart( Task_id[ 3 ], 1 ); - directive_failed( status, "rtems_task_restart of Task 3" ); - - } - puts( "*** END OF TEST 10 ***" ); - exit( 0 ); -} diff --git a/testsuites/mptests/mp10/node1/mp10.doc b/testsuites/mptests/mp10/node1/mp10.doc deleted file mode 100644 index d75b176f8d..0000000000 --- a/testsuites/mptests/mp10/node1/mp10.doc +++ /dev/null @@ -1,46 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test59 - -GLOBAL SEMAPHORE TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_set, tm_get, tm_wkafter - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - - h. Verifies that a task can get the task identification number - of another task. - - i. Verifies that a task can delete itself or another task. diff --git a/testsuites/mptests/mp10/node1/mp10.scn b/testsuites/mptests/mp10/node1/mp10.scn deleted file mode 100644 index deeafc0a9a..0000000000 --- a/testsuites/mptests/mp10/node1/mp10.scn +++ /dev/null @@ -1,4 +0,0 @@ -*** TEST 10 -- NODE 1 *** -Creating Message Queue (Global) -Creating Semaphore (Global) -*** END OF TEST 10 *** diff --git a/testsuites/mptests/mp10/node2/mp10.doc b/testsuites/mptests/mp10/node2/mp10.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp10/node2/mp10.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp10/node2/mp10.scn b/testsuites/mptests/mp10/node2/mp10.scn deleted file mode 100644 index 25c07e6202..0000000000 --- a/testsuites/mptests/mp10/node2/mp10.scn +++ /dev/null @@ -1,19 +0,0 @@ -*** TEST 10 -- NODE 2 *** -Creating Test_task 1 (local) -Starting Test_task 1 (local) -Creating Test_task 2 (local) -Starting Test_task 2 (local) -Creating Test_task 3 (local) -Starting Test_task 3 (local) -Sleeping for 1 seconds ... -Getting QID of message queue -Attempting to receive message ... -Getting SMID of semaphore -Attempting to acquire semaphore ... -Getting SMID of semaphore -Attempting to acquire semaphore ... -Deleting Test_task2 -Deleting Test_task1 -Restarting Test_task3 -*** END OF TEST 10 *** - diff --git a/testsuites/mptests/mp10/system.h b/testsuites/mptests/mp10/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/mptests/mp10/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp10/task1.c b/testsuites/mptests/mp10/task1.c deleted file mode 100644 index ff6f4bd69a..0000000000 --- a/testsuites/mptests/mp10/task1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Test_task1 - * - * This task attempts to receive a message from a global message queue. - * It should never actually receive the message. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task1( - rtems_task_argument argument -) -{ - char receive_buffer[16]; - rtems_status_code status; - - puts( "Getting QID of message queue" ); - - do { - status = rtems_message_queue_ident( - Queue_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Queue_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - puts( "Attempting to receive message ..." ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])receive_buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - -} diff --git a/testsuites/mptests/mp10/task2.c b/testsuites/mptests/mp10/task2.c deleted file mode 100644 index 560f3946cf..0000000000 --- a/testsuites/mptests/mp10/task2.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Test_task2 - * - * This task attempts to receive control of a global semaphore. - * It should never receive control of the semaphore. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "Getting SMID of semaphore" ); - - do { - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Semaphore_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - puts( "Attempting to acquire semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); -} diff --git a/testsuites/mptests/mp10/task3.c b/testsuites/mptests/mp10/task3.c deleted file mode 100644 index 905183268e..0000000000 --- a/testsuites/mptests/mp10/task3.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Test_task3 - * - * This task attempts to receive control of a global semaphore. - * It should never receive control of the semaphore. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task3( restart ) -rtems_task_argument restart; -{ - rtems_status_code status; - - if ( restart == 1 ) { - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete" ); - } - - puts( "Getting SMID of semaphore" ); - - do { - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Semaphore_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - puts( "Attempting to acquire semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); -} diff --git a/testsuites/mptests/mp11/init.c b/testsuites/mptests/mp11/init.c deleted file mode 100644 index 7adc391319..0000000000 --- a/testsuites/mptests/mp11/init.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Init - * - * This routine is the initialization and test routine for - * this test program. It attempts to create more global - * objects than are configured (zero should be configured). - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned8 my_partition[0x30000]; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id junk_id; - rtems_status_code status; - - printf( - "\n\n*** TEST 11 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'S', 'G', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'E', 'M', ' ' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Attempting to create Test_task (Global)" ); - status = rtems_task_create( - Task_name[ 1 ], - 1, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_GLOBAL, - &junk_id - ); - fatal_directive_status( status, RTEMS_TOO_MANY, "rtems_task_create" ); - puts( "rtems_task_create correctly returned RTEMS_TOO_MANY" ); - - puts( "Attempting to create Message Queue (Global)" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_GLOBAL|RTEMS_LIMIT, - &junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_message_queue_create" - ); - puts( "rtems_message_queue_create correctly returned RTEMS_TOO_MANY" ); - - puts( "Attempting to create Semaphore (Global)" ); - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_GLOBAL, - &junk_id - ); - fatal_directive_status( status, RTEMS_TOO_MANY, "rtems_semaphore_create" ); - puts( "rtems_semaphore_create correctly returned RTEMS_TOO_MANY" ); - - puts( "Attempting to create Partition (Global)" ); - status = rtems_partition_create( - 1, - (rtems_unsigned8 *) my_partition, - 128, - 64, - RTEMS_GLOBAL, - &junk_id - ); - fatal_directive_status( status, RTEMS_TOO_MANY, "rtems_partition_create" ); - puts( "rtems_partition_create correctly returned RTEMS_TOO_MANY" ); - } - puts( "*** END OF TEST 11 ***" ); - exit( 0 ); -} diff --git a/testsuites/mptests/mp11/node1/mp11.doc b/testsuites/mptests/mp11/node1/mp11.doc deleted file mode 100644 index 05113ec6b6..0000000000 --- a/testsuites/mptests/mp11/node1/mp11.doc +++ /dev/null @@ -1,42 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test60 - -TOO MANY GLOBAL OBJECTS ERROR TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - t_create, q_create, sm_create, pt_create - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that all object create directives correctly return - E_TOOMANYGOBJECTS. diff --git a/testsuites/mptests/mp11/node1/mp11.scn b/testsuites/mptests/mp11/node1/mp11.scn deleted file mode 100644 index fb26583852..0000000000 --- a/testsuites/mptests/mp11/node1/mp11.scn +++ /dev/null @@ -1,10 +0,0 @@ -*** TEST 11 -- NODE 1 *** -Attempting to create Test_task (Global) -rtems_task_create correctly returned RTEMS_TOO_MANY -Attempting to create Message Queue (Global) -rtems_message_queue_create correctly returned RTEMS_TOO_MANY -Attempting to create Semaphore (Global) -rtems_semaphore_create correctly returned RTEMS_TOO_MANY -Attempting to create Partition (Global) -rtems_partition_create correctly returned RTEMS_TOO_MANY -*** END OF TEST 11 *** diff --git a/testsuites/mptests/mp11/node2/mp11.doc b/testsuites/mptests/mp11/node2/mp11.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp11/node2/mp11.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp11/node2/mp11.scn b/testsuites/mptests/mp11/node2/mp11.scn deleted file mode 100644 index 49bd8a3219..0000000000 --- a/testsuites/mptests/mp11/node2/mp11.scn +++ /dev/null @@ -1,2 +0,0 @@ -*** TEST 11 -- NODE 2 *** -*** END OF TEST 11 *** diff --git a/testsuites/mptests/mp11/system.h b/testsuites/mptests/mp11/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/mptests/mp11/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp12/init.c b/testsuites/mptests/mp12/init.c deleted file mode 100644 index 8ef9552174..0000000000 --- a/testsuites/mptests/mp12/init.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Init - * - * This routine is the initialization routine and test code for - * global partitions. It creates a global partition, obtains and - * releases a buffer, and deletes the partition. The partition - * is created on node one, and an attempt is made to delete it - * by node two. - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned8 Partition_area[ 1024 ]; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - void *bufaddr; - - printf( - "\n\n*** TEST 12 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Partition_name[ 1 ] = rtems_build_name( 'P', 'A', 'R', ' ' ); - - puts( "Got to initialization task" ); - - if ( Multiprocessing_configuration.node == 2 ) { - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Getting ID of remote Partition (Global)" ); - - do { - status = rtems_partition_ident( - Partition_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Partition_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - puts( "Attempting to delete remote Partition (Global)" ); - status = rtems_partition_delete( Partition_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_ILLEGAL_ON_REMOTE_OBJECT, - "rtems_partition_delete" - ); - puts( - "rtems_partition_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT" - ); - - puts( "Obtaining a buffer from the global partition" ); - status = rtems_partition_get_buffer( Partition_id[ 1 ], &bufaddr ); - directive_failed( status, "rtems_partition_get_buffer" ); - printf( "Address returned was : 0x%p\n", bufaddr ); - - puts( "Releasing a buffer to the global partition" ); - status = rtems_partition_return_buffer( Partition_id[ 1 ], bufaddr ); - directive_failed( status, "rtems_partition_return_buffer" ); - - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } - else { - puts( "Creating Partition (Global)" ); - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_area, - 128, - 64, - RTEMS_GLOBAL, - &Partition_id[ 1 ] - ); - directive_failed( status, "rtems_partition_create" ); - - puts( "Sleeping for two seconds" ); - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Deleting Partition (Global)" ); - status = rtems_partition_delete( Partition_id[ 1 ] ); - directive_failed( status, "rtems_partition_delete" ); - } - puts( "*** END OF TEST 12 ***" ); - exit( 0 ); -} diff --git a/testsuites/mptests/mp12/node1/mp12.doc b/testsuites/mptests/mp12/node1/mp12.doc deleted file mode 100644 index 2bb7bc4518..0000000000 --- a/testsuites/mptests/mp12/node1/mp12.doc +++ /dev/null @@ -1,52 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test61 - -GLOBAL PARTITION TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, tm_wkafter, - pt_create, pt_delete, pt_getbuf, pt_retbuf - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies the Shared Memory Locked Queue Driver. - - h. Verifies _Rpc() and _Process_pkt() for the following packet types: - P_OBJCREATE (partitions), - P_OBJDELETE (partitions), - P_PTGETBUF, and - P_PTRETBUF. - - i. Verifies normal and error paths (other than E_TOOMANYGOBJECTS) - for global partitions. - - j. Verifies that a task can delete itself. diff --git a/testsuites/mptests/mp12/node1/mp12.scn b/testsuites/mptests/mp12/node1/mp12.scn deleted file mode 100644 index 605a2c11db..0000000000 --- a/testsuites/mptests/mp12/node1/mp12.scn +++ /dev/null @@ -1,6 +0,0 @@ -*** TEST 12 -- NODE 1 *** -Got to initialization task -Creating Partition (Global) -Sleeping for two seconds -Deleting Partition (Global) -*** END OF TEST 12 *** diff --git a/testsuites/mptests/mp12/node2/mp12.doc b/testsuites/mptests/mp12/node2/mp12.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp12/node2/mp12.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp12/node2/mp12.scn b/testsuites/mptests/mp12/node2/mp12.scn deleted file mode 100644 index ad65e9cb32..0000000000 --- a/testsuites/mptests/mp12/node2/mp12.scn +++ /dev/null @@ -1,10 +0,0 @@ -*** TEST 12 -- NODE 2 *** -Got to initialization task -Getting ID of remote Partition (Global) -Attempting to delete remote Partition (Global) -rtems_partition_delete correctly returned RTEMS_ILLEGAL_ON_REMOTE_OBJECT -Obtaining a buffer from the global partition ->>>>>>> address returned will differ -Address returned was : 0x200f0000 -Releasing a buffer to the global partition -*** END OF TEST 12 *** diff --git a/testsuites/mptests/mp12/system.h b/testsuites/mptests/mp12/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/mptests/mp12/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp13/init.c b/testsuites/mptests/mp13/init.c deleted file mode 100644 index 0ec132e9ed..0000000000 --- a/testsuites/mptests/mp13/init.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - printf( - "\n\n*** TEST 13 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'S', 'G', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'E', 'M', ' ' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Creating Message Queue (Global)" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_GLOBAL|RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create" ); - - puts( "Creating Semaphore (Global)" ); - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_GLOBAL | RTEMS_PRIORITY, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); - } - - puts( "Creating Test_task 1 (local)" ); - status = rtems_task_create( - Task_name[ 1 ], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task 1 (local)" ); - status = rtems_task_start( Task_id[ 1 ], Test_task1, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Test_task 2 (local)" ); - status = rtems_task_create( - Task_name[ 2 ], - 1, - 1024, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Test_task 2 (local)" ); - status = rtems_task_start( Task_id[ 2 ], Test_task2, 0 ); - directive_failed( status, "rtems_task_start" ); - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_task_wake_after( 5 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "*** END OF TEST 13 ***" ); - exit( 0 ); - } - puts( "Deleting initialization task" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/mptests/mp13/node1/mp13.doc b/testsuites/mptests/mp13/node1/mp13.doc deleted file mode 100644 index abf558b443..0000000000 --- a/testsuites/mptests/mp13/node1/mp13.doc +++ /dev/null @@ -1,48 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test62 - -GLOBAL SEMAPHORE TEST - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, tm_wkafter, - sm_create, q_create, sm_p, q_receive - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies the Shared Memory Locked Queue Driver. - - h. Verifies that E_MESSAGETIMEOUT is when waiting on a - remote message queue. - - i. Verifies that E_SEMTIMEOUT is when waiting on a remote semaphore. - - j. Verifies that a task can delete itself. diff --git a/testsuites/mptests/mp13/node1/mp13.scn b/testsuites/mptests/mp13/node1/mp13.scn deleted file mode 100644 index d3bd11f65e..0000000000 --- a/testsuites/mptests/mp13/node1/mp13.scn +++ /dev/null @@ -1,14 +0,0 @@ -*** TEST 13 -- NODE 1 *** -Creating Message Queue (Global) -Creating Semaphore (Global) -Creating Test_task 1 (local) -Starting Test_task 1 (local) -Creating Test_task 2 (local) -Starting Test_task 2 (local) -Getting QID of message queue -Receiving message ... -Getting SMID of semaphore -Releasing semaphore ... -Getting semaphore ... -Getting semaphore ... -*** END OF TEST 13 *** diff --git a/testsuites/mptests/mp13/node2/mp13.doc b/testsuites/mptests/mp13/node2/mp13.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp13/node2/mp13.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp13/node2/mp13.scn b/testsuites/mptests/mp13/node2/mp13.scn deleted file mode 100644 index e9df202a94..0000000000 --- a/testsuites/mptests/mp13/node2/mp13.scn +++ /dev/null @@ -1,16 +0,0 @@ -*** TEST 13 -- NODE 2 *** -Creating Test_task 1 (local) -Starting Test_task 1 (local) -Creating Test_task 2 (local) -Starting Test_task 2 (local) -Deleting initialization task -Getting QID of message queue -Getting SMID of semaphore -Getting semaphore ... -Receiving message ... -Releasing semaphore ... -Getting semaphore ... -rtems_message_queue_receive correctly returned RTEMS_TIMEOUT -Deleting self -rtems_semaphore_obtain correctly returned RTEMS_TIMEOUT -*** END OF TEST 13 *** diff --git a/testsuites/mptests/mp13/system.h b/testsuites/mptests/mp13/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/mptests/mp13/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/mptests/mp13/task1.c b/testsuites/mptests/mp13/task1.c deleted file mode 100644 index 180d0fd101..0000000000 --- a/testsuites/mptests/mp13/task1.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Test_task1 - * - * This task attempts to receive a message from a global message queue. - * If running on the node on which the queue resides, the wait is - * forever, otherwise it times out on a remote message queue. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task1( - rtems_task_argument argument -) -{ - char receive_buffer[16]; - rtems_status_code status; - - puts( "Getting QID of message queue" ); - - do { - status = rtems_message_queue_ident( - Queue_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Queue_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Receiving message ..." ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])receive_buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - puts( "How did I get back from here????" ); - directive_failed( status, "rtems_message_queue_receive" ); - } - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Receiving message ..." ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])receive_buffer, - RTEMS_DEFAULT_OPTIONS, - 2 * TICKS_PER_SECOND - ); - fatal_directive_status(status, RTEMS_TIMEOUT, "rtems_message_queue_receive"); - puts( "rtems_message_queue_receive correctly returned RTEMS_TIMEOUT" ); - - puts( "Deleting self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/mptests/mp13/task2.c b/testsuites/mptests/mp13/task2.c deleted file mode 100644 index a43b64d3cf..0000000000 --- a/testsuites/mptests/mp13/task2.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Test_task2 - * - * This task attempts to receive control of a global semaphore. - * If running on the node on which the semaphore resides, the wait is - * forever, otherwise it times out on a remote semaphore. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "Getting SMID of semaphore" ); - do { - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Semaphore_id[ 1 ] - ); - } while ( !rtems_is_status_successful( status ) ); - - directive_failed( status, "rtems_semaphore_ident" ); - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Releasing semaphore ..." ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release" ); - - status = rtems_task_wake_after( TICKS_PER_SECOND / 2 ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Getting semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); - - puts( "Getting semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - puts( "How did I get back from here????" ); - directive_failed( status, "rtems_semaphore_obtain" ); - } - -/* - status = rtems_task_wake_after( TICKS_PER_SECOND / 2 ); - directive_failed( status, "rtems_task_wake_after" ); -*/ - - puts( "Getting semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); - - puts( "Releasing semaphore ..." ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release" ); - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "Getting semaphore ..." ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - 2 * TICKS_PER_SECOND - ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_semaphore_obtain" - ); - puts( "rtems_semaphore_obtain correctly returned RTEMS_TIMEOUT" ); - - puts( "*** END OF TEST 13 ***" ); - exit( 0 ); -} diff --git a/testsuites/mptests/mp14/delay.c b/testsuites/mptests/mp14/delay.c deleted file mode 100644 index 7062c4ad21..0000000000 --- a/testsuites/mptests/mp14/delay.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Delayed_send_event - * - * This routine is a timer service routine which sends an event to a task. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Delayed_send_event( - rtems_id timer_id, - void *ignored -) -{ - rtems_status_code status; - - status = rtems_event_send( - Task_id[ rtems_get_index( timer_id ) ], - RTEMS_EVENT_16 - ); - directive_failed( status, "rtems_event_send" ); -} diff --git a/testsuites/mptests/mp14/evtask1.c b/testsuites/mptests/mp14/evtask1.c deleted file mode 100644 index 6f8175e4d4..0000000000 --- a/testsuites/mptests/mp14/evtask1.c +++ /dev/null @@ -1,86 +0,0 @@ -/* Test_task - * - * This task either continuously sends events to a remote task, or - * continuously receives events sent by a remote task. This decision - * is based upon the local node number. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_multiprocessing_table Multiprocessing_configuration; - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 count; - rtems_unsigned32 remote_node; - rtems_id remote_tid; - rtems_event_set event_out; - - remote_node = ((Multiprocessing_configuration.node == 1) ? 2 : 1); - - puts( "About to go to sleep!" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - puts( "Waking up!" ); - - puts_nocr( "Remote task's name is : " ); - put_name( Task_name[ remote_node ], TRUE ); - - puts( "Getting TID of remote task" ); - while ( FOREVER ) { - status = rtems_task_ident( - Task_name[ remote_node ], - RTEMS_SEARCH_ALL_NODES, - &remote_tid - ); - - if ( status == RTEMS_SUCCESSFUL ) - break; - puts( "rtems_task_ident" ); - } - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Sending events to remote task" ); - while ( Stop_Test == FALSE ) { - for ( count=EVENT_TASK_DOT_COUNT; Stop_Test == FALSE && count; count-- ) { - status = rtems_event_send( remote_tid, RTEMS_EVENT_16 ); - directive_failed( status, "rtems_event_send" ); - } - put_dot( 'e' ); - } - } - - puts( "Receiving events from remote task" ); - while ( Stop_Test == FALSE ) { - for ( count=EVENT_TASK_DOT_COUNT ; Stop_Test == FALSE && count ; count-- ) { - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - directive_failed( status, "rtems_event_receive" ); - } - put_dot( 'e' ); - } - - Exit_test(); -} diff --git a/testsuites/mptests/mp14/evtmtask.c b/testsuites/mptests/mp14/evtmtask.c deleted file mode 100644 index c540eb98fb..0000000000 --- a/testsuites/mptests/mp14/evtmtask.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Delayed_events_task - * - * This task continuously sends itself events at one tick - * intervals. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Delayed_events_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - rtems_unsigned32 previous_mode; - rtems_status_code status; - rtems_event_set events; - - status = rtems_task_mode( - RTEMS_PREEMPT | RTEMS_TIMESLICE, - RTEMS_PREEMPT_MASK | RTEMS_TIMESLICE_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - while ( Stop_Test == FALSE ) { - for ( count=DELAYED_EVENT_DOT_COUNT; Stop_Test == FALSE && count; count-- ){ - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 1, - Delayed_send_event, - NULL - ); - directive_failed( status, "rtems_timer_reset" ); - - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &events - ); - directive_failed( status, "rtems_event_receive" ); - } - put_dot('.'); - } - - Exit_test(); -} diff --git a/testsuites/mptests/mp14/exit.c b/testsuites/mptests/mp14/exit.c deleted file mode 100644 index 65fc0df49f..0000000000 --- a/testsuites/mptests/mp14/exit.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Exit_test - * - * This routine safely stops the test and prints some information - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Exit_test( void ) -{ - rtems_status_code status; - rtems_mode old_mode; - - status = rtems_task_mode( RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &old_mode ); - directive_failed( status, "rtems_task_mode" ); - - MPCI_Print_statistics(); - - rtems_shutdown_executive( 0 ); -} diff --git a/testsuites/mptests/mp14/init.c b/testsuites/mptests/mp14/init.c deleted file mode 100644 index ab403ad395..0000000000 --- a/testsuites/mptests/mp14/init.c +++ /dev/null @@ -1,194 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -#include "bsp.h" - -rtems_unsigned8 my_partition[0x30000] CPU_STRUCTURE_ALIGNMENT; - -rtems_timer_service_routine Stop_Test_TSR( - rtems_id ignored_id, - void *ignored_address -) -{ - Stop_Test = TRUE; -} - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority previous_priority; - - printf( - "\n\n*** TEST 14 -- NODE %d ***\n", - Multiprocessing_configuration.node - ); - - Stop_Test = FALSE; - - status = rtems_timer_create( - rtems_build_name('S', 'T', 'O', 'P'), - &timer_id - ); - directive_failed( status, "rtems_timer_create" ); - - status = rtems_timer_fire_after( - timer_id, - MAX_LONG_TEST_DURATION * TICKS_PER_SECOND, - Stop_Test_TSR, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' ); - - Queue_task_name[ 1 ] = rtems_build_name( 'M', 'T', '1', ' ' ); - Queue_task_name[ 2 ] = rtems_build_name( 'M', 'T', '2', ' ' ); - - Partition_task_name[ 1 ] = rtems_build_name( 'P', 'T', '1', ' ' ); - Partition_task_name[ 2 ] = rtems_build_name( 'P', 'T', '2', ' ' ); - - Semaphore_task_name[ 1 ] = rtems_build_name( 'S', 'M', '1', ' ' ); - Semaphore_task_name[ 2 ] = rtems_build_name( 'S', 'M', '2', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'E', 'M', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'S', 'G', ' ' ); - - Partition_name[ 1 ] = rtems_build_name( 'P', 'A', 'R', ' ' ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', 'R', ' ' ); - - if ( Multiprocessing_configuration.node == 1 ) { - puts( "Creating Semaphore (Global)" ); - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_GLOBAL, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - - puts( "Creating Message Queue (Global)" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 1, - RTEMS_GLOBAL, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create" ); - - puts( "Creating Partition (Global)" ); - status = rtems_partition_create( - Partition_name[ 1 ], - (void *)my_partition, - 0x8000, - 0x3800, - RTEMS_GLOBAL, - &Partition_id[ 1 ] - ); - directive_failed( status, "rtems_partition_create" ); - } - - puts( "Creating Event task (Global)" ); - status = rtems_task_create( - Task_name[ Multiprocessing_configuration.node ], - 2, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Event_task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Event task (Global)" ); - status = rtems_task_start( Event_task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Semaphore task (Global)" ); - status = rtems_task_create( - Semaphore_task_name[ Multiprocessing_configuration.node ], - 2, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Semaphore_task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Semaphore task (Global)" ); - status = rtems_task_start( Semaphore_task_id[ 1 ], Semaphore_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Message Queue task (Global)" ); - status = rtems_task_create( - Queue_task_name[ Multiprocessing_configuration.node ], - 2, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Queue_task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - /* argument is index into Buffers */ - puts( "Starting Message Queue task (Global)" ); - status = rtems_task_start( Queue_task_id[ 1 ], Message_queue_task, 1 ); - directive_failed( status, "rtems_task_start" ); - - puts( "Creating Partition task (Global)" ); - status = rtems_task_create( - Partition_task_name[ Multiprocessing_configuration.node ], - 2, - 2048, - RTEMS_TIMESLICE, - RTEMS_GLOBAL, - &Partition_task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - puts( "Starting Partition task (Global)" ); - status = rtems_task_start( Partition_task_id[ 1 ], Partition_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_set_priority( RTEMS_SELF, 2, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - status = rtems_task_ident( - RTEMS_SELF, - RTEMS_SEARCH_ALL_NODES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_ident" ); - - Delayed_events_task( 1 ); -} diff --git a/testsuites/mptests/mp14/msgtask1.c b/testsuites/mptests/mp14/msgtask1.c deleted file mode 100644 index 2a9f6e235b..0000000000 --- a/testsuites/mptests/mp14/msgtask1.c +++ /dev/null @@ -1,102 +0,0 @@ -/* Message_queue_task - * - * This task continuously sends messages to and receives messages from - * a global message queue. The message buffer is viewed as an array - * of two sixty-four bit counts which are incremented when a message is - * received. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Message_queue_task( - rtems_task_argument index -) -{ - rtems_status_code status; - rtems_unsigned32 count; - rtems_unsigned32 yield_count; - rtems_unsigned32 *buffer_count; - rtems_unsigned32 *overflow_count; - - Msg_buffer[ index ][0] = 0; - Msg_buffer[ index ][1] = 0; - Msg_buffer[ index ][2] = 0; - Msg_buffer[ index ][3] = 0; - - puts( "Getting ID of msg queue" ); - while ( FOREVER ) { - status = rtems_message_queue_ident( - Queue_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Queue_id[ 1 ] - ); - if ( status == RTEMS_SUCCESSFUL ) - break; - puts( "rtems_message_queue_ident FAILED!!" ); - } - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_message_queue_send( - Queue_id[ 1 ], - (long (*)[4])Msg_buffer[ index ] - ); - directive_failed( status, "rtems_message_queue_send" ); - overflow_count = &Msg_buffer[ index ][0]; - buffer_count = &Msg_buffer[ index ][1]; - } else { - overflow_count = &Msg_buffer[ index ][2]; - buffer_count = &Msg_buffer[ index ][3]; - } - - while ( Stop_Test == FALSE ) { - yield_count = 100; - - for ( count=MESSAGE_DOT_COUNT ; Stop_Test == FALSE && count ; count-- ) { - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])Msg_buffer[ index ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - - if ( *buffer_count == (rtems_unsigned32)0xffffffff ) { - *buffer_count = 0; - *overflow_count += 1; - } else - *buffer_count += 1; - - status = rtems_message_queue_send( - Queue_id[ 1 ], - (long (*)[4])Msg_buffer[ index ] - ); - directive_failed( status, "rtems_message_queue_send" ); - - if (Stop_Test == FALSE) - if ( Multiprocessing_configuration.node == 1 && --yield_count == 0 ) { - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - yield_count = 100; - } - } - put_dot( 'm' ); - } - - Exit_test(); -} diff --git a/testsuites/mptests/mp14/node1/mp14.doc b/testsuites/mptests/mp14/node1/mp14.doc deleted file mode 100644 index 5ac3f7e47a..0000000000 --- a/testsuites/mptests/mp14/node1/mp14.doc +++ /dev/null @@ -1,50 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test63 - -INTERRUPT SATURATION TEST - -directives: - ex_init, ex_start, t_create, t_start, t_ident, tm_tick, - tm_evwhen, tm_wkafter, i_return, ev_send, ev_receive - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies printing of strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies printing of strings to the CRT on port 2 of the mvme136 board - using Write and Writeln and the TTY driver. - - e. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - f. Verifies executive initialization performed correctly. - - g. Verifies the executive trap handler except for the halt function. - - h. Verifies that a task can get the task identification number of itself. - - i. Verifies that a task can get the task identification number - of another task. - - j. Verifies that events can be sent to a remote task. diff --git a/testsuites/mptests/mp14/node1/mp14.scn b/testsuites/mptests/mp14/node1/mp14.scn deleted file mode 100644 index 98202bc439..0000000000 --- a/testsuites/mptests/mp14/node1/mp14.scn +++ /dev/null @@ -1,38 +0,0 @@ -*** TEST 14 -- NODE 1 *** -Creating Semaphore (Global) -Creating Message Queue (Global) -Creating Partition (Global) -Creating Event task (Global) -Starting Event task (Global) -Creating Semaphore task (Global) -About to go to sleep! -Starting Semaphore task (Global) -Creating Message Queue task (Global) -Getting SMID of semaphore -Starting Message Queue task (Global) -Creating Partition task (Global) -Getting ID of msg queue -Starting Partition task (Global) -Getting ID of partition -Waking up! -Remote task's name is : 222 -Getting TID of remote task -Sending events to remote task - - -. - indicates 100 iterations of - tm_evafter of 1 tick and rtems_event_receive. - -e - indicates that 100 - events have been sent to the remote task. - -m - indicates 100 iterations of - rtems_message_queue_send and rtems_message_queue_receive. - -p - indicates 100 iterations of - rtems_partition_get_buffer and rtems_partition_return_buffer. - -s - indicates 100 iterations of - rtems_semaphore_obtain and rtems_semaphore_release. - -NOTE: The messages could be interspersed. diff --git a/testsuites/mptests/mp14/node2/mp14.doc b/testsuites/mptests/mp14/node2/mp14.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/mptests/mp14/node2/mp14.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/mptests/mp14/node2/mp14.scn b/testsuites/mptests/mp14/node2/mp14.scn deleted file mode 100644 index cd82f3c81b..0000000000 --- a/testsuites/mptests/mp14/node2/mp14.scn +++ /dev/null @@ -1,35 +0,0 @@ -*** TEST 14 -- NODE 2 *** -Creating Event task (Global) -Starting Event task (Global) -Creating Semaphore task (Global) -About to go to sleep! -Starting Semaphore task (Global) -Creating Message Queue task (Global) -Getting SMID of semaphore -Starting Message Queue task (Global) -Creating Partition task (Global) -Getting ID of msg queue -Starting Partition task (Global) -Getting ID of partition -Waking up! -Remote task's name is : 111 -Getting TID of remote task -Receiving events from remote task - - -. - indicates 100 iterations of - tm_evafter of 1 tick and rtems_event_receive. - -e - indicates that 100 - events have been sent to the remote task. - -m - indicates 100 iterations of - rtems_message_queue_send and rtems_message_queue_receive. - -p - indicates 100 iterations of - rtems_partition_get_buffer and rtems_partition_return_buffer. - -s - indicates 100 iterations of - rtems_semaphore_obtain and rtems_semaphore_release. - -NOTE: The messages could be interspersed. diff --git a/testsuites/mptests/mp14/pttask1.c b/testsuites/mptests/mp14/pttask1.c deleted file mode 100644 index f6af1b0969..0000000000 --- a/testsuites/mptests/mp14/pttask1.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Partition_task - * - * This task continuously gets a buffer from and returns that buffer - * to a global partition. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_multiprocessing_table Multiprocessing_configuration; - -rtems_task Partition_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - rtems_status_code status; - void *buffer; - - puts( "Getting ID of partition" ); - while ( FOREVER ) { - status = rtems_partition_ident( - Partition_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Partition_id[ 1 ] - ); - - if ( status == RTEMS_SUCCESSFUL ) - break; - - puts( "rtems_partition_ident FAILED!!" ); - } - - while ( Stop_Test == FALSE ) { - for ( count=PARTITION_DOT_COUNT ; Stop_Test == FALSE && count ; count-- ) { - status = rtems_partition_get_buffer( Partition_id[ 1 ], &buffer ); - directive_failed( status, "rtems_partition_get_buffer" ); - - status = rtems_partition_return_buffer( Partition_id[ 1 ], buffer ); - directive_failed( status, "rtems_partition_return_buffer" ); - - if ( Multiprocessing_configuration.node == 1 ) { - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - } - } - put_dot( 'p' ); - } - - Exit_test(); -} diff --git a/testsuites/mptests/mp14/smtask1.c b/testsuites/mptests/mp14/smtask1.c deleted file mode 100644 index c4d71c0101..0000000000 --- a/testsuites/mptests/mp14/smtask1.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Sm_test_task - * - * This task continuously obtains and releases a global semaphore. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_multiprocessing_table Multiprocessing_configuration; - -rtems_task Semaphore_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - rtems_status_code status; - rtems_unsigned32 yield_count; - - puts( "Getting SMID of semaphore" ); - while ( FOREVER ) { - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &Semaphore_id[ 1 ] - ); - if ( status == RTEMS_SUCCESSFUL ) - break; - puts( "rtems_semaphore_ident FAILED!!" ); - } - - while ( Stop_Test == FALSE ) { - yield_count = 100; - - for ( count=SEMAPHORE_DOT_COUNT ; Stop_Test == FALSE && count ; count-- ) { - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain" ); - - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release" ); - - if ( Multiprocessing_configuration.node == 1 && --yield_count == 0 ) { - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - yield_count = 100; - } - } - put_dot( 's' ); - } - - Exit_test(); -} diff --git a/testsuites/mptests/mp14/system.h b/testsuites/mptests/mp14/system.h deleted file mode 100644 index f2393df080..0000000000 --- a/testsuites/mptests/mp14/system.h +++ /dev/null @@ -1,31 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" -#include "mpci.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/samples/README b/testsuites/samples/README deleted file mode 100644 index 77a734193f..0000000000 --- a/testsuites/samples/README +++ /dev/null @@ -1,71 +0,0 @@ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This directory contains the RTEMS Sample Application Suite. -The tests in this directory perform two functions: - - + provide simple examples of applications which can be - used as a starting point for your application. - - + help test a new board support package - -The hello and ticker applications are useful when first bringing up -a new board support package. The base_mp test is useful when -performing initial checkout on a new MPCI layer. - -The following describes each of the sample applications: - - base_mp - - This is a very simple two node multiprocessor application. It consists - of a single initialization task on each node which print out - their respective node numbers and task IDs. This test can be - used as a simple test of a new MPCI layer because it minimizes - the number of packets sent by RTEMS. - - This is intended as a starting point for custom developed multiprocessor - applications. - - base_sp - - This is a simple single processor application which consists of - an initialization task which creates another task. - - This is intended as a starting point for custom developed single - processor applications. - - cdtest - - A very simple C++ application which demonstrates that it is - possible to use C++ contructors and destructors in an RTEMS - application. Also does a perfunctory iostream test. - - hello - - This is the RTEMS version of the classic hello world program. - It consists of single initialization task which prints out - a few messages. - - This test does not include a Clock Tick device driver and can - be used to test the startup code of the board support package - as well as console output. - - paranoia - - A public domain test of the floating point and math library - capabilities of a toolset. It reports discrepancies between - actual and expected results. It is a large test. - - ticker - - This is a simple test of the user's Clock Tick device driver. - This test has an initialization task create three application - tasks which sleep and periodically wake up and print the time. - diff --git a/testsuites/samples/base_mp/apptask.c b/testsuites/samples/base_mp/apptask.c deleted file mode 100644 index 04f081ad5c..0000000000 --- a/testsuites/samples/base_mp/apptask.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Application_task - * - * This routine is as an example of an application task which - * prints a message including its RTEMS task id. This task - * then invokes exit to return to the monitor. - * - * Input parameters: - * node - processor's node number - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "libcsupport.h" - -rtems_task Application_task( - rtems_task_argument node -) -{ - rtems_id tid; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - printf( "This task was invoked with the node argument (%d)\n", node ); - printf( "This task has the id of 0x%x\n", tid ); - printf( "*** END OF SAMPLE MULTIPROCESSOR APPLICATION ***\n" ); - exit( 0 ); -} diff --git a/testsuites/samples/base_mp/init.c b/testsuites/samples/base_mp/init.c deleted file mode 100644 index a844d9032b..0000000000 --- a/testsuites/samples/base_mp/init.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the application, the current time might be - * set by this task. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "shm.h" -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_name task_name; - rtems_id tid; - rtems_status_code status; - - printf( "\n\n*** SAMPLE MULTIPROCESSOR APPLICATION ***\n" ); - printf( "Creating and starting an application task\n" ); - task_name = rtems_build_name( 'T', 'A', '1', ' ' ); - status = rtems_task_create( task_name, 1, 1024, - RTEMS_INTERRUPT_LEVEL(0), RTEMS_DEFAULT_ATTRIBUTES, &tid ); - status = rtems_task_start( tid, Application_task, Mp_conf_addr.node ); - status = rtems_task_delete( RTEMS_SELF ); -} diff --git a/testsuites/samples/base_mp/node1/base_mp.doc b/testsuites/samples/base_mp/node1/base_mp.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/samples/base_mp/node1/base_mp.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/samples/base_mp/node1/base_mp.scn b/testsuites/samples/base_mp/node1/base_mp.scn deleted file mode 100644 index a2d2f359be..0000000000 --- a/testsuites/samples/base_mp/node1/base_mp.scn +++ /dev/null @@ -1,5 +0,0 @@ -*** SAMPLE MULTIPROCESSOR APPLICATION *** -Creating and starting an application task -This task was invoked with the node argument (1) -This task has the id of 0x10002 -*** END OF SAMPLE MULTIPROCESSOR APPLICATION *** diff --git a/testsuites/samples/base_mp/node2/base_mp.doc b/testsuites/samples/base_mp/node2/base_mp.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/samples/base_mp/node2/base_mp.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/samples/base_mp/node2/base_mp.scn b/testsuites/samples/base_mp/node2/base_mp.scn deleted file mode 100644 index 95bc96a808..0000000000 --- a/testsuites/samples/base_mp/node2/base_mp.scn +++ /dev/null @@ -1,5 +0,0 @@ -*** SAMPLE MULTIPROCESSOR APPLICATION *** -Creating and starting an application task -This task was invoked with the node argument (2) -This task has the id of 0x20002 -*** END OF SAMPLE MULTIPROCESSOR APPLICATION *** diff --git a/testsuites/samples/base_mp/system.h b/testsuites/samples/base_mp/system.h deleted file mode 100644 index 47347fe30a..0000000000 --- a/testsuites/samples/base_mp/system.h +++ /dev/null @@ -1,31 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stdio.h" -#include "libcsupport.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/samples/base_sp/apptask.c b/testsuites/samples/base_sp/apptask.c deleted file mode 100644 index c238d356a6..0000000000 --- a/testsuites/samples/base_sp/apptask.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Application_task - * - * This routine is as an example of an application task which - * prints a message including its RTEMS task id. This task - * then invokes exit to return to the monitor. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "libcsupport.h" - -rtems_task Application_task( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - - printf( "Application task was invoked with argument (%d) " - "and has id of 0x%x\n", argument, tid ); - - printf( "*** END OF SAMPLE SINGLE PROCESSOR APPLICATION ***\n" ); - exit( 0 ); -} diff --git a/testsuites/samples/base_sp/base_sp.doc b/testsuites/samples/base_sp/base_sp.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/samples/base_sp/base_sp.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/samples/base_sp/base_sp.scn b/testsuites/samples/base_sp/base_sp.scn deleted file mode 100644 index 117ddaecb8..0000000000 --- a/testsuites/samples/base_sp/base_sp.scn +++ /dev/null @@ -1,5 +0,0 @@ -*** SAMPLE SINGLE PROCESSOR APPLICATION *** -Creating and starting an application task -Application task was invoked with argument (0) and has id of 0x10002 -*** END OF SAMPLE SINGLE PROCESSOR APPLICATION *** - diff --git a/testsuites/samples/base_sp/init.c b/testsuites/samples/base_sp/init.c deleted file mode 100644 index 8c5a533074..0000000000 --- a/testsuites/samples/base_sp/init.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the application, the current time might be - * set by this task. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -#define ARGUMENT 0 - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_name task_name; - rtems_id tid; - rtems_status_code status; - - printf( "\n\n*** SAMPLE SINGLE PROCESSOR APPLICATION ***\n" ); - printf( "Creating and starting an application task\n" ); - - task_name = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( task_name, 1, 1024, - RTEMS_INTERRUPT_LEVEL(0), RTEMS_DEFAULT_ATTRIBUTES, &tid ); - - status = rtems_task_start( tid, Application_task, ARGUMENT ); - - status = rtems_task_delete( RTEMS_SELF ); -} diff --git a/testsuites/samples/base_sp/system.h b/testsuites/samples/base_sp/system.h deleted file mode 100644 index 88e60beb9a..0000000000 --- a/testsuites/samples/base_sp/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stdio.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/samples/cdtest/cdtest.scn b/testsuites/samples/cdtest/cdtest.scn deleted file mode 100644 index a832a72372..0000000000 --- a/testsuites/samples/cdtest/cdtest.scn +++ /dev/null @@ -1,31 +0,0 @@ -Hey I'm in base class constructor number 1 for 0x400010cc. -Hey I'm in base class constructor number 2 for 0x400010d4. -Hey I'm in derived class constructor number 3 for 0x400010d4. - - -*** CONSTRUCTOR/DESTRUCTOR TEST *** -Hey I'm in base class constructor number 4 for 0x4009ee08. -Hey I'm in base class constructor number 5 for 0x4009ee10. -Hey I'm in base class constructor number 6 for 0x4009ee18. -Hey I'm in base class constructor number 7 for 0x4009ee20. -Hey I'm in derived class constructor number 8 for 0x4009ee20. -Testing a C++ I/O stream -Hey I'm in derived class destructor number 8 for 0x4009ee20. -Derived class - Instantiation order 8 -Hey I'm in base class destructor number 7 for 0x4009ee20. -Instantiation order 8 -Hey I'm in base class destructor number 6 for 0x4009ee18. -Instantiation order 6 -Hey I'm in base class destructor number 5 for 0x4009ee10. -Instantiation order 5 -Hey I'm in base class destructor number 4 for 0x4009ee08. -Instantiation order 5 -*** END OF CONSTRUCTOR/DESTRUCTOR TEST *** - - -Hey I'm in derived class destructor number 3 for 0x400010d4. -Derived class - Instantiation order 3 -Hey I'm in base class destructor number 2 for 0x400010d4. -Instantiation order 3 -Hey I'm in base class destructor number 1 for 0x400010cc. -Instantiation order 1 diff --git a/testsuites/samples/cdtest/init.c b/testsuites/samples/cdtest/init.c deleted file mode 100644 index c233918d61..0000000000 --- a/testsuites/samples/cdtest/init.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" -#include -#include "libcsupport.h" diff --git a/testsuites/samples/cdtest/main.cc b/testsuites/samples/cdtest/main.cc deleted file mode 100644 index 1a12431701..0000000000 --- a/testsuites/samples/cdtest/main.cc +++ /dev/null @@ -1,146 +0,0 @@ -/* main - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1994 by Division Incorporated - * - * Based in part on OAR works. - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of Division Incorporated not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Division Incorporated makes no representations about the - * suitability of this software for any purpose. - * - * $Id$ - */ - -#include -#include -#include -#include - -extern "C" { -extern rtems_task main_task(rtems_task_argument); -} - -static int num_inst = 0; - -class A { -public: - A(void) - { - num_inst++; - printf( - "Hey I'm in base class constructor number %d for %p.\n", - num_inst, - this - ); - - /* - * Make sure we use some space - */ - - string = new char[50]; - sprintf(string, "Instantiation order %d", num_inst); - }; - - virtual ~A() - { - printf( - "Hey I'm in base class destructor number %d for %p.\n", - num_inst, - this - ); - print(); - num_inst--; - }; - - virtual void print() { printf("%s\n", string); }; - -protected: - char *string; -}; - -class B : public A { -public: - B(void) - { - num_inst++; - printf( - "Hey I'm in derived class constructor number %d for %p.\n", - num_inst, - this - ); - - /* - * Make sure we use some space - */ - - string = new char[50]; - sprintf(string, "Instantiation order %d", num_inst); - }; - - ~B() - { - printf( - "Hey I'm in derived class destructor number %d for %p.\n", - num_inst, - this - ); - print(); - num_inst--; - }; - - void print() { printf("Derived class - %s\n", string); } -}; - - -A foo; -B foobar; - -void -cdtest(void) -{ - A bar, blech, blah; - B bleak; - - cout << "Testing a C++ I/O stream" << endl; - - bar = blech; -} - -// -// main equivalent -// It can not be called 'main' since the bsp owns that name -// in many implementations in order to get global constructors -// run. -// -// Ref: c/src/lib/libbsp/hppa1_1/simhppa/startup/bspstart.c -// - - -rtems_task main_task( - rtems_task_argument ignored -) -{ - printf( "\n\n*** CONSTRUCTOR/DESTRUCTOR TEST ***\n" ); - - cdtest(); - - printf( "*** END OF CONSTRUCTOR/DESTRUCTOR TEST ***\n\n\n" ); - - exit(0); -} diff --git a/testsuites/samples/cdtest/system.h b/testsuites/samples/cdtest/system.h deleted file mode 100644 index 88e60beb9a..0000000000 --- a/testsuites/samples/cdtest/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stdio.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/samples/hello/hello.doc b/testsuites/samples/hello/hello.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/samples/hello/hello.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/samples/hello/hello.scn b/testsuites/samples/hello/hello.scn deleted file mode 100644 index d9e92d81d5..0000000000 --- a/testsuites/samples/hello/hello.scn +++ /dev/null @@ -1,3 +0,0 @@ -*** HELLO WORLD TEST *** -Hello World -*** END OF HELLO WORLD TEST *** diff --git a/testsuites/samples/hello/init.c b/testsuites/samples/hello/init.c deleted file mode 100644 index f85562c238..0000000000 --- a/testsuites/samples/hello/init.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" -#include -#include "libcsupport.h" - - -rtems_task Init( - rtems_task_argument ignored -) -{ - printf( "\n\n*** HELLO WORLD TEST ***\n" ); - printf( "Hello World\n" ); - printf( "*** END OF HELLO WORLD TEST ***\n" ); - exit( 0 ); -} diff --git a/testsuites/samples/hello/system.h b/testsuites/samples/hello/system.h deleted file mode 100644 index 88e60beb9a..0000000000 --- a/testsuites/samples/hello/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stdio.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/samples/paranoia/init.c b/testsuites/samples/paranoia/init.c deleted file mode 100644 index 4e9c9cde09..0000000000 --- a/testsuites/samples/paranoia/init.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" -#include "libcsupport.h" - -extern int paranoia(int, char **); - -char *args[2] = { "paranoia", 0 }; - -rtems_task Init( - rtems_task_argument ignored -) -{ - printf( "\n\n*** PARANOIA TEST ***\n" ); - paranoia(1, args); - printf( "*** END OF PARANOIA TEST ***\n" ); - exit( 0 ); -} diff --git a/testsuites/samples/paranoia/paranoia.c b/testsuites/samples/paranoia/paranoia.c deleted file mode 100644 index 64ebdc7e5e..0000000000 --- a/testsuites/samples/paranoia/paranoia.c +++ /dev/null @@ -1,2300 +0,0 @@ -/* - * RTEMS RCS Id: $Id$ - * - * A C version of Kahan's Floating Point Test "Paranoia" - * - * Thos Sumner, UCSF, Feb. 1985 - * David Gay, BTL, Jan. 1986 - * - * This is a rewrite from the Pascal version by - * - * B. A. Wichmann, 18 Jan. 1985 - * - * (and does NOT exhibit good C programming style). - * - * Sun May 16 18:21:51 MDT 1993 Jeffrey Wheat (cassidy@cygnus.com) - * Removed KR_headers defines, removed ANSI prototyping - * Cleaned up and reformated code. Added special CYGNUS - * "verbose" mode type messages (-DCYGNUS). - * Note: This code is VERY NASTY. - * - * Adjusted to use Standard C headers 19 Jan. 1992 (dmg); - * compile with -DKR_headers or insert - * #define KR_headers - * at the beginning if you have an old-style C compiler. - * - * (C) Apr 19 1983 in BASIC version by: - * Professor W. M. Kahan, - * 567 Evans Hall - * Electrical Engineering & Computer Science Dept. - * University of California - * Berkeley, California 94720 - * USA - * - * converted to Pascal by: - * B. A. Wichmann - * National Physical Laboratory - * Teddington Middx - * TW11 OLW - * UK - * - * converted to C by: - * - * David M. Gay and Thos Sumner - * AT&T Bell Labs Computer Center, Rm. U-76 - * 600 Mountain Avenue University of California - * Murray Hill, NJ 07974 San Francisco, CA 94143 - * USA USA - * - * with simultaneous corrections to the Pascal source (reflected - * in the Pascal source available over netlib). - * [A couple of bug fixes from dgh = sun!dhough incorporated 31 July 1986.] - * - * Reports of results on various systems from all the versions - * of Paranoia are being collected by Richard Karpinski at the - * same address as Thos Sumner. This includes sample outputs, - * bug reports, and criticisms. - * - * You may copy this program freely if you acknowledge its source. - * Comments on the Pascal version to NPL, please. - * - * - * The C version catches signals from floating-point exceptions. - * If signal(SIGFPE,...) is unavailable in your environment, you may - * #define NOSIGNAL to comment out the invocations of signal. - * - * This source file is too big for some C compilers, but may be split - * into pieces. Comments containing "SPLIT" suggest convenient places - * for this splitting. At the end of these comments is an "ed script" - * (for the UNIX(tm) editor ed) that will do this splitting. - * - * By #defining SINGLE_PRECISION when you compile this source, you may - * obtain a single-precision C version of Paranoia. - * - * The following is from the introductory commentary from Wichmann's work: - * - * The BASIC program of Kahan is written in Microsoft BASIC using many - * facilities which have no exact analogy in Pascal. The Pascal - * version below cannot therefore be exactly the same. Rather than be - * a minimal transcription of the BASIC program, the Pascal coding - * follows the conventional style of block-structured languages. Hence - * the Pascal version could be useful in producing versions in other - * structured languages. - * - * Rather than use identifiers of minimal length (which therefore have - * little mnemonic significance), the Pascal version uses meaningful - * identifiers as follows [Note: A few changes have been made for C]: - * - * - * BASIC C BASIC C BASIC C - * - * A J S StickyBit - * A1 AInverse J0 NoErrors T - * B Radix [Failure] T0 Underflow - * B1 BInverse J1 NoErrors T2 ThirtyTwo - * B2 RadixD2 [SeriousDefect] T5 OneAndHalf - * B9 BMinusU2 J2 NoErrors T7 TwentySeven - * C [Defect] T8 TwoForty - * C1 CInverse J3 NoErrors U OneUlp - * D [Flaw] U0 UnderflowThreshold - * D4 FourD K PageNo U1 - * E0 L Milestone U2 - * E1 M V - * E2 Exp2 N V0 - * E3 N1 V8 - * E5 MinSqEr O Zero V9 - * E6 SqEr O1 One W - * E7 MaxSqEr O2 Two X - * E8 O3 Three X1 - * E9 O4 Four X8 - * F1 MinusOne O5 Five X9 Random1 - * F2 Half O8 Eight Y - * F3 Third O9 Nine Y1 - * F6 P Precision Y2 - * F9 Q Y9 Random2 - * G1 GMult Q8 Z - * G2 GDiv Q9 Z0 PseudoZero - * G3 GAddSub R Z1 - * H R1 RMult Z2 - * H1 HInverse R2 RDiv Z9 - * I R3 RAddSub - * IO NoTrials R4 RSqrt - * I3 IEEE R9 Random9 - * - * SqRWrng - * - * All the variables in BASIC are true variables and in consequence, - * the program is more difficult to follow since the "constants" must - * be determined (the glossary is very helpful). The Pascal version - * uses Real constants, but checks are added to ensure that the values - * are correctly converted by the compiler. - * - * The major textual change to the Pascal version apart from the - * identifiersis that named procedures are used, inserting parameters - * wherehelpful. New procedures are also introduced. The - * correspondence is as follows: - * - * - * BASIC Pascal - * lines - * - * 90- 140 Pause - * 170- 250 Instructions - * 380- 460 Heading - * 480- 670 Characteristics - * 690- 870 History - * 2940-2950 Random - * 3710-3740 NewD - * 4040-4080 DoesYequalX - * 4090-4110 PrintIfNPositive - * 4640-4850 TestPartialUnderflow - * -*/ - -#include -#include - -/* - * To compile this on host using only libm from newlib (and using host libc) - * do: - * gcc -g -DNEED_REENT -DCYGNUS paranoia.c .../newlib-1.6/newlib/libm.a - */ - -#ifdef NEED_REENT -#include "reent.h" -struct _reent libm_reent = _REENT_INIT(libm_reent); -struct _reent *_impure_ptr = &libm_reent; -#endif - -#ifndef NOSIGNAL -#include -#include -#else /* NOSIGNAL */ -#define longjmp(e,v) -#define setjmp(e) 0 -#define jmp_buf int -#endif /* NOSIGNAL */ - -#ifdef SINGLE_PRECISION -#define FLOAT float -#define FABS(x) (float)fabs((double)(x)) -#define FLOOR(x) (float)floor((double)(x)) -#define LOG(x) (float)log((double)(x)) -#define POW(x,y) (float)pow((double)(x),(double)(y)) -#define SQRT(x) (float)sqrt((double)(x)) -#else /* !SINGLE_PRECISION */ -#define FLOAT double -#define FABS(x) fabs(x) -#define FLOOR(x) floor(x) -#define LOG(x) log(x) -#define POW(x,y) pow(x,y) -#define SQRT(x) sqrt(x) -#endif /* SINGLE_PRECISION */ - -jmp_buf ovfl_buf; -extern double fabs (), floor (), log (), pow (), sqrt (); -extern void exit (); -typedef void (*Sig_type) (); -FLOAT Sign (), Random (); -extern void BadCond (); -extern void SqXMinX (); -extern void TstCond (); -extern void notify (); -extern int read (); -extern void Characteristics (); -extern void Heading (); -extern void History (); -extern void Instructions (); -extern void IsYeqX (); -extern void NewD (); -extern void Pause (); -extern void PrintIfNPositive (); -extern void SR3750 (); -extern void SR3980 (); -extern void TstPtUf (); - -Sig_type sigsave; - -#define KEYBOARD 0 - -FLOAT Radix, BInvrse, RadixD2, BMinusU2; - -/*Small floating point constants.*/ -FLOAT Zero = 0.0; -FLOAT Half = 0.5; -FLOAT One = 1.0; -FLOAT Two = 2.0; -FLOAT Three = 3.0; -FLOAT Four = 4.0; -FLOAT Five = 5.0; -FLOAT Eight = 8.0; -FLOAT Nine = 9.0; -FLOAT TwentySeven = 27.0; -FLOAT ThirtyTwo = 32.0; -FLOAT TwoForty = 240.0; -FLOAT MinusOne = -1.0; -FLOAT OneAndHalf = 1.5; - -/*Integer constants*/ -int NoTrials = 20; /*Number of tests for commutativity. */ -#define False 0 -#define True 1 - -/* - * Definitions for declared types - * Guard == (Yes, No); - * Rounding == (Chopped, Rounded, Other); - * Message == packed array [1..40] of char; - * Class == (Flaw, Defect, Serious, Failure); - */ -#define Yes 1 -#define No 0 -#define Chopped 2 -#define Rounded 1 -#define Other 0 -#define Flaw 3 -#define Defect 2 -#define Serious 1 -#define Failure 0 -typedef int Guard, Rounding, Class; -typedef char Message; - -/* Declarations of Variables */ -int Indx; -char ch[8]; -FLOAT AInvrse, A1; -FLOAT C, CInvrse; -FLOAT D, FourD; -FLOAT E0, E1, Exp2, E3, MinSqEr; -FLOAT SqEr, MaxSqEr, E9; -FLOAT Third; -FLOAT F6, F9; -FLOAT H, HInvrse; -int I; -FLOAT StickyBit, J; -FLOAT MyZero; -FLOAT Precision; -FLOAT Q, Q9; -FLOAT R, Random9; -FLOAT T, Underflow, S; -FLOAT OneUlp, UfThold, U1, U2; -FLOAT V, V0, V9; -FLOAT W; -FLOAT X, X1, X2, X8, Random1; -FLOAT Y, Y1, Y2, Random2; -FLOAT Z, PseudoZero, Z1, Z2, Z9; -int ErrCnt[4]; -int fpecount; -int Milestone; -int PageNo; -int M, N, N1; -Guard GMult, GDiv, GAddSub; -Rounding RMult, RDiv, RAddSub, RSqrt; -int Break, Done, NotMonot, Monot, Anomaly, IEEE, SqRWrng, UfNGrad; - -/* Computed constants. - * U1 gap below 1.0, i.e, 1.0 - U1 is next number below 1.0 - * U2 gap above 1.0, i.e, 1.0 + U2 is next number above 1.0 - */ - -int batchmode; /* global batchmode test */ - -/* program name and version variables and macro */ -char *temp; -char *program_name; -char *program_vers; - -#ifndef VERSION -#define VERSION "1.1 [cygnus]" -#endif /* VERSION */ - -#define basename(cp) ((temp=(char *)strrchr((cp), '/')) ? temp+1 : (cp)) - -#ifndef BATCHMODE -# ifdef CYGNUS -# define BATCHMODE -# endif -#endif - -/* floating point exception receiver */ -void -_sigfpe (x) -int x; -{ - fpecount++; - printf ("\n* * * FLOATING-POINT ERROR %d * * *\n", x); - fflush (stdout); - if (sigsave) { -#ifndef NOSIGNAL - signal (SIGFPE, sigsave); -#endif /* NOSIGNAL */ - sigsave = 0; - longjmp (ovfl_buf, 1); - } - exit (1); -} - -#ifdef NOMAIN -#define main paranoia -#endif - -int -main (argc, argv) -int argc; -char **argv; -{ - /* First two assignments use integer right-hand sides. */ - Zero = 0; - One = 1; - Two = One + One; - Three = Two + One; - Four = Three + One; - Five = Four + One; - Eight = Four + Four; - Nine = Three * Three; - TwentySeven = Nine * Three; - ThirtyTwo = Four * Eight; - TwoForty = Four * Five * Three * Four; - MinusOne = -One; - Half = One / Two; - OneAndHalf = One + Half; - ErrCnt[Failure] = 0; - ErrCnt[Serious] = 0; - ErrCnt[Defect] = 0; - ErrCnt[Flaw] = 0; - PageNo = 1; - -#ifdef BATCHMODE - batchmode = 1; /* run test in batchmode? */ -#else /* !BATCHMODE */ - batchmode = 0; /* run test interactively */ -#endif /* BATCHMODE */ - - program_name = basename (argv[0]); - program_vers = VERSION; - - printf ("%s version %s\n", program_name, program_vers); - - /*=============================================*/ - Milestone = 0; - /*=============================================*/ -#ifndef NOSIGNAL - signal (SIGFPE, _sigfpe); -#endif - - if (!batchmode) { - Instructions (); - Pause (); - Heading (); - Instructions (); - Pause (); - Heading (); - Pause (); - Characteristics (); - Pause (); - History (); - Pause (); - } - - /*=============================================*/ - Milestone = 7; - /*=============================================*/ - printf ("Program is now RUNNING tests on small integers:\n"); - TstCond (Failure, (Zero + Zero == Zero) && (One - One == Zero) - && (One > Zero) && (One + One == Two), - "0+0 != 0, 1-1 != 0, 1 <= 0, or 1+1 != 2"); - Z = -Zero; - if (Z != 0.0) { - ErrCnt[Failure] = ErrCnt[Failure] + 1; - printf ("Comparison alleges that -0.0 is Non-zero!\n"); - U1 = 0.001; - Radix = 1; - TstPtUf (); - } - TstCond (Failure, (Three == Two + One) && (Four == Three + One) - && (Four + Two * (-Two) == Zero) - && (Four - Three - One == Zero), - "3 != 2+1, 4 != 3+1, 4+2*(-2) != 0, or 4-3-1 != 0"); - TstCond (Failure, (MinusOne == (0 - One)) - && (MinusOne + One == Zero) && (One + MinusOne == Zero) - && (MinusOne + FABS (One) == Zero) - && (MinusOne + MinusOne * MinusOne == Zero), - "-1+1 != 0, (-1)+abs(1) != 0, or -1+(-1)*(-1) != 0"); - TstCond (Failure, Half + MinusOne + Half == Zero, - "1/2 + (-1) + 1/2 != 0"); - /*=============================================*/ - Milestone = 10; - /*=============================================*/ - TstCond (Failure, (Nine == Three * Three) - && (TwentySeven == Nine * Three) && (Eight == Four + Four) - && (ThirtyTwo == Eight * Four) - && (ThirtyTwo - TwentySeven - Four - One == Zero), - "9 != 3*3, 27 != 9*3, 32 != 8*4, or 32-27-4-1 != 0"); - TstCond (Failure, (Five == Four + One) && - (TwoForty == Four * Five * Three * Four) - && (TwoForty / Three - Four * Four * Five == Zero) - && (TwoForty / Four - Five * Three * Four == Zero) - && (TwoForty / Five - Four * Three * Four == Zero), - "5 != 4+1, 240/3 != 80, 240/4 != 60, or 240/5 != 48"); - if (ErrCnt[Failure] == 0) { - printf ("-1, 0, 1/2, 1, 2, 3, 4, 5, 9, 27, 32 & 240 are O.K.\n"); - printf ("\n"); - } - printf ("Searching for Radix and Precision.\n"); - W = One; - do { - W = W + W; - Y = W + One; - Z = Y - W; - Y = Z - One; - } - while (MinusOne + FABS (Y) < Zero); - /*.. now W is just big enough that |((W+1)-W)-1| >= 1 ...*/ - Precision = Zero; - Y = One; - do { - Radix = W + Y; - Y = Y + Y; - Radix = Radix - W; - } - while (Radix == Zero); - if (Radix < Two) - Radix = One; - printf ("Radix = %f .\n", Radix); - if (Radix != 1) { - W = One; - do { - Precision = Precision + One; - W = W * Radix; - Y = W + One; - } - while ((Y - W) == One); - } - /*... now W == Radix^Precision is barely too big to satisfy (W+1)-W == 1 - ...*/ - U1 = One / W; - U2 = Radix * U1; - printf ("Closest relative separation found is U1 = %.7e .\n\n", U1); - printf ("Recalculating radix and precision\n "); - - /*save old values*/ - E0 = Radix; - E1 = U1; - E9 = U2; - E3 = Precision; - - X = Four / Three; - Third = X - One; - F6 = Half - Third; - X = F6 + F6; - X = FABS (X - Third); - if (X < U2) - X = U2; - - /*... now X = (unknown no.) ulps of 1+...*/ - do { - U2 = X; - Y = Half * U2 + ThirtyTwo * U2 * U2; - Y = One + Y; - X = Y - One; - } - while (!((U2 <= X) || (X <= Zero))); - - /*... now U2 == 1 ulp of 1 + ... */ - X = Two / Three; - F6 = X - Half; - Third = F6 + F6; - X = Third - Half; - X = FABS (X + F6); - if (X < U1) - X = U1; - - /*... now X == (unknown no.) ulps of 1 -... */ - do { - U1 = X; - Y = Half * U1 + ThirtyTwo * U1 * U1; - Y = Half - Y; - X = Half + Y; - Y = Half - X; - X = Half + Y; - } - while (!((U1 <= X) || (X <= Zero))); - /*... now U1 == 1 ulp of 1 - ... */ - if (U1 == E1) - printf ("confirms closest relative separation U1 .\n"); - else - printf ("gets better closest relative separation U1 = %.7e .\n", U1); - W = One / U1; - F9 = (Half - U1) + Half; - Radix = FLOOR (0.01 + U2 / U1); - if (Radix == E0) - printf ("Radix confirmed.\n"); - else - printf ("MYSTERY: recalculated Radix = %.7e .\n", Radix); - TstCond (Defect, Radix <= Eight + Eight, - "Radix is too big: roundoff problems"); - TstCond (Flaw, (Radix == Two) || (Radix == 10) - || (Radix == One), "Radix is not as good as 2 or 10"); - /*=============================================*/ - Milestone = 20; - /*=============================================*/ - TstCond (Failure, F9 - Half < Half, - "(1-U1)-1/2 < 1/2 is FALSE, prog. fails?"); - X = F9; - I = 1; - Y = X - Half; - Z = Y - Half; - TstCond (Failure, (X != One) - || (Z == Zero), "Comparison is fuzzy,X=1 but X-1/2-1/2 != 0"); - X = One + U2; - I = 0; - /*=============================================*/ - Milestone = 25; - /*=============================================*/ - /*... BMinusU2 = nextafter(Radix, 0) */ - BMinusU2 = Radix - One; - BMinusU2 = (BMinusU2 - U2) + One; - /* Purify Integers */ - if (Radix != One) { - X = -TwoForty * LOG (U1) / LOG (Radix); - Y = FLOOR (Half + X); - if (FABS (X - Y) * Four < One) - X = Y; - Precision = X / TwoForty; - Y = FLOOR (Half + Precision); - if (FABS (Precision - Y) * TwoForty < Half) - Precision = Y; - } - if ((Precision != FLOOR (Precision)) || (Radix == One)) { - printf ("Precision cannot be characterized by an Integer number\n"); - printf ("of significant digits but, by itself, this is a minor flaw.\n"); - } - if (Radix == One) - printf ("logarithmic encoding has precision characterized solely by U1.\n"); - else - printf ("The number of significant digits of the Radix is %f .\n", - Precision); - TstCond (Serious, U2 * Nine * Nine * TwoForty < One, - "Precision worse than 5 decimal figures "); - /*=============================================*/ - Milestone = 30; - /*=============================================*/ - /* Test for extra-precise subepressions */ - X = FABS (((Four / Three - One) - One / Four) * Three - One / Four); - do { - Z2 = X; - X = (One + (Half * Z2 + ThirtyTwo * Z2 * Z2)) - One; - } - while (!((Z2 <= X) || (X <= Zero))); - X = Y = Z = FABS ((Three / Four - Two / Three) * Three - One / Four); - do { - Z1 = Z; - Z = (One / Two - ((One / Two - (Half * Z1 + ThirtyTwo * Z1 * Z1)) - + One / Two)) + One / Two; - } - while (!((Z1 <= Z) || (Z <= Zero))); - do { - do { - Y1 = Y; - Y = (Half - ((Half - (Half * Y1 + ThirtyTwo * Y1 * Y1)) + Half - )) + Half; - } - while (!((Y1 <= Y) || (Y <= Zero))); - X1 = X; - X = ((Half * X1 + ThirtyTwo * X1 * X1) - F9) + F9; - } - while (!((X1 <= X) || (X <= Zero))); - if ((X1 != Y1) || (X1 != Z1)) { - BadCond (Serious, "Disagreements among the values X1, Y1, Z1,\n"); - printf ("respectively %.7e, %.7e, %.7e,\n", X1, Y1, Z1); - printf ("are symptoms of inconsistencies introduced\n"); - printf ("by extra-precise evaluation of arithmetic subexpressions.\n"); - notify ("Possibly some part of this"); - if ((X1 == U1) || (Y1 == U1) || (Z1 == U1)) - printf ( - "That feature is not tested further by this program.\n"); - } else { - if ((Z1 != U1) || (Z2 != U2)) { - if ((Z1 >= U1) || (Z2 >= U2)) { - BadCond (Failure, ""); - notify ("Precision"); - printf ("\tU1 = %.7e, Z1 - U1 = %.7e\n", U1, Z1 - U1); - printf ("\tU2 = %.7e, Z2 - U2 = %.7e\n", U2, Z2 - U2); - } else { - if ((Z1 <= Zero) || (Z2 <= Zero)) { - printf ("Because of unusual Radix = %f", Radix); - printf (", or exact rational arithmetic a result\n"); - printf ("Z1 = %.7e, or Z2 = %.7e ", Z1, Z2); - notify ("of an\nextra-precision"); - } - if (Z1 != Z2 || Z1 > Zero) { - X = Z1 / U1; - Y = Z2 / U2; - if (Y > X) - X = Y; - Q = -LOG (X); - printf ("Some subexpressions appear to be calculated extra\n"); - printf ("precisely with about %g extra B-digits, i.e.\n", - (Q / LOG (Radix))); - printf ("roughly %g extra significant decimals.\n", - Q / LOG (10.)); - } - printf ("That feature is not tested further by this program.\n"); - } - } - } - Pause (); - /*=============================================*/ - Milestone = 35; - /*=============================================*/ - if (Radix >= Two) { - X = W / (Radix * Radix); - Y = X + One; - Z = Y - X; - T = Z + U2; - X = T - Z; - TstCond (Failure, X == U2, - "Subtraction is not normalized X=Y,X+Z != Y+Z!"); - if (X == U2) - printf ( - "Subtraction appears to be normalized, as it should be."); - } - printf ("\nChecking for guard digit in *, /, and -.\n"); - Y = F9 * One; - Z = One * F9; - X = F9 - Half; - Y = (Y - Half) - X; - Z = (Z - Half) - X; - X = One + U2; - T = X * Radix; - R = Radix * X; - X = T - Radix; - X = X - Radix * U2; - T = R - Radix; - T = T - Radix * U2; - X = X * (Radix - One); - T = T * (Radix - One); - if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T == Zero)) - GMult = Yes; - else { - GMult = No; - TstCond (Serious, False, - "* lacks a Guard Digit, so 1*X != X"); - } - Z = Radix * U2; - X = One + Z; - Y = FABS ((X + Z) - X * X) - U2; - X = One - U2; - Z = FABS ((X - U2) - X * X) - U1; - TstCond (Failure, (Y <= Zero) - && (Z <= Zero), "* gets too many final digits wrong.\n"); - Y = One - U2; - X = One + U2; - Z = One / Y; - Y = Z - X; - X = One / Three; - Z = Three / Nine; - X = X - Z; - T = Nine / TwentySeven; - Z = Z - T; - TstCond (Defect, X == Zero && Y == Zero && Z == Zero, - "Division lacks a Guard Digit, so error can exceed 1 ulp\n\ -or 1/3 and 3/9 and 9/27 may disagree"); - Y = F9 / One; - X = F9 - Half; - Y = (Y - Half) - X; - X = One + U2; - T = X / One; - X = T - X; - if ((X == Zero) && (Y == Zero) && (Z == Zero)) - GDiv = Yes; - else { - GDiv = No; - TstCond (Serious, False, - "Division lacks a Guard Digit, so X/1 != X"); - } - X = One / (One + U2); - Y = X - Half - Half; - TstCond (Serious, Y < Zero, - "Computed value of 1/1.000..1 >= 1"); - X = One - U2; - Y = One + Radix * U2; - Z = X * Radix; - T = Y * Radix; - R = Z / Radix; - StickyBit = T / Radix; - X = R - X; - Y = StickyBit - Y; - TstCond (Failure, X == Zero && Y == Zero, - "* and/or / gets too many last digits wrong"); - Y = One - U1; - X = One - F9; - Y = One - Y; - T = Radix - U2; - Z = Radix - BMinusU2; - T = Radix - T; - if ((X == U1) && (Y == U1) && (Z == U2) && (T == U2)) - GAddSub = Yes; - else { - GAddSub = No; - TstCond (Serious, False, - "- lacks Guard Digit, so cancellation is obscured"); - } - if (F9 != One && F9 - One >= Zero) { - BadCond (Serious, "comparison alleges (1-U1) < 1 although\n"); - printf (" subtraction yields (1-U1) - 1 = 0 , thereby vitiating\n"); - printf (" such precautions against division by zero as\n"); - printf (" ... if (X == 1.0) {.....} else {.../(X-1.0)...}\n"); - } - if (GMult == Yes && GDiv == Yes && GAddSub == Yes) - printf ( - " *, /, and - appear to have guard digits, as they should.\n"); - /*=============================================*/ - Milestone = 40; - /*=============================================*/ - Pause (); - printf ("Checking rounding on multiply, divide and add/subtract.\n"); - RMult = Other; - RDiv = Other; - RAddSub = Other; - RadixD2 = Radix / Two; - A1 = Two; - Done = False; - do { - AInvrse = Radix; - do { - X = AInvrse; - AInvrse = AInvrse / A1; - } - while (!(FLOOR (AInvrse) != AInvrse)); - Done = (X == One) || (A1 > Three); - if (!Done) - A1 = Nine + One; - } - while (!(Done)); - if (X == One) - A1 = Radix; - AInvrse = One / A1; - X = A1; - Y = AInvrse; - Done = False; - do { - Z = X * Y - Half; - TstCond (Failure, Z == Half, - "X * (1/X) differs from 1"); - Done = X == Radix; - X = Radix; - Y = One / X; - } - while (!(Done)); - Y2 = One + U2; - Y1 = One - U2; - X = OneAndHalf - U2; - Y = OneAndHalf + U2; - Z = (X - U2) * Y2; - T = Y * Y1; - Z = Z - X; - T = T - X; - X = X * Y2; - Y = (Y + U2) * Y1; - X = X - OneAndHalf; - Y = Y - OneAndHalf; - if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T <= Zero)) { - X = (OneAndHalf + U2) * Y2; - Y = OneAndHalf - U2 - U2; - Z = OneAndHalf + U2 + U2; - T = (OneAndHalf - U2) * Y1; - X = X - (Z + U2); - StickyBit = Y * Y1; - S = Z * Y2; - T = T - Y; - Y = (U2 - Y) + StickyBit; - Z = S - (Z + U2 + U2); - StickyBit = (Y2 + U2) * Y1; - Y1 = Y2 * Y1; - StickyBit = StickyBit - Y2; - Y1 = Y1 - Half; - if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T == Zero) - && (StickyBit == Zero) && (Y1 == Half)) { - RMult = Rounded; - printf ("Multiplication appears to round correctly.\n"); - } else if ((X + U2 == Zero) && (Y < Zero) && (Z + U2 == Zero) - && (T < Zero) && (StickyBit + U2 == Zero) - && (Y1 < Half)) { - RMult = Chopped; - printf ("Multiplication appears to chop.\n"); - } else - printf ("* is neither chopped nor correctly rounded.\n"); - if ((RMult == Rounded) && (GMult == No)) - notify ("Multiplication"); - } else - printf ("* is neither chopped nor correctly rounded.\n"); - /*=============================================*/ - Milestone = 45; - /*=============================================*/ - Y2 = One + U2; - Y1 = One - U2; - Z = OneAndHalf + U2 + U2; - X = Z / Y2; - T = OneAndHalf - U2 - U2; - Y = (T - U2) / Y1; - Z = (Z + U2) / Y2; - X = X - OneAndHalf; - Y = Y - T; - T = T / Y1; - Z = Z - (OneAndHalf + U2); - T = (U2 - OneAndHalf) + T; - if (!((X > Zero) || (Y > Zero) || (Z > Zero) || (T > Zero))) { - X = OneAndHalf / Y2; - Y = OneAndHalf - U2; - Z = OneAndHalf + U2; - X = X - Y; - T = OneAndHalf / Y1; - Y = Y / Y1; - T = T - (Z + U2); - Y = Y - Z; - Z = Z / Y2; - Y1 = (Y2 + U2) / Y2; - Z = Z - OneAndHalf; - Y2 = Y1 - Y2; - Y1 = (F9 - U1) / F9; - if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T == Zero) - && (Y2 == Zero) && (Y2 == Zero) - && (Y1 - Half == F9 - Half)) { - RDiv = Rounded; - printf ("Division appears to round correctly.\n"); - if (GDiv == No) - notify ("Division"); - } else if ((X < Zero) && (Y < Zero) && (Z < Zero) && (T < Zero) - && (Y2 < Zero) && (Y1 - Half < F9 - Half)) { - RDiv = Chopped; - printf ("Division appears to chop.\n"); - } - } - if (RDiv == Other) - printf ("/ is neither chopped nor correctly rounded.\n"); - BInvrse = One / Radix; - TstCond (Failure, (BInvrse * Radix - Half == Half), - "Radix * ( 1 / Radix ) differs from 1"); - /*=============================================*/ - Milestone = 50; - /*=============================================*/ - TstCond (Failure, ((F9 + U1) - Half == Half) - && ((BMinusU2 + U2) - One == Radix - One), - "Incomplete carry-propagation in Addition"); - X = One - U1 * U1; - Y = One + U2 * (One - U2); - Z = F9 - Half; - X = (X - Half) - Z; - Y = Y - One; - if ((X == Zero) && (Y == Zero)) { - RAddSub = Chopped; - printf ("Add/Subtract appears to be chopped.\n"); - } - if (GAddSub == Yes) { - X = (Half + U2) * U2; - Y = (Half - U2) * U2; - X = One + X; - Y = One + Y; - X = (One + U2) - X; - Y = One - Y; - if ((X == Zero) && (Y == Zero)) { - X = (Half + U2) * U1; - Y = (Half - U2) * U1; - X = One - X; - Y = One - Y; - X = F9 - X; - Y = One - Y; - if ((X == Zero) && (Y == Zero)) { - RAddSub = Rounded; - printf ("Addition/Subtraction appears to round correctly.\n"); - if (GAddSub == No) - notify ("Add/Subtract"); - } else - printf ("Addition/Subtraction neither rounds nor chops.\n"); - } else - printf ("Addition/Subtraction neither rounds nor chops.\n"); - } else - printf ("Addition/Subtraction neither rounds nor chops.\n"); - S = One; - X = One + Half * (One + Half); - Y = (One + U2) * Half; - Z = X - Y; - T = Y - X; - StickyBit = Z + T; - if (StickyBit != Zero) { - S = Zero; - BadCond (Flaw, "(X - Y) + (Y - X) is non zero!\n"); - } - StickyBit = Zero; - if ((GMult == Yes) && (GDiv == Yes) && (GAddSub == Yes) - && (RMult == Rounded) && (RDiv == Rounded) - && (RAddSub == Rounded) && (FLOOR (RadixD2) == RadixD2)) { - printf ("Checking for sticky bit.\n"); - X = (Half + U1) * U2; - Y = Half * U2; - Z = One + Y; - T = One + X; - if ((Z - One <= Zero) && (T - One >= U2)) { - Z = T + Y; - Y = Z - X; - if ((Z - T >= U2) && (Y - T == Zero)) { - X = (Half + U1) * U1; - Y = Half * U1; - Z = One - Y; - T = One - X; - if ((Z - One == Zero) && (T - F9 == Zero)) { - Z = (Half - U1) * U1; - T = F9 - Z; - Q = F9 - Y; - if ((T - F9 == Zero) && (F9 - U1 - Q == Zero)) { - Z = (One + U2) * OneAndHalf; - T = (OneAndHalf + U2) - Z + U2; - X = One + Half / Radix; - Y = One + Radix * U2; - Z = X * Y; - if (T == Zero && X + Radix * U2 - Z == Zero) { - if (Radix != Two) { - X = Two + U2; - Y = X / Two; - if ((Y - One == Zero)) - StickyBit = S; - } else - StickyBit = S; - } - } - } - } - } - } - if (StickyBit == One) - printf ("Sticky bit apparently used correctly.\n"); - else - printf ("Sticky bit used incorrectly or not at all.\n"); - TstCond (Flaw, !(GMult == No || GDiv == No || GAddSub == No || - RMult == Other || RDiv == Other || RAddSub == Other), - "lack(s) of guard digits or failure(s) to correctly round or chop\n\ -(noted above) count as one flaw in the final tally below"); - /*=============================================*/ - Milestone = 60; - /*=============================================*/ - printf ("\n"); - printf ("Does Multiplication commute? "); - printf ("Testing on %d random pairs.\n", NoTrials); - Random9 = SQRT (3.0); - Random1 = Third; - I = 1; - do { - X = Random (); - Y = Random (); - Z9 = Y * X; - Z = X * Y; - Z9 = Z - Z9; - I = I + 1; - } - while (!((I > NoTrials) || (Z9 != Zero))); - if (I == NoTrials) { - Random1 = One + Half / Three; - Random2 = (U2 + U1) + One; - Z = Random1 * Random2; - Y = Random2 * Random1; - Z9 = (One + Half / Three) * ((U2 + U1) + One) - (One + Half / - Three) * ((U2 + U1) + One); - } - if (!((I == NoTrials) || (Z9 == Zero))) - BadCond (Defect, "X * Y == Y * X trial fails.\n"); - else - printf (" No failures found in %d integer pairs.\n", NoTrials); - /*=============================================*/ - Milestone = 70; - /*=============================================*/ - printf ("\nRunning test of square root(x).\n"); - TstCond (Failure, (Zero == SQRT (Zero)) - && (-Zero == SQRT (-Zero)) - && (One == SQRT (One)), "Square root of 0.0, -0.0 or 1.0 wrong"); - MinSqEr = Zero; - MaxSqEr = Zero; - J = Zero; - X = Radix; - OneUlp = U2; - SqXMinX (Serious); - X = BInvrse; - OneUlp = BInvrse * U1; - SqXMinX (Serious); - X = U1; - OneUlp = U1 * U1; - SqXMinX (Serious); - if (J != Zero) - Pause (); - printf ("Testing if sqrt(X * X) == X for %d Integers X.\n", NoTrials); - J = Zero; - X = Two; - Y = Radix; - if ((Radix != One)) - do { - X = Y; - Y = Radix * Y; - } - while (!((Y - X >= NoTrials))); - OneUlp = X * U2; - I = 1; - while (I <= NoTrials) { - X = X + One; - SqXMinX (Defect); - if (J > Zero) - break; - I = I + 1; - } - printf ("Test for sqrt monotonicity.\n"); - I = -1; - X = BMinusU2; - Y = Radix; - Z = Radix + Radix * U2; - NotMonot = False; - Monot = False; - while (!(NotMonot || Monot)) { - I = I + 1; - X = SQRT (X); - Q = SQRT (Y); - Z = SQRT (Z); - if ((X > Q) || (Q > Z)) - NotMonot = True; - else { - Q = FLOOR (Q + Half); - if ((I > 0) || (Radix == Q * Q)) - Monot = True; - else if (I > 0) { - if (I > 1) - Monot = True; - else { - Y = Y * BInvrse; - X = Y - U1; - Z = Y + U1; - } - } else { - Y = Q; - X = Y - U2; - Z = Y + U2; - } - } - } - if (Monot) - printf ("sqrt has passed a test for Monotonicity.\n"); - else { - BadCond (Defect, ""); - printf ("sqrt(X) is non-monotonic for X near %.7e .\n", Y); - } - /*=============================================*/ - Milestone = 80; - /*=============================================*/ - MinSqEr = MinSqEr + Half; - MaxSqEr = MaxSqEr - Half; - Y = (SQRT (One + U2) - One) / U2; - SqEr = (Y - One) + U2 / Eight; - if (SqEr > MaxSqEr) - MaxSqEr = SqEr; - SqEr = Y + U2 / Eight; - if (SqEr < MinSqEr) - MinSqEr = SqEr; - Y = ((SQRT (F9) - U2) - (One - U2)) / U1; - SqEr = Y + U1 / Eight; - if (SqEr > MaxSqEr) - MaxSqEr = SqEr; - SqEr = (Y + One) + U1 / Eight; - if (SqEr < MinSqEr) - MinSqEr = SqEr; - OneUlp = U2; - X = OneUlp; - for (Indx = 1; Indx <= 3; ++Indx) { - Y = SQRT ((X + U1 + X) + F9); - Y = ((Y - U2) - ((One - U2) + X)) / OneUlp; - Z = ((U1 - X) + F9) * Half * X * X / OneUlp; - SqEr = (Y + Half) + Z; - if (SqEr < MinSqEr) - MinSqEr = SqEr; - SqEr = (Y - Half) + Z; - if (SqEr > MaxSqEr) - MaxSqEr = SqEr; - if (((Indx == 1) || (Indx == 3))) - X = OneUlp * Sign (X) * FLOOR (Eight / (Nine * SQRT (OneUlp))); - else { - OneUlp = U1; - X = -OneUlp; - } - } - /*=============================================*/ - Milestone = 85; - /*=============================================*/ - SqRWrng = False; - Anomaly = False; - RSqrt = Other; /* ~dgh */ - if (Radix != One) { - printf ("Testing whether sqrt is rounded or chopped.\n"); - D = FLOOR (Half + POW (Radix, One + Precision - FLOOR (Precision))); - /* ... == Radix^(1 + fract) if (Precision == Integer + fract. */ - X = D / Radix; - Y = D / A1; - if ((X != FLOOR (X)) || (Y != FLOOR (Y))) { - Anomaly = True; - } else { - X = Zero; - Z2 = X; - Y = One; - Y2 = Y; - Z1 = Radix - One; - FourD = Four * D; - do { - if (Y2 > Z2) { - Q = Radix; - Y1 = Y; - do { - X1 = FABS (Q + FLOOR (Half - Q / Y1) * Y1); - Q = Y1; - Y1 = X1; - } - while (!(X1 <= Zero)); - if (Q <= One) { - Z2 = Y2; - Z = Y; - } - } - Y = Y + Two; - X = X + Eight; - Y2 = Y2 + X; - if (Y2 >= FourD) - Y2 = Y2 - FourD; - } - while (!(Y >= D)); - X8 = FourD - Z2; - Q = (X8 + Z * Z) / FourD; - X8 = X8 / Eight; - if (Q != FLOOR (Q)) - Anomaly = True; - else { - Break = False; - do { - X = Z1 * Z; - X = X - FLOOR (X / Radix) * Radix; - if (X == One) - Break = True; - else - Z1 = Z1 - One; - } - while (!(Break || (Z1 <= Zero))); - if ((Z1 <= Zero) && (!Break)) - Anomaly = True; - else { - if (Z1 > RadixD2) - Z1 = Z1 - Radix; - do { - NewD (); - } - while (!(U2 * D >= F9)); - if (D * Radix - D != W - D) - Anomaly = True; - else { - Z2 = D; - I = 0; - Y = D + (One + Z) * Half; - X = D + Z + Q; - SR3750 (); - Y = D + (One - Z) * Half + D; - X = D - Z + D; - X = X + Q + X; - SR3750 (); - NewD (); - if (D - Z2 != W - Z2) - Anomaly = True; - else { - Y = (D - Z2) + (Z2 + (One - Z) * Half); - X = (D - Z2) + (Z2 - Z + Q); - SR3750 (); - Y = (One + Z) * Half; - X = Q; - SR3750 (); - if (I == 0) - Anomaly = True; - } - } - } - } - } - if ((I == 0) || Anomaly) { - BadCond (Failure, "Anomalous arithmetic with Integer < "); - printf ("Radix^Precision = %.7e\n", W); - printf (" fails test whether sqrt rounds or chops.\n"); - SqRWrng = True; - } - } - if (!Anomaly) { - if (!((MinSqEr < Zero) || (MaxSqEr > Zero))) { - RSqrt = Rounded; - printf ("Square root appears to be correctly rounded.\n"); - } else { - if ((MaxSqEr + U2 > U2 - Half) || (MinSqEr > Half) - || (MinSqEr + Radix < Half)) - SqRWrng = True; - else { - RSqrt = Chopped; - printf ("Square root appears to be chopped.\n"); - } - } - } - if (SqRWrng) { - printf ("Square root is neither chopped nor correctly rounded.\n"); - printf ("Observed errors run from %.7e ", MinSqEr - Half); - printf ("to %.7e ulps.\n", Half + MaxSqEr); - TstCond (Serious, MaxSqEr - MinSqEr < Radix * Radix, - "sqrt gets too many last digits wrong"); - } - /*=============================================*/ - Milestone = 90; - /*=============================================*/ - Pause (); - printf ("Testing powers Z^i for small Integers Z and i.\n"); - N = 0; - /* ... test powers of zero. */ - I = 0; - Z = -Zero; - M = 3; - Break = False; - do { - X = One; - SR3980 (); - if (I <= 10) { - I = 1023; - SR3980 (); - } - if (Z == MinusOne) - Break = True; - else { - Z = MinusOne; - /* .. if(-1)^N is invalid, replace MinusOne by One. */ - I = -4; - } - } - while (!Break); - PrintIfNPositive (); - N1 = N; - N = 0; - Z = A1; - M = (int) FLOOR (Two * LOG (W) / LOG (A1)); - Break = False; - do { - X = Z; - I = 1; - SR3980 (); - if (Z == AInvrse) - Break = True; - else - Z = AInvrse; - } - while (!(Break)); - /*=============================================*/ - Milestone = 100; - /*=============================================*/ - /* Powers of Radix have been tested, */ - /* next try a few primes */ - M = NoTrials; - Z = Three; - do { - X = Z; - I = 1; - SR3980 (); - do { - Z = Z + Two; - } - while (Three * FLOOR (Z / Three) == Z); - } - while (Z < Eight * Three); - if (N > 0) { - printf ("Errors like this may invalidate financial calculations\n"); - printf ("\tinvolving interest rates.\n"); - } - PrintIfNPositive (); - N += N1; - if (N == 0) - printf ("... no discrepancies found.\n"); - if (N > 0) - Pause (); - else - printf ("\n"); - /*=============================================*/ - Milestone = 110; - /*=============================================*/ - printf ("Seeking Underflow thresholds UfThold and E0.\n"); - D = U1; - if (Precision != FLOOR (Precision)) { - D = BInvrse; - X = Precision; - do { - D = D * BInvrse; - X = X - One; - } - while (X > Zero); - } - Y = One; - Z = D; - /* ... D is power of 1/Radix < 1. */ - do { - C = Y; - Y = Z; - Z = Y * Y; - } - while ((Y > Z) && (Z + Z > Z)); - Y = C; - Z = Y * D; - do { - C = Y; - Y = Z; - Z = Y * D; - } - while ((Y > Z) && (Z + Z > Z)); - if (Radix < Two) - HInvrse = Two; - else - HInvrse = Radix; - H = One / HInvrse; - /* ... 1/HInvrse == H == Min(1/Radix, 1/2) */ - CInvrse = One / C; - E0 = C; - Z = E0 * H; - /* ...1/Radix^(BIG Integer) << 1 << CInvrse == 1/C */ - do { - Y = E0; - E0 = Z; - Z = E0 * H; - } - while ((E0 > Z) && (Z + Z > Z)); - UfThold = E0; - E1 = Zero; - Q = Zero; - E9 = U2; - S = One + E9; - D = C * S; - if (D <= C) { - E9 = Radix * U2; - S = One + E9; - D = C * S; - if (D <= C) { - BadCond (Failure, "multiplication gets too many last digits wrong.\n"); - Underflow = E0; - Y1 = Zero; - PseudoZero = Z; - Pause (); - } - } else { - Underflow = D; - PseudoZero = Underflow * H; - UfThold = Zero; - do { - Y1 = Underflow; - Underflow = PseudoZero; - if (E1 + E1 <= E1) { - Y2 = Underflow * HInvrse; - E1 = FABS (Y1 - Y2); - Q = Y1; - if ((UfThold == Zero) && (Y1 != Y2)) - UfThold = Y1; - } - PseudoZero = PseudoZero * H; - } - while ((Underflow > PseudoZero) - && (PseudoZero + PseudoZero > PseudoZero)); - } - /* Comment line 4530 .. 4560 */ - if (PseudoZero != Zero) { - printf ("\n"); - Z = PseudoZero; - /* ... Test PseudoZero for "phoney- zero" violates */ - /* ... PseudoZero < Underflow or PseudoZero < PseudoZero + PseudoZero - ... */ - if (PseudoZero <= Zero) { - BadCond (Failure, "Positive expressions can underflow to an\n"); - printf ("allegedly negative value\n"); - printf ("PseudoZero that prints out as: %g .\n", PseudoZero); - X = -PseudoZero; - if (X <= Zero) { - printf ("But -PseudoZero, which should be\n"); - printf ("positive, isn't; it prints out as %g .\n", X); - } - } else { - BadCond (Flaw, "Underflow can stick at an allegedly positive\n"); - printf ("value PseudoZero that prints out as %g .\n", PseudoZero); - } - TstPtUf (); - } - /*=============================================*/ - Milestone = 120; - /*=============================================*/ - if (CInvrse * Y > CInvrse * Y1) { - S = H * S; - E0 = Underflow; - } - if (!((E1 == Zero) || (E1 == E0))) { - BadCond (Defect, ""); - if (E1 < E0) { - printf ("Products underflow at a higher"); - printf (" threshold than differences.\n"); - if (PseudoZero == Zero) - E0 = E1; - } else { - printf ("Difference underflows at a higher"); - printf (" threshold than products.\n"); - } - } - printf ("Smallest strictly positive number found is E0 = %g .\n", E0); - Z = E0; - TstPtUf (); - Underflow = E0; - if (N == 1) - Underflow = Y; - I = 4; - if (E1 == Zero) - I = 3; - if (UfThold == Zero) - I = I - 2; - UfNGrad = True; - switch (I) { - case 1: - UfThold = Underflow; - if ((CInvrse * Q) != ((CInvrse * Y) * S)) { - UfThold = Y; - BadCond (Failure, "Either accuracy deteriorates as numbers\n"); - printf ("approach a threshold = %.17e\n", UfThold);; - printf (" coming down from %.17e\n", C); - printf (" or else multiplication gets too many last digits wrong.\n"); - } - Pause (); - break; - - case 2: - BadCond (Failure, "Underflow confuses Comparison, which alleges that\n"); - printf ("Q == Y while denying that |Q - Y| == 0; these values\n"); - printf ("print out as Q = %.17e, Y = %.17e .\n", Q, Y2); - printf ("|Q - Y| = %.17e .\n", FABS (Q - Y2)); - UfThold = Q; - break; - - case 3: - X = X; - break; - - case 4: - if ((Q == UfThold) && (E1 == E0) - && (FABS (UfThold - E1 / E9) <= E1)) { - UfNGrad = False; - printf ("Underflow is gradual; it incurs Absolute Error =\n"); - printf ("(roundoff in UfThold) < E0.\n"); - Y = E0 * CInvrse; - Y = Y * (OneAndHalf + U2); - X = CInvrse * (One + U2); - Y = Y / X; - IEEE = (Y == E0); - } - } - if (UfNGrad) { - printf ("\n"); - sigsave = _sigfpe; - if (setjmp (ovfl_buf)) { - printf ("Underflow / UfThold failed!\n"); - R = H + H; - } else - R = SQRT (Underflow / UfThold); - sigsave = 0; - if (R <= H) { - Z = R * UfThold; - X = Z * (One + R * H * (One + H)); - } else { - Z = UfThold; - X = Z * (One + H * H * (One + H)); - } - if (!((X == Z) || (X - Z != Zero))) { - BadCond (Flaw, ""); - printf ("X = %.17e\n\tis not equal to Z = %.17e .\n", X, Z); - Z9 = X - Z; - printf ("yet X - Z yields %.17e .\n", Z9); - printf (" Should this NOT signal Underflow, "); - printf ("this is a SERIOUS DEFECT\nthat causes "); - printf ("confusion when innocent statements like\n");; - printf (" if (X == Z) ... else"); - printf (" ... (f(X) - f(Z)) / (X - Z) ...\n"); - printf ("encounter Division by Zero although actually\n"); - sigsave = _sigfpe; - if (setjmp (ovfl_buf)) - printf ("X / Z fails!\n"); - else - printf ("X / Z = 1 + %g .\n", (X / Z - Half) - Half); - sigsave = 0; - } - } - printf ("The Underflow threshold is %.17e, %s\n", UfThold, - " below which"); - printf ("calculation may suffer larger Relative error than "); - printf ("merely roundoff.\n"); - Y2 = U1 * U1; - Y = Y2 * Y2; - Y2 = Y * U1; - if (Y2 <= UfThold) { - if (Y > E0) { - BadCond (Defect, ""); - I = 5; - } else { - BadCond (Serious, ""); - I = 4; - } - printf ("Range is too narrow; U1^%d Underflows.\n", I); - } - /*=============================================*/ - Milestone = 130; - /*=============================================*/ - Y = -FLOOR (Half - TwoForty * LOG (UfThold) / LOG (HInvrse)) / TwoForty; - Y2 = Y + Y; - printf ("Since underflow occurs below the threshold\n"); - printf ("UfThold = (%.17e) ^ (%.17e)\nonly underflow ", HInvrse, Y); - printf ("should afflict the expression\n\t(%.17e) ^ (%.17e);\n", - HInvrse, Y2); - printf ("actually calculating yields:"); - if (setjmp (ovfl_buf)) { - sigsave = 0; - BadCond (Serious, "trap on underflow.\n"); - } else { - sigsave = _sigfpe; - V9 = POW (HInvrse, Y2); - sigsave = 0; - printf (" %.17e .\n", V9); - if (!((V9 >= Zero) && (V9 <= (Radix + Radix + E9) * UfThold))) { - BadCond (Serious, "this is not between 0 and underflow\n"); - printf (" threshold = %.17e .\n", UfThold); - } else if (!(V9 > UfThold * (One + E9))) - printf ("This computed value is O.K.\n"); - else { - BadCond (Defect, "this is not between 0 and underflow\n"); - printf (" threshold = %.17e .\n", UfThold); - } - } - /*=============================================*/ - Milestone = 140; - /*=============================================*/ - printf ("\n"); - /* ...calculate Exp2 == exp(2) == 7.389056099... */ - X = Zero; - I = 2; - Y = Two * Three; - Q = Zero; - N = 0; - do { - Z = X; - I = I + 1; - Y = Y / (I + I); - R = Y + Q; - X = Z + R; - Q = (Z - X) + R; - } - while (X > Z); - Z = (OneAndHalf + One / Eight) + X / (OneAndHalf * ThirtyTwo); - X = Z * Z; - Exp2 = X * X; - X = F9; - Y = X - U1; - printf ("Testing X^((X + 1) / (X - 1)) vs. exp(2) = %.17e as X -> 1.\n", - Exp2); - for (I = 1;;) { - Z = X - BInvrse; - Z = (X + One) / (Z - (One - BInvrse)); - Q = POW (X, Z) - Exp2; - if (FABS (Q) > TwoForty * U2) { - N = 1; - V9 = (X - BInvrse) - (One - BInvrse); - BadCond (Defect, "Calculated"); - printf (" %.17e for\n", POW (X, Z)); - printf ("\t(1 + (%.17e) ^ (%.17e);\n", V9, Z); - printf ("\tdiffers from correct value by %.17e .\n", Q); - printf ("\tThis much error may spoil financial\n"); - printf ("\tcalculations involving tiny interest rates.\n"); - break; - } else { - Z = (Y - X) * Two + Y; - X = Y; - Y = Z; - Z = One + (X - F9) * (X - F9); - if (Z > One && I < NoTrials) - I++; - else { - if (X > One) { - if (N == 0) - printf ("Accuracy seems adequate.\n"); - break; - } else { - X = One + U2; - Y = U2 + U2; - Y += X; - I = 1; - } - } - } - } - /*=============================================*/ - Milestone = 150; - /*=============================================*/ - printf ("Testing powers Z^Q at four nearly extreme values.\n"); - N = 0; - Z = A1; - Q = FLOOR (Half - LOG (C) / LOG (A1)); - Break = False; - do { - X = CInvrse; - Y = POW (Z, Q); - IsYeqX (); - Q = -Q; - X = C; - Y = POW (Z, Q); - IsYeqX (); - if (Z < One) - Break = True; - else - Z = AInvrse; - } - while (!(Break)); - PrintIfNPositive (); - if (N == 0) - printf (" ... no discrepancies found.\n"); - printf ("\n"); - - /*=============================================*/ - Milestone = 160; - /*=============================================*/ - Pause (); - printf ("Searching for Overflow threshold:\n"); - printf ("This may generate an error.\n"); - Y = -CInvrse; - V9 = HInvrse * Y; - sigsave = _sigfpe; - if (setjmp (ovfl_buf)) { - I = 0; - V9 = Y; - goto overflow; - } - do { - V = Y; - Y = V9; - V9 = HInvrse * Y; - } - while (V9 < Y); - I = 1; - overflow: - sigsave = 0; - Z = V9; - printf ("Can `Z = -Y' overflow?\n"); - printf ("Trying it on Y = %.17e .\n", Y); - V9 = -Y; - V0 = V9; - if (V - Y == V + V0) - printf ("Seems O.K.\n"); - else { - printf ("finds a "); - BadCond (Flaw, "-(-Y) differs from Y.\n"); - } - if (Z != Y) { - BadCond (Serious, ""); - printf ("overflow past %.17e\n\tshrinks to %.17e .\n", Y, Z); - } - if (I) { - Y = V * (HInvrse * U2 - HInvrse); - Z = Y + ((One - HInvrse) * U2) * V; - if (Z < V0) - Y = Z; - if (Y < V0) - V = Y; - if (V0 - V < V0) - V = V0; - } else { - V = Y * (HInvrse * U2 - HInvrse); - V = V + ((One - HInvrse) * U2) * Y; - } - printf ("Overflow threshold is V = %.17e .\n", V); - if (I) - printf ("Overflow saturates at V0 = %.17e .\n", V0); - else - printf ("There is no saturation value because \ -the system traps on overflow.\n"); - V9 = V * One; - printf ("No Overflow should be signaled for V * 1 = %.17e\n", V9); - V9 = V / One; - printf (" nor for V / 1 = %.17e .\n", V9); - printf ("Any overflow signal separating this * from the one\n"); - printf ("above is a DEFECT.\n"); - /*=============================================*/ - Milestone = 170; - /*=============================================*/ - if (!(-V < V && -V0 < V0 && -UfThold < V && UfThold < V)) { - BadCond (Failure, "Comparisons involving "); - printf ("+-%g, +-%g\nand +-%g are confused by Overflow.", - V, V0, UfThold); - } - /*=============================================*/ - Milestone = 175; - /*=============================================*/ - printf ("\n"); - for (Indx = 1; Indx <= 3; ++Indx) { - switch (Indx) { - case 1: - Z = UfThold; - break; - case 2: - Z = E0; - break; - case 3: - Z = PseudoZero; - break; - } - if (Z != Zero) { - V9 = SQRT (Z); - Y = V9 * V9; - if (Y / (One - Radix * E9) < Z - || Y > (One + Radix * E9) * Z) { /* dgh: + E9 --> * E9 */ - if (V9 > U1) - BadCond (Serious, ""); - else - BadCond (Defect, ""); - printf ("Comparison alleges that what prints as Z = %.17e\n", Z); - printf (" is too far from sqrt(Z) ^ 2 = %.17e .\n", Y); - } - } - } - /*=============================================*/ - Milestone = 180; - /*=============================================*/ - for (Indx = 1; Indx <= 2; ++Indx) { - if (Indx == 1) - Z = V; - else - Z = V0; - V9 = SQRT (Z); - X = (One - Radix * E9) * V9; - V9 = V9 * X; - if (((V9 < (One - Two * Radix * E9) * Z) || (V9 > Z))) { - Y = V9; - if (X < W) - BadCond (Serious, ""); - else - BadCond (Defect, ""); - printf ("Comparison alleges that Z = %17e\n", Z); - printf (" is too far from sqrt(Z) ^ 2 (%.17e) .\n", Y); - } - } - /*=============================================*/ - Milestone = 190; - /*=============================================*/ - Pause (); - X = UfThold * V; - Y = Radix * Radix; - if (X * Y < One || X > Y) { - if (X * Y < U1 || X > Y / U1) - BadCond (Defect, "Badly"); - else - BadCond (Flaw, ""); - - printf (" unbalanced range; UfThold * V = %.17e\n\t%s\n", - X, "is too far from 1.\n"); - } - /*=============================================*/ - Milestone = 200; - /*=============================================*/ - for (Indx = 1; Indx <= 5; ++Indx) { - X = F9; - switch (Indx) { - case 2: - X = One + U2; - break; - case 3: - X = V; - break; - case 4: - X = UfThold; - break; - case 5: - X = Radix; - } - Y = X; - sigsave = _sigfpe; - if (setjmp (ovfl_buf)) - printf (" X / X traps when X = %g\n", X); - else { - V9 = (Y / X - Half) - Half; - if (V9 == Zero) - continue; - if (V9 == -U1 && Indx < 5) - BadCond (Flaw, ""); - else - BadCond (Serious, ""); - printf (" X / X differs from 1 when X = %.17e\n", X); - printf (" instead, X / X - 1/2 - 1/2 = %.17e .\n", V9); - } - sigsave = 0; - } - /*=============================================*/ - Milestone = 210; - /*=============================================*/ - MyZero = Zero; - printf ("\n"); - printf ("What message and/or values does Division by Zero produce?\n"); -#ifndef BATCHMODE - printf ("This can interupt your program. You can "); - printf ("skip this part if you wish.\n"); - printf ("Do you wish to compute 1 / 0? "); - fflush (stdout); - read (KEYBOARD, ch, 8); - if ((ch[0] == 'Y') || (ch[0] == 'y')) { -#endif /* !BATCHMODE */ - sigsave = _sigfpe; - printf (" Trying to compute 1 / 0 produces ..."); - if (!setjmp (ovfl_buf)) - printf (" %.7e .\n", One / MyZero); - sigsave = 0; -#ifndef BATCHMODE - } else - printf ("O.K.\n"); - printf ("\nDo you wish to compute 0 / 0? "); - fflush (stdout); - read (KEYBOARD, ch, 80); - if ((ch[0] == 'Y') || (ch[0] == 'y')) { -#endif /* !BATCHMODE */ - sigsave = _sigfpe; - printf ("\n Trying to compute 0 / 0 produces ..."); - if (!setjmp (ovfl_buf)) - printf (" %.7e .\n", Zero / MyZero); - sigsave = 0; -#ifndef BATCHMODE - } else - printf ("O.K.\n"); -#endif /* !BATCHMODE */ - /*=============================================*/ - Milestone = 220; - /*=============================================*/ - - Pause (); - printf ("\n"); - { - static char *msg[] = - { - "FAILUREs encountered =", - "SERIOUS DEFECTs discovered =", - "DEFECTs discovered =", - "FLAWs discovered ="}; - int i; - for (i = 0; i < 4; i++) - if (ErrCnt[i]) - printf ("The number of %-29s %d.\n", - msg[i], ErrCnt[i]); - } - - printf ("\n"); - if ((ErrCnt[Failure] + ErrCnt[Serious] + ErrCnt[Defect] - + ErrCnt[Flaw]) > 0) { - if ((ErrCnt[Failure] + ErrCnt[Serious] + ErrCnt[ - Defect] == 0) && (ErrCnt[Flaw] > 0)) { - printf ("The arithmetic diagnosed seems "); - printf ("Satisfactory though flawed.\n"); - } - if ((ErrCnt[Failure] + ErrCnt[Serious] == 0) - && (ErrCnt[Defect] > 0)) { - printf ("The arithmetic diagnosed may be Acceptable\n"); - printf ("despite inconvenient Defects.\n"); - } - if ((ErrCnt[Failure] + ErrCnt[Serious]) > 0) { - printf ("The arithmetic diagnosed has "); - printf ("unacceptable Serious Defects.\n"); - } - if (ErrCnt[Failure] > 0) { - printf ("Potentially fatal FAILURE may have spoiled this"); - printf (" program's subsequent diagnoses.\n"); - } - } else { - - printf ("No failures, defects nor flaws have been discovered.\n"); - if (!((RMult == Rounded) && (RDiv == Rounded) - && (RAddSub == Rounded) && (RSqrt == Rounded))) - printf ("The arithmetic diagnosed seems Satisfactory.\n"); - else { - if (StickyBit >= One && - (Radix - Two) * (Radix - Nine - One) == Zero) { - printf ("Rounding appears to conform to "); - printf ("the proposed IEEE standard P"); - if ((Radix == Two) && - ((Precision - Four * Three * Two) * - (Precision - TwentySeven - - TwentySeven + One) == Zero)) - printf ("754"); - else - printf ("854"); - if (IEEE) - printf (".\n"); - else { - printf (",\nexcept for possibly Double Rounding"); - printf (" during Gradual Underflow.\n"); - } - } - printf ("The arithmetic diagnosed appears to be Excellent!\n"); - } - } - - if (fpecount) - printf ("\nA total of %d floating point exceptions were registered.\n", - fpecount); - printf ("END OF TEST.\n"); - return 0; -} - -FLOAT -Sign (X) - FLOAT X; -{ - return X >= 0. ? 1.0 : -1.0; -} - -void -Pause () -{ -#ifndef BATCHMODE - char ch[8]; - - printf ("\nTo continue, press RETURN"); - fflush (stdout); - read (KEYBOARD, ch, 8); -#endif /* !BATCHMODE */ -#ifndef CYGNUS - printf ("\nDiagnosis resumes after milestone Number %d", Milestone); - printf (" Page: %d\n\n", PageNo); - ++Milestone; - ++PageNo; -#endif /* !CYGNUS */ -} - -void -TstCond (K, Valid, T) - int K, Valid; - char *T; -{ -#ifdef CYGNUS - printf ("TEST: %s\n", T); -#endif /* CYGNUS */ - if (!Valid) { - BadCond (K, T); - printf (".\n"); - } -#ifdef CYGNUS - printf ("PASS: %s\n", T); -#endif /* CYGNUS */ -} - -void -BadCond (K, T) - int K; - char *T; -{ - static char *msg[] = - {"FAILURE", "SERIOUS DEFECT", "DEFECT", "FLAW"}; - - ErrCnt[K] = ErrCnt[K] + 1; -#ifndef CYGNUS - printf ("%s: %s", msg[K], T); -#else - printf ("ERROR: Severity: %s: %s", msg[K], T); -#endif /* CYGNUS */ -} - -/* - * Random computes - * X = (Random1 + Random9)^5 - * Random1 = X - FLOOR(X) + 0.000005 * X; - * and returns the new value of Random1 -*/ -FLOAT -Random () -{ - FLOAT X, Y; - - X = Random1 + Random9; - Y = X * X; - Y = Y * Y; - X = X * Y; - Y = X - FLOOR (X); - Random1 = Y + X * 0.000005; - return (Random1); -} - -void -SqXMinX (ErrKind) - int ErrKind; -{ - FLOAT XA, XB; - - XB = X * BInvrse; - XA = X - XB; - SqEr = ((SQRT (X * X) - XB) - XA) / OneUlp; - if (SqEr != Zero) { - if (SqEr < MinSqEr) - MinSqEr = SqEr; - if (SqEr > MaxSqEr) - MaxSqEr = SqEr; - J = J + 1.0; - BadCond (ErrKind, "\n"); - printf ("sqrt( %.17e) - %.17e = %.17e\n", X * X, X, OneUlp * SqEr); - printf ("\tinstead of correct value 0 .\n"); - } -} - -void -NewD () -{ - X = Z1 * Q; - X = FLOOR (Half - X / Radix) * Radix + X; - Q = (Q - X * Z) / Radix + X * X * (D / Radix); - Z = Z - Two * X * D; - if (Z <= Zero) { - Z = -Z; - Z1 = -Z1; - } - D = Radix * D; -} - -void -SR3750 () -{ - if (!((X - Radix < Z2 - Radix) || (X - Z2 > W - Z2))) { - I = I + 1; - X2 = SQRT (X * D); - Y2 = (X2 - Z2) - (Y - Z2); - X2 = X8 / (Y - Half); - X2 = X2 - Half * X2 * X2; - SqEr = (Y2 + Half) + (Half - X2); - if (SqEr < MinSqEr) - MinSqEr = SqEr; - SqEr = Y2 - X2; - if (SqEr > MaxSqEr) - MaxSqEr = SqEr; - } -} - -void -IsYeqX () -{ - if (Y != X) { - if (N <= 0) { - if (Z == Zero && Q <= Zero) - printf ("WARNING: computing\n"); - else - BadCond (Defect, "computing\n"); - printf ("\t(%.17e) ^ (%.17e)\n", Z, Q); - printf ("\tyielded %.17e;\n", Y); - printf ("\twhich compared unequal to correct %.17e ;\n", - X); - printf ("\t\tthey differ by %.17e .\n", Y - X); - } - N = N + 1; /* ... count discrepancies. */ - } -} - -void -SR3980 () -{ - do { - Q = (FLOAT) I; - Y = POW (Z, Q); - IsYeqX (); - if (++I > M) - break; - X = Z * X; - } - while (X < W); -} - -void -PrintIfNPositive () -{ - if (N > 0) - printf ("Similar discrepancies have occurred %d times.\n", N); -} - -void -TstPtUf () -{ - N = 0; - if (Z != Zero) { - printf ("Since comparison denies Z = 0, evaluating "); - printf ("(Z + Z) / Z should be safe.\n"); - sigsave = _sigfpe; - if (setjmp (ovfl_buf)) - goto very_serious; - Q9 = (Z + Z) / Z; - printf ("What the machine gets for (Z + Z) / Z is %.17e .\n", - Q9); - if (FABS (Q9 - Two) < Radix * U2) { - printf ("This is O.K., provided Over/Underflow"); - printf (" has NOT just been signaled.\n"); - } else { - if ((Q9 < One) || (Q9 > Two)) { - very_serious: - N = 1; - ErrCnt[Serious] = ErrCnt[Serious] + 1; - printf ("This is a VERY SERIOUS DEFECT!\n"); - } else { - N = 1; - ErrCnt[Defect] = ErrCnt[Defect] + 1; - printf ("This is a DEFECT!\n"); - } - } - sigsave = 0; - V9 = Z * One; - Random1 = V9; - V9 = One * Z; - Random2 = V9; - V9 = Z / One; - if ((Z == Random1) && (Z == Random2) && (Z == V9)) { - if (N > 0) - Pause (); - } else { - N = 1; - BadCond (Defect, "What prints as Z = "); - printf ("%.17e\n\tcompares different from ", Z); - if (Z != Random1) - printf ("Z * 1 = %.17e ", Random1); - if (!((Z == Random2) - || (Random2 == Random1))) - printf ("1 * Z == %g\n", Random2); - if (!(Z == V9)) - printf ("Z / 1 = %.17e\n", V9); - if (Random2 != Random1) { - ErrCnt[Defect] = ErrCnt[Defect] + 1; - BadCond (Defect, "Multiplication does not commute!\n"); - printf ("\tComparison alleges that 1 * Z = %.17e\n", - Random2); - printf ("\tdiffers from Z * 1 = %.17e\n", Random1); - } - Pause (); - } - } -} - -void -notify (s) - char *s; -{ - printf ("%s test appears to be inconsistent...\n", s); - printf (" PLEASE NOTIFY KARPINKSI!\n"); -} - -void -msglist (s) - char **s; -{ - while (*s) - printf ("%s\n", *s++); -} - -void -Instructions () -{ - static char *instr[] = - { - "Lest this program stop prematurely, i.e. before displaying\n", - " `END OF TEST',\n", - "try to persuade the computer NOT to terminate execution when an", - "error like Over/Underflow or Division by Zero occurs, but rather", - "to persevere with a surrogate value after, perhaps, displaying some", - "warning. If persuasion avails naught, don't despair but run this", - "program anyway to see how many milestones it passes, and then", - "amend it to make further progress.\n", - "Answer questions with Y, y, N or n (unless otherwise indicated).\n", - 0}; - - msglist (instr); -} - -void -Heading () -{ - static char *head[] = - { - "Users are invited to help debug and augment this program so it will", - "cope with unanticipated and newly uncovered arithmetic pathologies.\n", - "Please send suggestions and interesting results to", - "\tRichard Karpinski", - "\tComputer Center U-76", - "\tUniversity of California", - "\tSan Francisco, CA 94143-0704, USA\n", - "In doing so, please include the following information:", -#ifdef SINGLE_PRECISION - "\tPrecision:\tsingle;", -#else /* !SINGLE_PRECISION */ - "\tPrecision:\tdouble;", -#endif /* SINGLE_PRECISION */ - "\tVersion:\t10 February 1989;", - "\tComputer:\n", - "\tCompiler:\n", - "\tOptimization level:\n", - "\tOther relevant compiler options:", - 0}; - - msglist (head); -} - -void -Characteristics () -{ - static char *chars[] = - { - "Running this program should reveal these characteristics:", - " Radix = 1, 2, 4, 8, 10, 16, 100, 256 ...", - " Precision = number of significant digits carried.", - " U2 = Radix/Radix^Precision = One Ulp", - "\t(OneUlpnit in the Last Place) of 1.000xxx .", - " U1 = 1/Radix^Precision = One Ulp of numbers a little less than 1.0 .", - " Adequacy of guard digits for Mult., Div. and Subt.", - " Whether arithmetic is chopped, correctly rounded, or something else", - "\tfor Mult., Div., Add/Subt. and Sqrt.", - " Whether a Sticky Bit used correctly for rounding.", - " UnderflowThreshold = an underflow threshold.", - " E0 and PseudoZero tell whether underflow is abrupt, gradual, or fuzzy.", - " V = an overflow threshold, roughly.", - " V0 tells, roughly, whether Infinity is represented.", - " Comparisions are checked for consistency with subtraction", - "\tand for contamination with pseudo-zeros.", - " Sqrt is tested. Y^X is not tested.", - " Extra-precise subexpressions are revealed but NOT YET tested.", - " Decimal-Binary conversion is NOT YET tested for accuracy.", - 0}; - - msglist (chars); -} - -void -History () -{ /* History */ - /* Converted from Brian Wichmann's Pascal version to C by Thos Sumner, - with further massaging by David M. Gay. */ - - static char *hist[] = - { - "The program attempts to discriminate among", - " FLAWs, like lack of a sticky bit,", - " Serious DEFECTs, like lack of a guard digit, and", - " FAILUREs, like 2+2 == 5 .", - "Failures may confound subsequent diagnoses.\n", - "The diagnostic capabilities of this program go beyond an earlier", - "program called `MACHAR', which can be found at the end of the", - "book `Software Manual for the Elementary Functions' (1980) by", - "W. J. Cody and W. Waite. Although both programs try to discover", - "the Radix, Precision and range (over/underflow thresholds)", - "of the arithmetic, this program tries to cope with a wider variety", - "of pathologies, and to say how well the arithmetic is implemented.", - "\nThe program is based upon a conventional radix representation for", - "floating-point numbers, but also allows logarithmic encoding", - "as used by certain early WANG machines.\n", - "BASIC version of this program (C) 1983 by Prof. W. M. Kahan;", - "see source comments for more history.", - 0}; - - msglist (hist); -} diff --git a/testsuites/samples/paranoia/paranoia.doc b/testsuites/samples/paranoia/paranoia.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/samples/paranoia/paranoia.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/samples/paranoia/system.h b/testsuites/samples/paranoia/system.h deleted file mode 100644 index 88e60beb9a..0000000000 --- a/testsuites/samples/paranoia/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "stdio.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/samples/ticker/init.c b/testsuites/samples/ticker/init.c deleted file mode 100644 index 3caa16ecd7..0000000000 --- a/testsuites/samples/ticker/init.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is called from init_exec and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_time_of_day time; - - puts( "\n\n*** CLOCK TICK TEST ***" ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - status = rtems_clock_set( &time ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( Task_name[ 1 ], 1, 1024, RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 1 ] ); - status = rtems_task_create( Task_name[ 2 ], 1, 1024, RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 2 ] ); - status = rtems_task_create( Task_name[ 3 ], 1, 1024, RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 3 ] ); - - status = rtems_task_start( Task_id[ 1 ], Test_task, 1 ); - status = rtems_task_start( Task_id[ 2 ], Test_task, 2 ); - status = rtems_task_start( Task_id[ 3 ], Test_task, 3 ); - - status = rtems_task_delete( RTEMS_SELF ); -} diff --git a/testsuites/samples/ticker/system.h b/testsuites/samples/ticker/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/samples/ticker/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/samples/ticker/tasks.c b/testsuites/samples/ticker/tasks.c deleted file mode 100644 index ec7c6baa2e..0000000000 --- a/testsuites/samples/ticker/tasks.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Test_task - * - * This routine serves as a test task. It verifies the basic task - * switching capabilities of the executive. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Test_task( - rtems_task_argument unused -) -{ - rtems_id tid; - rtems_time_of_day time; - rtems_unsigned32 task_index; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - task_index = task_number( tid ); - while( FOREVER ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - if ( time.second >= 35 ) { - puts( "*** END OF CLOCK TICK TEST ***" ); - exit( 0 ); - } - put_name( Task_name[ task_index ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - status = rtems_task_wake_after( task_index * 5 * TICKS_PER_SECOND ); - } -} diff --git a/testsuites/samples/ticker/ticker.doc b/testsuites/samples/ticker/ticker.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/samples/ticker/ticker.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/samples/ticker/ticker.scn b/testsuites/samples/ticker/ticker.scn deleted file mode 100644 index 35952e6170..0000000000 --- a/testsuites/samples/ticker/ticker.scn +++ /dev/null @@ -1,16 +0,0 @@ -*** CLOCK TICK TEST *** -TA1 - tm_get - 09:00:00 12/31/1988 -TA2 - tm_get - 09:00:00 12/31/1988 -TA3 - tm_get - 09:00:00 12/31/1988 -TA1 - tm_get - 09:00:05 12/31/1988 -TA1 - tm_get - 09:00:10 12/31/1988 -TA2 - tm_get - 09:00:10 12/31/1988 -TA1 - tm_get - 09:00:15 12/31/1988 -TA3 - tm_get - 09:00:15 12/31/1988 -TA1 - tm_get - 09:00:20 12/31/1988 -TA2 - tm_get - 09:00:20 12/31/1988 -TA1 - tm_get - 09:00:25 12/31/1988 -TA1 - tm_get - 09:00:30 12/31/1988 -TA2 - tm_get - 09:00:30 12/31/1988 -TA3 - tm_get - 09:00:30 12/31/1988 -*** END OF CLOCK TICK TEST *** diff --git a/testsuites/sptests/README b/testsuites/sptests/README deleted file mode 100644 index 2843063c31..0000000000 --- a/testsuites/sptests/README +++ /dev/null @@ -1,9 +0,0 @@ -# -# $Id$ -# - -This directory contains the RTEMS Single Processor Test Suite. -The tests in this directory provide near complete (98%+) test -coverage of the non-multiprocessor code in RTEMS. - - diff --git a/testsuites/sptests/sp01/init.c b/testsuites/sptests/sp01/init.c deleted file mode 100644 index 82ffd0015c..0000000000 --- a/testsuites/sptests/sp01/init.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_time_of_day time; - rtems_status_code status; - - puts( "\n\n*** TEST 1 ***" ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2 * 1024, - RTEMS_INTERRUPT_LEVEL(31), - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2 * 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 1, - 2 * 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp01/sp01.doc b/testsuites/sptests/sp01/sp01.doc deleted file mode 100644 index 79b1aaaa87..0000000000 --- a/testsuites/sptests/sp01/sp01.doc +++ /dev/null @@ -1,43 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - -This file describes the directives and concepts tested by this test set. - -test set name: test1 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - tm_set, tm_get, tm_wkafter - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - c. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - d. Verifies interrupt handler can handle a task switch from an interrupt - as specified with the i_return directive. - - e. Verifies executive initialization performed correctly. - - f. Verifies the executive trap handler except for the halt function. - - g. Verifies that a task can get the task identification number of itself. - -output: - "TA1" is printed once every 5 seconds. "TA2" is printed once - every 10 seconds. "TA3" is printed once every 15 seconds. diff --git a/testsuites/sptests/sp01/sp01.scn b/testsuites/sptests/sp01/sp01.scn deleted file mode 100644 index d4fcc4561b..0000000000 --- a/testsuites/sptests/sp01/sp01.scn +++ /dev/null @@ -1,18 +0,0 @@ -*** TEST 1 *** -TA1 - rtems_clock_get - 09:00:00 12/31/1988 -TA2 - rtems_clock_get - 09:00:00 12/31/1988 -TA3 - rtems_clock_get - 09:00:00 12/31/1988 -TA1 - rtems_clock_get - 09:00:05 12/31/1988 -TA2 - rtems_clock_get - 09:00:10 12/31/1988 -TA1 - rtems_clock_get - 09:00:10 12/31/1988 -TA3 - rtems_clock_get - 09:00:15 12/31/1988 -TA1 - rtems_clock_get - 09:00:15 12/31/1988 -TA2 - rtems_clock_get - 09:00:20 12/31/1988 -TA1 - rtems_clock_get - 09:00:20 12/31/1988 -TA1 - rtems_clock_get - 09:00:25 12/31/1988 -TA3 - rtems_clock_get - 09:00:30 12/31/1988 -TA1 - rtems_clock_get - 09:00:30 12/31/1988 -TA2 - rtems_clock_get - 09:00:30 12/31/1988 -*** END OF TEST 1 *** - -NOTE: The order of the prints at each time interval is irrelevant. diff --git a/testsuites/sptests/sp01/system.h b/testsuites/sptests/sp01/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp01/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp01/task1.c b/testsuites/sptests/sp01/task1.c deleted file mode 100644 index b45d3abce6..0000000000 --- a/testsuites/sptests/sp01/task1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Task_1_through_3 - * - * This routine serves as a test task. It verifies the basic task - * switching capabilities of the executive. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1_through_3( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - while( FOREVER ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second >= 35 ) { - puts( "*** END OF TEST 1 ***" ); - exit( 0 ); - } - - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - status = rtems_task_wake_after( task_number( tid ) * 5 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } -} diff --git a/testsuites/sptests/sp02/init.c b/testsuites/sptests/sp02/init.c deleted file mode 100644 index b3ada92914..0000000000 --- a/testsuites/sptests/sp02/init.c +++ /dev/null @@ -1,155 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 2 ***" ); - - Preempt_task_name = rtems_build_name( 'P', 'R', 'M', 'T' ); - - status = rtems_task_create( - Preempt_task_name, - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Preempt_task_id - ); - directive_failed( status, "rtems_task_create of RTEMS_PREEMPT" ); - - status = rtems_task_start( Preempt_task_id, Preempt_task, 0 ); - directive_failed( status, "rtems_task_start of RTEMS_PREEMPT" ); - - puts( "INIT - rtems_task_wake_after - yielding processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - puts( "INIT - suspending TA2 while middle task on a ready chain" ); - status = rtems_task_suspend( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - status = rtems_task_delete( Task_id[ 1 ] ); - directive_failed( status, "rtems_task_delete of TA1" ); - - status = rtems_task_delete( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_delete of TA2" ); - - status = rtems_task_delete( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_delete of TA3" ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp02/preempt.c b/testsuites/sptests/sp02/preempt.c deleted file mode 100644 index 7e93f7af57..0000000000 --- a/testsuites/sptests/sp02/preempt.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Preempt_task - * - * This routine serves as a test task. It verifies the task manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Preempt_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "PREEMPT - rtems_task_delete - deleting self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_PREEMPT" ); -} diff --git a/testsuites/sptests/sp02/sp02.doc b/testsuites/sptests/sp02/sp02.doc deleted file mode 100644 index 00f2e0e7b3..0000000000 --- a/testsuites/sptests/sp02/sp02.doc +++ /dev/null @@ -1,37 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test2 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - t_delete, tm_wkafter, t_setpri, t_suspend - -concepts: - - a. Verifies that a task can delete another task and also delete itself. - - b. Verifies that memory is freed back to the heap correctly. - - c. Verifies that TCBs are freed back to the inactive chain correctly. - - d. Verifies that a task can get the task identification number of - another task. - - e. Verifies the _Set_state routine where the task is not READY. - - f. Verifies the break statement in the _Block_activate routine. - - g. Verifies the while loop in the _Prev_tcb routine. diff --git a/testsuites/sptests/sp02/sp02.scn b/testsuites/sptests/sp02/sp02.scn deleted file mode 100644 index 57a4627284..0000000000 --- a/testsuites/sptests/sp02/sp02.scn +++ /dev/null @@ -1,15 +0,0 @@ -*** TEST 2 *** -INIT - rtems_task_wake_after - yielding processor -PREEMPT - rtems_task_delete - deleting self -INIT - suspending TA2 while middle task on a ready chain -TA1 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 minute -TA3 - rtems_task_wake_after - sleep 5 seconds -TA1 - rtems_task_ident - tid of TA2 (0x00010007) -TA1 - rtems_task_ident - tid of TA3 (0x00010008) -TA1 - rtems_task_set_priority - set TA3's priority to 2 -TA1 - rtems_task_suspend - suspend TA2 -TA1 - rtems_task_delete - delete TA2 -TA1 - rtems_task_wake_after - sleep for 5 seconds -TA3 - rtems_task_delete - delete self -*** END OF TEST 2 *** diff --git a/testsuites/sptests/sp02/system.h b/testsuites/sptests/sp02/system.h deleted file mode 100644 index c9d89a1e8b..0000000000 --- a/testsuites/sptests/sp02/system.h +++ /dev/null @@ -1,31 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp02/task1.c b/testsuites/sptests/sp02/task1.c deleted file mode 100644 index 0f6152dbb2..0000000000 --- a/testsuites/sptests/sp02/task1.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the task manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id tid2; - rtems_id tid3; - rtems_status_code status; - rtems_unsigned32 previous_priority; - - puts( "TA1 - rtems_task_wake_after - sleep 1 second" ); - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - status = rtems_task_ident( Task_name[ 2 ], RTEMS_SEARCH_ALL_NODES, &tid2 ); - directive_failed( status, "rtems_task_ident of TA2" ); - - printf( "TA1 - rtems_task_ident - tid of TA2 (0x%.8x)\n", tid2 ); - - status = rtems_task_ident( Task_name[ 3 ], RTEMS_SEARCH_ALL_NODES, &tid3 ); - directive_failed( status, "rtems_task_ident of TA3" ); - - printf( "TA1 - rtems_task_ident - tid of TA3 (0x%.8x)\n", tid3 ); - - status = rtems_task_set_priority( tid3, 2, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - puts( "TA1 - rtems_task_set_priority - set TA3's priority to 2" ); - - - puts( "TA1 - rtems_task_suspend - suspend TA2" ); - status = rtems_task_suspend( tid2 ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - puts( "TA1 - rtems_task_delete - delete TA2" ); - status = rtems_task_delete( tid2 ); - directive_failed( status, "rtems_task_delete of TA2" ); - - puts( "TA1 - rtems_task_wake_after - sleep for 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "*** END OF TEST 2 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp02/task2.c b/testsuites/sptests/sp02/task2.c deleted file mode 100644 index f39cc5b9fc..0000000000 --- a/testsuites/sptests/sp02/task2.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It sleeps for 1 minute but - * does not expect to wake up. Task 1 should suspend then delete it - * so that it appears to never wake up. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA2 - rtems_task_wake_after - sleep 1 minute" ); - status = rtems_task_wake_after( 60*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after in TA2" ); -} diff --git a/testsuites/sptests/sp02/task3.c b/testsuites/sptests/sp02/task3.c deleted file mode 100644 index 89bda38b7c..0000000000 --- a/testsuites/sptests/sp02/task3.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. It simply sleeps for 5 seconds - * and then deletes itself. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA3 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after in TA3" ); - - puts( "TA3 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA3" ); -} diff --git a/testsuites/sptests/sp03/init.c b/testsuites/sptests/sp03/init.c deleted file mode 100644 index 962d434284..0000000000 --- a/testsuites/sptests/sp03/init.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 3 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp03/sp03.doc b/testsuites/sptests/sp03/sp03.doc deleted file mode 100644 index 96d6d41d94..0000000000 --- a/testsuites/sptests/sp03/sp03.doc +++ /dev/null @@ -1,24 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test3 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, tm_wkafter, - tm_wkwhen, tm_set, tm_get - -concepts: - - a. Verifies conversion routines - _Utd_to_etd and _Etd_to_utd diff --git a/testsuites/sptests/sp03/sp03.scn b/testsuites/sptests/sp03/sp03.scn deleted file mode 100644 index 496982e86f..0000000000 --- a/testsuites/sptests/sp03/sp03.scn +++ /dev/null @@ -1,26 +0,0 @@ -*** TEST 3 *** -TA1 sets clock: 09:15:00 12/31/1988 -TA1 going to sleep: 09:15:00 12/31/1988 -TA2 09:15:01 12/31/1988 -TA2 09:15:02 12/31/1988 -TA2 09:15:03 12/31/1988 -TA2 09:15:04 12/31/1988 -TA1 awakened: 09:15:05 12/31/1988 -TA1 going to sleep: 09:15:05 12/31/1988 -TA2 09:15:05 12/31/1988 -TA2 09:15:06 12/31/1988 -TA2 09:15:07 12/31/1988 -TA2 09:15:08 12/31/1988 -TA2 09:15:09 12/31/1988 -TA1 awakened: 09:15:10 12/31/1988 -TA1 going to sleep: 09:15:10 12/31/1988 -TA2 09:15:10 12/31/1988 -TA2 09:15:11 12/31/1988 -TA2 09:15:12 12/31/1988 -TA2 09:15:13 12/31/1988 -TA2 09:15:14 12/31/1988 -TA1 awakened: 09:15:15 12/31/1988 -TA1 going to sleep: 09:15:15 12/31/1988 -TA2 09:15:15 12/31/1988 -TA2 09:15:16 12/31/1988 -*** END OF TEST 3 *** diff --git a/testsuites/sptests/sp03/system.h b/testsuites/sptests/sp03/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp03/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp03/task1.c b/testsuites/sptests/sp03/task1.c deleted file mode 100644 index e59fad45cf..0000000000 --- a/testsuites/sptests/sp03/task1.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the capability to - * set and read the executives calender and clock. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_time_of_day time; - - build_time( &time, 12, 31, 1988, 9, 15, 0, 0 ); - - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - put_name( Task_name[ 1 ], FALSE ); - print_time( " sets clock: ", &time, "\n" ); - - while( FOREVER ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - put_name( Task_name[ 1 ], FALSE ); - print_time( " going to sleep: ", &time, "\n" ); - - time.second += 5; - time.minute += ( time.second / 60 ); - time.second %= 60; - time.hour += ( time.minute / 60 ); - time.minute %= 60; - time.hour %= 24; - - status = rtems_task_wake_when( &time ); - directive_failed( status, "rtems_task_wake_when" ); - - put_name( Task_name[ 1 ], FALSE ); - print_time( " awakened: ", &time, "\n" ); - } -} diff --git a/testsuites/sptests/sp03/task2.c b/testsuites/sptests/sp03/task2.c deleted file mode 100644 index 8838c1db67..0000000000 --- a/testsuites/sptests/sp03/task2.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It repeatedly gets the system time - * and date, converts it to printable form, and print it. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_time_of_day time; - - while( FOREVER ) { - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second >= 17 ) { - puts( "*** END OF TEST 3 *** " ); - exit( 0 ); - } - - put_name( Task_name[ 2 ], FALSE ); - print_time( " ", &time, "\n" ); - } -} diff --git a/testsuites/sptests/sp04/init.c b/testsuites/sptests/sp04/init.c deleted file mode 100644 index b9fd541103..0000000000 --- a/testsuites/sptests/sp04/init.c +++ /dev/null @@ -1,113 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_extensions_table Extensions = { - NULL, /* task create user extension */ - NULL, /* task start user extension */ - NULL, /* task restart user extension */ - NULL, /* task delete user extension */ - Task_switch, /* task switch user extension */ - NULL, /* task begin user extension */ - NULL, /* task exitted user extension */ - NULL /* fatal error user extension */ -}; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_time_of_day time; - - puts( "\n\n*** TEST 4 ***" ); - build_time( &time, 12, 31, 1988, 9, 15, 0, 0 ); - - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - Extension_name[ 1 ] = rtems_build_name( 'E', 'X', 'T', ' ' ); - - status = rtems_extension_create( - Extension_name[ 1 ], - &Extensions, - &Extension_id[ 1 ] - ); - directive_failed( status, "rtems_extension_create" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - Run_count[ 1 ] = 0; - Run_count[ 2 ] = 0; - Run_count[ 3 ] = 0; - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 1, - 2048, - RTEMS_TIMESLICE, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp04/sp04.doc b/testsuites/sptests/sp04/sp04.doc deleted file mode 100644 index 6f6355abfa..0000000000 --- a/testsuites/sptests/sp04/sp04.doc +++ /dev/null @@ -1,38 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test4 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - tm_set, tm_get, ev_receive, t_mode - -concepts: - - a. Verifies timeslicing ( all tasks are in timeslice mode ). - - b. Verifies the tswitch user extension. - - c. Verifies the no preemption mode. - - d. Verifies time-slice gets reset even if only one task ready. - -output: - The task name and the current time are printed out each time that a new - task is being dispatched. The configured timeslice is 100 ticks - ( 1 second ); therefore, a task name and the time are printed once - every second. After each task runs 3 times, task 1 changes its mode to - no preempt and runs for about 6 seconds and then changes its mode back to - preempt mode. diff --git a/testsuites/sptests/sp04/sp04.scn b/testsuites/sptests/sp04/sp04.scn deleted file mode 100644 index f104c0c482..0000000000 --- a/testsuites/sptests/sp04/sp04.scn +++ /dev/null @@ -1,24 +0,0 @@ -*** TEST 4 *** -TA1 - 09:15:00 12/31/1988 -TA1 - rtems_task_suspend - on Task 2 -TA1 - rtems_task_suspend - on Task 3 -TA1 - killing time -TA1 - rtems_task_resume - on Task 2 -TA1 - rtems_task_resume - on Task 3 -TA2 - 09:15:03 12/31/1988 -TA3 - 09:15:04 12/31/1988 -TA1 - 09:15:05 12/31/1988 -TA2 - 09:15:06 12/31/1988 -TA3 - 09:15:07 12/31/1988 -TA1 - 09:15:08 12/31/1988 -TA1 - rtems_task_mode - change mode to NO RTEMS_PREEMPT -TA1 - 09:15:09 12/31/1988 -TA1 - 09:15:10 12/31/1988 -TA1 - 09:15:11 12/31/1988 -TA1 - 09:15:12 12/31/1988 -TA1 - 09:15:13 12/31/1988 -TA1 - 09:15:14 12/31/1988 -TA1 - rtems_task_mode - change mode to RTEMS_PREEMPT -TA2 - 09:15:15 12/31/1988 -TA3 - 09:15:16 12/31/1988 -*** END OF TEST 4 *** diff --git a/testsuites/sptests/sp04/system.h b/testsuites/sptests/sp04/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp04/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp04/task1.c b/testsuites/sptests/sp04/task1.c deleted file mode 100644 index 8d0a620ec3..0000000000 --- a/testsuites/sptests/sp04/task1.c +++ /dev/null @@ -1,104 +0,0 @@ -/* Task_1 - * - * This test serves as a test task. It verifies timeslicing activities - * and tswitch extension processing. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "clockdrv.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_unsigned32 seconds; - rtems_unsigned32 old_seconds; - rtems_mode previous_mode; - rtems_time_of_day time; - rtems_status_code status; - rtems_unsigned32 start; - rtems_unsigned32 end; - - puts( "TA1 - rtems_task_suspend - on Task 2" ); - status = rtems_task_suspend( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - puts( "TA1 - rtems_task_suspend - on Task 3" ); - status = rtems_task_suspend( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_suspend of TA3" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH, &start ); - directive_failed( status, "rtems_clock_get" ); - - puts( "TA1 - killing time" ); - - for ( ; ; ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH, &end ); - directive_failed( status, "rtems_clock_get" ); - - if ( end > (start + 2) ) - break; - } - - puts( "TA1 - rtems_task_resume - on Task 2" ); - status = rtems_task_resume( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_resume of TA2" ); - - puts( "TA1 - rtems_task_resume - on Task 3" ); - status = rtems_task_resume( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_resume of TA3" ); - - while ( FOREVER ) { - if ( Run_count[ 1 ] == 3 ) { - puts( "TA1 - rtems_task_mode - change mode to NO RTEMS_PREEMPT" ); - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - old_seconds = time.second; - - for ( seconds = 0 ; seconds < 6 ; ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second != old_seconds ) { - old_seconds = time.second; - seconds++; - print_time( "TA1 - ", &time, "\n" ); - } - } - - puts( "TA1 - rtems_task_mode - change mode to RTEMS_PREEMPT" ); - status = rtems_task_mode( - RTEMS_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - - while ( FOREVER ); - } - } -} diff --git a/testsuites/sptests/sp04/task2.c b/testsuites/sptests/sp04/task2.c deleted file mode 100644 index 7574e7dc9f..0000000000 --- a/testsuites/sptests/sp04/task2.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It is just a CPU bound task - * requiring timesliced operation. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - while( FOREVER ); -} diff --git a/testsuites/sptests/sp04/task3.c b/testsuites/sptests/sp04/task3.c deleted file mode 100644 index a0e7482944..0000000000 --- a/testsuites/sptests/sp04/task3.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. It is just a CPU bound task - * requiring timesliced operation. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - while( FOREVER ); -} diff --git a/testsuites/sptests/sp04/tswitch.c b/testsuites/sptests/sp04/tswitch.c deleted file mode 100644 index 3f0c2047bc..0000000000 --- a/testsuites/sptests/sp04/tswitch.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Task_switch - * - * This routine is the tswitch user extension. It determines which - * task is being switched to and displays a message indicating the - * time and date that it gained control. - * - * Input parameters: - * unused - pointer to currently running TCB - * heir - pointer to heir TCB - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_extension Task_switch( - rtems_tcb *unused, - rtems_tcb *heir -) -{ - rtems_unsigned32 index; - rtems_time_of_day time; - rtems_status_code status; - - index = task_number( heir->Object.id ); - - switch( index ) { - case 1: - case 2: - case 3: - Run_count[ index ] += 1; - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - put_name( Task_name[ index ], FALSE ); - print_time( " - ", &time, "\n" ); - - if ( time.second >= 16 ) { - puts( "*** END OF TEST 4 ***" ); - exit( 0 ); - } - break; - - case 0: - default: - break; - } -} diff --git a/testsuites/sptests/sp05/init.c b/testsuites/sptests/sp05/init.c deleted file mode 100644 index 2f6b8a6eac..0000000000 --- a/testsuites/sptests/sp05/init.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 5 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp05/sp05.doc b/testsuites/sptests/sp05/sp05.doc deleted file mode 100644 index 583381a37e..0000000000 --- a/testsuites/sptests/sp05/sp05.doc +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test5 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident - tm_wkafter, t_suspend, t_resume - -concepts: - - a. Verifies that a task can be suspended and resumed. - - b. Verifies that a task can suspend itself. diff --git a/testsuites/sptests/sp05/sp05.scn b/testsuites/sptests/sp05/sp05.scn deleted file mode 100644 index 40afb2d4b2..0000000000 --- a/testsuites/sptests/sp05/sp05.scn +++ /dev/null @@ -1,47 +0,0 @@ -*** TEST 5 *** -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_task_suspend - suspend self -TA3 - rtems_task_suspend - suspend self -TA1 - rtems_task_suspend - suspend TA3 -TA1 - rtems_task_resume - resume TA2 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA1 - rtems_task_suspend - suspend TA2 -TA1 - rtems_task_resume - resume TA3 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA1 - rtems_task_suspend - suspend TA3 -TA1 - rtems_task_resume - resume TA2 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA1 - rtems_task_suspend - suspend TA2 -TA1 - rtems_task_resume - resume TA3 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA3 - rtems_task_wake_after - sleep 1 second -TA1 - rtems_task_suspend - suspend TA3 -TA1 - rtems_task_resume - resume TA2 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA2 - rtems_task_wake_after - sleep 1 second -TA1 - rtems_task_suspend - suspend TA2 -TA1 - rtems_task_resume - resume TA3 -*** END OF TEST 5 *** diff --git a/testsuites/sptests/sp05/system.h b/testsuites/sptests/sp05/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp05/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp05/task1.c b/testsuites/sptests/sp05/task1.c deleted file mode 100644 index 9b99586fc8..0000000000 --- a/testsuites/sptests/sp05/task1.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies that tasks can - * be suspended and resumed. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * NOTE: The rtems_task_suspend() directives fail on the first iteration. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id tid2; - rtems_id tid3; - rtems_unsigned32 pass; - rtems_status_code status; - - status = rtems_task_ident( Task_name[ 2 ], 1, &tid2 ); - directive_failed( status, "rtems_task_ident of TA2" ); - - status = rtems_task_ident( Task_name[ 3 ], 1, &tid3 ); - directive_failed( status, "rtems_task_ident of TA3" ); - - for ( pass=1 ; pass <= 3 ; pass++ ) { - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after of TA1" ); - - puts( "TA1 - rtems_task_suspend - suspend TA3" ); - status = rtems_task_suspend( tid3 ); - if ( pass == 1 ) { - fatal_directive_status( - status, - RTEMS_ALREADY_SUSPENDED, - "rtems_task_suspend of TA3" - ); - } else { - directive_failed( status, "rtems_task_suspend of TA3" ); - } - - puts( "TA1 - rtems_task_resume - resume TA2" ); - status = rtems_task_resume( tid2 ); - directive_failed( status, "rtems_task_resume of TA2" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_suspend - suspend TA2" ); - status = rtems_task_suspend( tid2 ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - puts( "TA1 - rtems_task_resume - resume TA3" ); - status = rtems_task_resume( tid3 ); - directive_failed( status, "rtems_task_resume" ); - } - - puts( "*** END OF TEST 5 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp05/task2.c b/testsuites/sptests/sp05/task2.c deleted file mode 100644 index 3878d8106d..0000000000 --- a/testsuites/sptests/sp05/task2.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. Makes sure a task can suspend - * itself. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA2 - rtems_task_suspend - suspend self" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - while( FOREVER ) { - puts( "TA2 - rtems_task_wake_after - sleep 1 second" ); - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after of TA2" ); - } -} diff --git a/testsuites/sptests/sp05/task3.c b/testsuites/sptests/sp05/task3.c deleted file mode 100644 index c03c6de75b..0000000000 --- a/testsuites/sptests/sp05/task3.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. Makes sure a task can suspend - * itself. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA3 - rtems_task_suspend - suspend self" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend of TA3" ); - - while( FOREVER ) { - puts( "TA3 - rtems_task_wake_after - sleep 1 second" ); - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after of TA3" ); - } -} diff --git a/testsuites/sptests/sp06/init.c b/testsuites/sptests/sp06/init.c deleted file mode 100644 index 08bab06594..0000000000 --- a/testsuites/sptests/sp06/init.c +++ /dev/null @@ -1,90 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority previous_priority; - - puts( "\n\n*** TEST 6 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - Argument = 0; - Restart_argument = 1; - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 10, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, Argument ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, Argument ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_set_priority( Task_id[ 3 ], 5, &previous_priority ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp06/sp06.doc b/testsuites/sptests/sp06/sp06.doc deleted file mode 100644 index e8b96f1f6b..0000000000 --- a/testsuites/sptests/sp06/sp06.doc +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test6 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - tm_wkafter, t_restart - -concepts: - - a. Verifies that a task can restart a task other than itself. - - b. Verifies that a task can restart itself. diff --git a/testsuites/sptests/sp06/sp06.scn b/testsuites/sptests/sp06/sp06.scn deleted file mode 100644 index 64f6489dc8..0000000000 --- a/testsuites/sptests/sp06/sp06.scn +++ /dev/null @@ -1,40 +0,0 @@ -*** TEST 6 *** -TA1 - is beginning to run -TA1 - restarting TA3 -TA2 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting TA2 -TA2 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting self -TA1 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting TA2 -TA2 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting self -TA1 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting TA2 -TA2 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting self -TA1 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting TA2 -TA2 - is beginning to run -TA2 - rtems_task_wake_after - sleep 1/2 second -TA2 - rtems_task_wake_after - sleep 1/2 second -TA1 - rtems_task_restart - restarting self -TA1 - is beginning to run -*** END OF TEST 6 *** - -NOTE: The prints from TA2 may not be as regular as indicated in the screen. - The important point is that TA2 is running and gets restarted. diff --git a/testsuites/sptests/sp06/system.h b/testsuites/sptests/sp06/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp06/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp06/task1.c b/testsuites/sptests/sp06/task1.c deleted file mode 100644 index 6d0f67f395..0000000000 --- a/testsuites/sptests/sp06/task1.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Task_1 - * - * This task serves as a test task. Verifies that a task can restart - * both itself and other tasks. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( argument ) -rtems_unsigned32 argument; -{ - rtems_unsigned32 pass; - rtems_status_code status; - - puts( "TA1 - is beginning to run" ); - - pass = argument + 1; - - if ( pass == 5 ) { - puts( "*** END OF TEST 6 ***" ); - exit( 0 ); - } - - if ( pass == 1 ) { - puts( "TA1 - restarting TA3" ); - status = rtems_task_restart( Task_id[ 3 ], Restart_argument ); - directive_failed( status, "rtems_task_restart of TA3" ); - - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_restart - restarting TA2" ); - status = rtems_task_restart( Task_id[ 2 ], Restart_argument ); - directive_failed( status, "rtems_task_restart TA2" ); - - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_restart - restarting self" ); - status = rtems_task_restart( Task_id[ 1 ], pass ); - directive_failed( status, "rtems_task_restart of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp06/task2.c b/testsuites/sptests/sp06/task2.c deleted file mode 100644 index 0c9e10bc07..0000000000 --- a/testsuites/sptests/sp06/task2.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It simply runs forever so - * another task can restart it. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( argument ) -rtems_task_argument argument; -{ - rtems_status_code status; - - puts( "TA2 - is beginning to run" ); - if ( argument == Argument ) { - status = rtems_task_wake_after( 2 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } - - while( FOREVER ) { - puts( "TA2 - rtems_task_wake_after - sleep 1/2 second" ); - status = rtems_task_wake_after( TICKS_PER_SECOND / 2 ); - directive_failed( status, "rtems_task_wake_after" ); - } -} diff --git a/testsuites/sptests/sp06/task3.c b/testsuites/sptests/sp06/task3.c deleted file mode 100644 index 379ef8de92..0000000000 --- a/testsuites/sptests/sp06/task3.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. It is started, has its priority - * changed, and when it runs it deletes itself. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp07/init.c b/testsuites/sptests/sp07/init.c deleted file mode 100644 index f5d00eae8e..0000000000 --- a/testsuites/sptests/sp07/init.c +++ /dev/null @@ -1,131 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_extensions_table Extensions = { - Task_create_extension, /* task create user extension */ - Task_start_extension, /* task start user extension */ - Task_restart_extension, /* task restart user extension */ - Task_delete_extension, /* task delete user extension */ - NULL, /* task switch user extension */ - NULL, /* begin user extension */ - Task_exit_extension, /* task exitted user extension */ - NULL /* fatal error extension */ -}; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 7 ***" ); - - Extension_name[ 1 ] = rtems_build_name( 'E', 'X', 'T', ' ' ); - - status = rtems_extension_create( - Extension_name[ 1 ], - &Extensions, - &Extension_id[ 1 ] - ); - directive_failed( status, "rtems_extension_create" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 250, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_create( - Task_name[ 4 ], - 254, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 4 ] - ); - directive_failed( status, "rtems_task_create of TA4" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_start( Task_id[ 4 ], Task_4, 0 ); - directive_failed( status, "rtems_task_start of TA4" ); - - status = rtems_task_restart( Task_id[ 3 ], 0 ); - directive_failed( status, "rtems_task_restart of TA3" ); - - status = rtems_task_set_note( Task_id[ 1 ], RTEMS_NOTEPAD_8, 4 ); - directive_failed( status, "task_set_node of TA1" ); - printf( "INIT - rtems_task_set_note - set TA1's RTEMS_NOTEPAD_8 " ); - puts ( "to TA1's priority: 04" ); - - status = rtems_task_set_note( Task_id[ 2 ], RTEMS_NOTEPAD_8, 4 ); - directive_failed( status, "task_set_node of TA2" ); - printf( "INIT - rtems_task_set_note - set TA2's RTEMS_NOTEPAD_8 " ); - puts ( "to TA2's priority: 04"); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp07/sp07.doc b/testsuites/sptests/sp07/sp07.doc deleted file mode 100644 index 47411194c6..0000000000 --- a/testsuites/sptests/sp07/sp07.doc +++ /dev/null @@ -1,37 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test7 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - t_delete, t_setreg, t_getreg, t_setpri, t_suspend - -concepts: - - a. Verifies that tasks can communicate with each other via the - t_setreg and t_getreg directives. - - b. Verifies that the highest priority task is dispatched to execute. - - c. Verifies setting the priority of both a ready and a blocked task. - - d. Verifies the deletion of ready and blocked tasks. - - e. Verifies the tcreate user extension. - - f. Verifies the tstart user extension. - - g. Verifies the tdelete user extension. diff --git a/testsuites/sptests/sp07/sp07.scn b/testsuites/sptests/sp07/sp07.scn deleted file mode 100644 index 1f6de2d93d..0000000000 --- a/testsuites/sptests/sp07/sp07.scn +++ /dev/null @@ -1,33 +0,0 @@ -*** TEST 7 *** -TASK_CREATE - TA1 - created. -TASK_CREATE - TA2 - created. -TASK_CREATE - TA3 - created. -TASK_CREATE - TA4 - created. -TASK_START - TA1 - started. -TASK_START - TA2 - started. -TASK_START - TA3 - started. -TASK_START - TA4 - started. -TASK_RESTART - TA3 - restarted. -INIT - rtems_task_set_note - set TA1's RTEMS_NOTEPAD_8 to TA1's priority: 04 -INIT - rtems_task_set_note - set TA2's RTEMS_NOTEPAD_8 to TA2's priority: 04 - -TA1 - rtems_task_set_priority - get initial priority of self: 04 -TA1 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: 04 -TA1 - rtems_task_set_note - set TA2's RTEMS_NOTEPAD_8: 03 -TA1 - rtems_task_set_priority - set TA2's priority: 03 -TA2 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: 03 -TA2 - rtems_task_set_note - set TA1's RTEMS_NOTEPAD_8: 02 -TA2 - rtems_task_set_priority - set TA1's priority: 02 -TA1 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: 02 -TA1 - rtems_task_set_note - set TA2's RTEMS_NOTEPAD_8: 01 -TA1 - rtems_task_set_priority - set TA2's priority: 01 -TA2 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: 01 -TA2 - rtems_task_suspend - suspend TA1 -TA2 - rtems_task_set_priority - set priority of TA1 ( blocked ) -TASK_DELETE - TA2 deleting TA1 -TASK_DELETE - TA2 deleting TA3 -TASK_DELETE - TA2 deleting TA2 -TA4 - exitting task -RTEMS_TASK_EXITTED - extension invoked for TA4 -*** END OF TEST 7 *** -TASK_DELETE - TA4 deleting TA4 <---- may not appear diff --git a/testsuites/sptests/sp07/system.h b/testsuites/sptests/sp07/system.h deleted file mode 100644 index 01a3e7f765..0000000000 --- a/testsuites/sptests/sp07/system.h +++ /dev/null @@ -1,35 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* constants */ - -#define SI_NAME 0x53595349 /* name - "SYSI" */ -#define I_NAME 0x49444c45 /* name - "IDLE" */ - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp07/task1.c b/testsuites/sptests/sp07/task1.c deleted file mode 100644 index 62fa35cee9..0000000000 --- a/testsuites/sptests/sp07/task1.c +++ /dev/null @@ -1,85 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies intertask communication - * using task notepads and verifies the the user extensions (tcreate, etc). - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority the_priority; - rtems_task_priority previous_priority; - - pause(); - - status = rtems_task_set_priority( - RTEMS_SELF, - RTEMS_CURRENT_PRIORITY, - &the_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - printf( - "TA1 - rtems_task_set_priority - get initial priority of self: %02d\n", - the_priority - ); - - while( FOREVER ) { - status = rtems_task_get_note( RTEMS_SELF, RTEMS_NOTEPAD_8, &the_priority ); - directive_failed( status, "rtems_task_get_note" ); - printf( -"TA1 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: %02d\n", - the_priority - ); - - if ( --the_priority == 0 ) { - puts( "TA1 - rtems_task_suspend - suspend TA2" ); - status = rtems_task_suspend( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_suspend" ); - - puts( "TA1 - rtems_task_set_priority - set priority of TA2 ( blocked )" ); - status = rtems_task_set_priority( Task_id[ 2 ], 5, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - status = rtems_task_delete( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_delete of TA2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); - } - - printf( "TA1 - rtems_task_set_note - set TA2's RTEMS_NOTEPAD_8: %02d\n", - the_priority - ); - status = rtems_task_set_note( Task_id[ 2 ], RTEMS_NOTEPAD_8, the_priority ); - directive_failed( status, "rtems_task_set_note" ); - - printf( "TA1 - rtems_task_set_priority - set TA2's priority: %02d\n", - the_priority - ); - status = rtems_task_set_priority( - Task_id[ 2 ], - the_priority, - &previous_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - } -} diff --git a/testsuites/sptests/sp07/task2.c b/testsuites/sptests/sp07/task2.c deleted file mode 100644 index 622bdd8e3d..0000000000 --- a/testsuites/sptests/sp07/task2.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. Plays with priorities to verify - * that the highest priority task is always executed. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority the_priority; - rtems_task_priority previous_priority; - - while( FOREVER ) { - - status = rtems_task_get_note( RTEMS_SELF, RTEMS_NOTEPAD_8, &the_priority ); - directive_failed( status, "rtems_task_get_note" ); - printf( -"TA2 - rtems_task_get_note - get RTEMS_NOTEPAD_8 - current priority: %02d\n", - the_priority - ); - - if ( --the_priority == 0 ) { - puts( "TA2 - rtems_task_suspend - suspend TA1" ); - status = rtems_task_suspend( Task_id[ 1 ] ); - directive_failed( status, "rtems_task_suspend" ); - - puts( "TA2 - rtems_task_set_priority - set priority of TA1 ( blocked )" ); - status = rtems_task_set_priority( Task_id[ 1 ], 5, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - status = rtems_task_delete( Task_id[ 1 ] ); /* TA1 is blocked */ - directive_failed( status, "rtems_task_delete of TA1" ); - - status = rtems_task_delete( Task_id[ 3 ] ); /* TA3 is ready */ - directive_failed( status, "rtems_task_delete of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of SELD" ); - - } else { - - printf( "TA2 - rtems_task_set_note - set TA1's RTEMS_NOTEPAD_8: %02d\n", - the_priority - ); - status = rtems_task_set_note(Task_id[ 1 ], RTEMS_NOTEPAD_8, the_priority); - directive_failed( status, "rtems_task_set_note" ); - - printf( "TA2 - rtems_task_set_priority - set TA1's priority: %02d\n", - the_priority - ); - status = rtems_task_set_priority( - Task_id[ 1 ], - the_priority, - &previous_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - } - } -} diff --git a/testsuites/sptests/sp07/task3.c b/testsuites/sptests/sp07/task3.c deleted file mode 100644 index dce44b283b..0000000000 --- a/testsuites/sptests/sp07/task3.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Task_3 - * - * This routine serves as a low priority test task that should never - * execute. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - - while( FOREVER ) { - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - } -} diff --git a/testsuites/sptests/sp07/task4.c b/testsuites/sptests/sp07/task4.c deleted file mode 100644 index cc9de6d4c3..0000000000 --- a/testsuites/sptests/sp07/task4.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Task_4 - * - * This routine serves as a low priority test task that should exit - * a soon as it runs to test the taskexitted user extension. - * execute. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_4( - rtems_task_argument argument -) -{ - puts( "TA4 - exitting task" ); -} diff --git a/testsuites/sptests/sp07/taskexit.c b/testsuites/sptests/sp07/taskexit.c deleted file mode 100644 index ad52d1f3a7..0000000000 --- a/testsuites/sptests/sp07/taskexit.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Task_exit_extension - * - * This routine is the task exitted user extension. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_extension Task_exit_extension( - rtems_tcb *running_task -) -{ - if ( task_number( running_task->Object.id ) > 0 ) { - puts_nocr( "RTEMS_TASK_EXITTED - extension invoked for " ); - put_name( Task_name[ task_number( running_task->Object.id ) ], TRUE ); - } - - puts("*** END OF TEST 7 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp07/tcreate.c b/testsuites/sptests/sp07/tcreate.c deleted file mode 100644 index 7b066630f0..0000000000 --- a/testsuites/sptests/sp07/tcreate.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Task_create_extension - * - * This routine is the tcreate user extension. - * - * Input parameters: - * unused - pointer to currently running TCB - * created_task - pointer to new TCB being created - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_extension Task_create_extension( - rtems_tcb *unused, - rtems_tcb *created_task -) -{ - if ( task_number( created_task->Object.id ) > 0 ) { - puts_nocr( "TASK_CREATE - " ); - put_name( Task_name[ task_number( created_task->Object.id ) ], FALSE ); - puts( " - created." ); - } -} diff --git a/testsuites/sptests/sp07/tdelete.c b/testsuites/sptests/sp07/tdelete.c deleted file mode 100644 index 9d7c5749c1..0000000000 --- a/testsuites/sptests/sp07/tdelete.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Task_delete_extension - * - * This routine is the delete user extension. - * - * Input parameters: - * running_task - pointer to running TCB - * deleted_task - pointer to TCB deleted - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_extension Task_delete_extension( - rtems_tcb *running_task, - rtems_tcb *deleted_task -) -{ - if ( task_number( running_task->Object.id ) > 0 ) { - puts_nocr( "TASK_DELETE - " ); - put_name( Task_name[ task_number( running_task->Object.id ) ], FALSE ); - } - if ( task_number( deleted_task->Object.id ) > 0 ) { - puts_nocr( " deleting " ); - put_name( Task_name[ task_number( deleted_task->Object.id ) ], TRUE ); - } -} diff --git a/testsuites/sptests/sp07/trestart.c b/testsuites/sptests/sp07/trestart.c deleted file mode 100644 index 6cefb485a6..0000000000 --- a/testsuites/sptests/sp07/trestart.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Task_restart_extension - * - * This routine is the trestart user extension. - * - * Input parameters: - * unused - pointer to currently running TCB - * restarted_task - pointer to new TCB being started - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Task_restart_extension( - rtems_tcb *unused, - rtems_tcb *restarted_task -) -{ - if ( task_number( restarted_task->Object.id ) > 0 ) { - puts_nocr( "TASK_RESTART - " ); - put_name( Task_name[ task_number( restarted_task->Object.id ) ], FALSE ); - puts( " - restarted." ); - } -} diff --git a/testsuites/sptests/sp07/tstart.c b/testsuites/sptests/sp07/tstart.c deleted file mode 100644 index 1b1fc795b7..0000000000 --- a/testsuites/sptests/sp07/tstart.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Task_start_extension - * - * This routine is the tstart user extension. - * - * Input parameters: - * unused - pointer to currently running TCB - * started_task - pointer to new TCB being started - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_extension Task_start_extension( - rtems_tcb *unused, - rtems_tcb *started_task -) -{ - if ( task_number( started_task->Object.id ) > 0 ) { - puts_nocr( "TASK_START - " ); - put_name( Task_name[ task_number( started_task->Object.id ) ], FALSE ); - puts( " - started." ); - } -} diff --git a/testsuites/sptests/sp08/init.c b/testsuites/sptests/sp08/init.c deleted file mode 100644 index e3020035ce..0000000000 --- a/testsuites/sptests/sp08/init.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 8 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp08/sp08.doc b/testsuites/sptests/sp08/sp08.doc deleted file mode 100644 index 2b152779d7..0000000000 --- a/testsuites/sptests/sp08/sp08.doc +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test8 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, - t_mode - -concepts: - - a. Verifies every mode change possible. - - b. Verifies the fatal error handler. diff --git a/testsuites/sptests/sp08/sp08.scn b/testsuites/sptests/sp08/sp08.scn deleted file mode 100644 index d85ccc384f..0000000000 --- a/testsuites/sptests/sp08/sp08.scn +++ /dev/null @@ -1,22 +0,0 @@ -*** TEST 8 *** -TA1 - rtems_task_mode - RTEMS_ASR - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: 00000400 -TA1 - rtems_task_mode - RTEMS_ASR - previous mode: 00000400 -TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: 00000200 -TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: 00000200 -TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: 00000100 -TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: 00000100 -TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 3 ) - previous mode: 00000000 -TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: 00000003 -TA1 - rtems_task_mode - set all modes - previous mode: 00000005 -TA1 - rtems_task_mode - set all modes - previous mode: 00000703 -TA1 - rtems_task_mode - clear all modes - previous mode: 00000703 -TA1 - rtems_task_mode - get current mode - previous mode: 00000000 -*** END OF TEST 8 *** - -NOTE: The interrupt level lines will be different on CPUs with few levels. diff --git a/testsuites/sptests/sp08/system.h b/testsuites/sptests/sp08/system.h deleted file mode 100644 index dec5151b46..0000000000 --- a/testsuites/sptests/sp08/system.h +++ /dev/null @@ -1,33 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -#define put_mode( _comment, _output_mode ) \ - printf( "%s %08x\n", _comment, _output_mode ); - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp08/task1.c b/testsuites/sptests/sp08/task1.c deleted file mode 100644 index eddcb11191..0000000000 --- a/testsuites/sptests/sp08/task1.c +++ /dev/null @@ -1,256 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies all combinations of - * task mode changes. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_mode previous_mode; - rtems_status_code status; - -/* BEGINNING OF RTEMS_ASR */ - - status = rtems_task_mode( RTEMS_ASR, RTEMS_ASR_MASK, &previous_mode ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_ASR - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_NO_ASR, - RTEMS_ASR_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_NO_ASR, - RTEMS_ASR_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_ASR - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_ASR, - RTEMS_ASR_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_ASR - previous mode: ", - previous_mode - ); - -/* END OF RTEMS_ASR */ - -/* BEGINNING OF RTEMS_TIMESLICE */ - - status = rtems_task_mode( - RTEMS_NO_TIMESLICE, - RTEMS_TIMESLICE_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_TIMESLICE, - RTEMS_TIMESLICE_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_TIMESLICE, - RTEMS_TIMESLICE_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_TIMESLICE - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_NO_TIMESLICE, - RTEMS_TIMESLICE_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE - previous mode: ", - previous_mode - ); - -/* END OF RTEMS_TIMESLICE */ - -/* BEGINNING OF RTEMS_PREEMPT */ - - status = rtems_task_mode( - RTEMS_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_PREEMPT - previous mode: ", - previous_mode - ); - -/* END OF RTEMS_PREEMPT */ - -/* BEGINNING OF RTEMS_INTERRUPT_LEVEL */ - - status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(3), - RTEMS_INTERRUPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 3 ) - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(5), - RTEMS_INTERRUPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: ", - previous_mode - ); - -/* END OF RTEMS_INTERRUPT_LEVEL */ - -/* BEGINNING OF COMBINATIONS */ - - status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR | - RTEMS_TIMESLICE | RTEMS_NO_PREEMPT, - RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK | - RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - set all modes - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR | - RTEMS_TIMESLICE | RTEMS_NO_PREEMPT, - RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK | - RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - set all modes - previous mode: ", - previous_mode - ); - - status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(0) | RTEMS_ASR | RTEMS_NO_TIMESLICE | RTEMS_PREEMPT, - RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK | - RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - clear all modes - previous mode: ", - previous_mode - ); - -/* END OF COMBINATIONS */ - -/* BEGINNING OF CURRENT MODE */ - - status = rtems_task_mode( - RTEMS_CURRENT_MODE, - RTEMS_CURRENT_MODE, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - put_mode( - "TA1 - rtems_task_mode - get current mode - previous mode: ", - previous_mode - ); - -/* END OF CURRENT MODE */ - - puts( "*** END OF TEST 8 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp09/delay.c b/testsuites/sptests/sp09/delay.c deleted file mode 100644 index dd78610be8..0000000000 --- a/testsuites/sptests/sp09/delay.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Delayed_routine - * - * This routine is used as the timer routine for Timer Manager tests. - * - * Input parameters: - * ignored - this parameter is ignored - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Delayed_routine( - rtems_id ignored_id, - void *ignored_address -) -{ -} diff --git a/testsuites/sptests/sp09/init.c b/testsuites/sptests/sp09/init.c deleted file mode 100644 index 3ca4b62404..0000000000 --- a/testsuites/sptests/sp09/init.c +++ /dev/null @@ -1,123 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 9 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' ); - Task_name[ 6 ] = rtems_build_name( 'T', 'A', '6', ' ' ); - Task_name[ 7 ] = rtems_build_name( 'T', 'A', '7', ' ' ); - Task_name[ 8 ] = rtems_build_name( 'T', 'A', '8', ' ' ); - Task_name[ 9 ] = rtems_build_name( 'T', 'A', '9', ' ' ); - Task_name[ 10 ] = rtems_build_name( 'T', 'A', 'A', ' ' ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'M', '1', ' ' ); - Semaphore_name[ 2 ] = rtems_build_name( 'S', 'M', '2', ' ' ); - Semaphore_name[ 3 ] = rtems_build_name( 'S', 'M', '3', ' ' ); - - Queue_name[ 1 ] = rtems_build_name( 'M', 'Q', '1', ' ' ); - Queue_name[ 2 ] = rtems_build_name( 'M', 'Q', '2', ' ' ); - - Partition_name[ 1 ] = rtems_build_name( 'P', 'T', '1', ' ' ); - - Region_name[ 1 ] = rtems_build_name( 'R', 'N', '1', ' ' ); - - Port_name[ 1 ] = rtems_build_name( 'D', 'P', '1', ' ' ); - - Period_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - -#if 0 - status = rtems_task_create( - Task_name[1], - 4, - 10, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_task_create with illegal stack size" - ); - puts( "INIT - rtems_task_create - RTEMS_INVALID_SIZE" ); -#endif - puts( "INIT - rtems_task_create - RTEMS_INVALID_SIZE -- NOT CHECKED" ); - - status = rtems_task_create( - Task_name[1], - 0, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - fatal_directive_status( - status, - RTEMS_INVALID_PRIORITY, - "rtems_task_create with illegal priority" - ); - puts( "INIT - rtems_task_create - RTEMS_INVALID_PRIORITY" ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_restart( Task_id[ 1 ], 0 ); - fatal_directive_status( - status, - RTEMS_INCORRECT_STATE, - "rtems_task_restart of DORMANT task" - ); - puts( "INIT - rtems_task_restart - RTEMS_INCORRECT_STATE" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp09/isr.c b/testsuites/sptests/sp09/isr.c deleted file mode 100644 index 292e9c0225..0000000000 --- a/testsuites/sptests/sp09/isr.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Service_routine - * - * This routine is used as the timer routine for Interrupt Manager tests. - * - * Input parameters: - * ignored - this parameter is ignored - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_isr Service_routine( - rtems_vector_number ignored -) -{ -} diff --git a/testsuites/sptests/sp09/screen01.c b/testsuites/sptests/sp09/screen01.c deleted file mode 100644 index 39012f5051..0000000000 --- a/testsuites/sptests/sp09/screen01.c +++ /dev/null @@ -1,168 +0,0 @@ -/* Screen1 - * - * This routine generates error screen 1 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen1() -{ - rtems_unsigned32 notepad_value; - rtems_id self_id; - rtems_task_priority previous_priority; - rtems_status_code status; - - status = rtems_task_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_delete with illegal id" - ); - puts( "TA1 - rtems_task_delete - RTEMS_INVALID_ID" ); - - status = rtems_task_get_note( RTEMS_SELF, 100, ¬epad_value ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_task_get_note with illegal notepad" - ); - puts( "TA1 - rtems_task_get_note - RTEMS_INVALID_NUMBER" ); - - status = rtems_task_get_note( 100, RTEMS_NOTEPAD_LAST, ¬epad_value ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_get_note with illegal id" - ); - puts( "TA1 - rtems_task_get_note - RTEMS_INVALID_ID" ); - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &self_id ); - directive_failed( status, "rtems_task_ident of self" ); - - if ( self_id != Task_id[ 1 ] ) { - puts( "ERROR - rtems_task_ident - incorrect ID returned!" ); - } - puts( "TA1 - rtems_task_ident - current task RTEMS_SUCCESSFUL" ); - - status = rtems_task_ident( 100, RTEMS_SEARCH_ALL_NODES, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_task_ident with illegal name (local)" - ); - puts( "TA1 - rtems_task_ident - global RTEMS_INVALID_NAME" ); - - status = rtems_task_ident( 100, 1, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_task_ident with illegal name (global)" - ); - puts( "TA1 - rtems_task_ident - local RTEMS_INVALID_NAME" ); - - status = rtems_task_ident( 100, 2, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NODE, - "rtems_task_ident with illegal node" - ); - puts( "TA1 - rtems_task_ident - RTEMS_INVALID_NODE" ); - - status = rtems_task_restart( 100, 0 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_restart with illegal id" - ); - puts( "TA1 - rtems_task_restart - RTEMS_INVALID_ID" ); - - status = rtems_task_resume( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_resume with illegal id" - ); - puts( "TA1 - rtems_task_resume - RTEMS_INVALID_ID" ); - - status = rtems_task_resume( RTEMS_SELF ); - fatal_directive_status( - status, - RTEMS_INCORRECT_STATE, - "rtems_task_resume of ready task" - ); - puts( "TA1 - rtems_task_resume - RTEMS_INCORRECT_STATE" ); - - status = rtems_task_set_priority( RTEMS_SELF, 512, &previous_priority ); - fatal_directive_status( - status, - RTEMS_INVALID_PRIORITY, - "rtems_task_set_priority with illegal priority" - ); - puts( "TA1 - rtems_task_set_priority - RTEMS_INVALID_PRIORITY" ); - - status = rtems_task_set_priority( 100, 8, &previous_priority ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_set_priority with illegal id" - ); - puts( "TA1 - rtems_task_set_priority - RTEMS_INVALID_ID" ); - - status = rtems_task_set_note( - RTEMS_SELF, - RTEMS_NOTEPAD_LAST+10, - notepad_value - ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_task_set_note with illegal notepad" - ); - puts( "TA1 - rtems_task_set_note - RTEMS_INVALID_NUMBER" ); - - status = rtems_task_set_note( 100, RTEMS_NOTEPAD_LAST, notepad_value ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_set_note with illegal id" - ); - puts( "TA1 - rtems_task_set_note - RTEMS_INVALID_ID" ); - - status = rtems_task_start( 100, Task_1, 0 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_start with illegal id" - ); - puts( "TA1 - rtems_task_start - RTEMS_INVALID_ID" ); - - status = rtems_task_start( 0, Task_1, 0 ); - fatal_directive_status( - status, - RTEMS_INCORRECT_STATE, - "rtems_task_start of ready task" - ); - puts( "TA1 - rtems_task_start - RTEMS_INCORRECT_STATE" ); - - status = rtems_task_suspend( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_suspend with illegal id" - ); - puts( "TA1 - rtems_task_suspend - RTEMS_INVALID_ID" ); -} diff --git a/testsuites/sptests/sp09/screen02.c b/testsuites/sptests/sp09/screen02.c deleted file mode 100644 index 02eb5e4498..0000000000 --- a/testsuites/sptests/sp09/screen02.c +++ /dev/null @@ -1,192 +0,0 @@ -/* Screen2 - * - * This routine generates error screen 2 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen2() -{ - rtems_time_of_day time; - rtems_status_code status; - -/* errors before clock is set */ - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - if ( status == RTEMS_SUCCESSFUL ) { - puts( - "TA1 - rtems_clock_get - RTEMS_NOT_DEFINED -- DID BSP SET THE TIME OF DAY?" - ); - } else { - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_clock_get before clock is set" - ); - puts( "TA1 - rtems_clock_get - RTEMS_NOT_DEFINED" ); - } - - status = rtems_task_wake_when( &time ); - if ( status == RTEMS_SUCCESSFUL ) { - puts( -"TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED -- DID BSP SET THE TIME OF DAY?" - ); - } else { - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_task_wake_when before clock is set" - ); - puts( "TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED" ); - } - - status = rtems_timer_fire_when( 0, &time, Delayed_routine, NULL ); - if ( status == RTEMS_SUCCESSFUL ) { - puts( - "TA1 - timer_wake_when - RTEMS_NOT_DEFINED -- DID BSP SET THE TIME OF DAY?" - ); - } else { - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "task_fire_when before clock is set" - ); - puts( "TA1 - rtems_timer_fire_when - RTEMS_NOT_DEFINED" ); - } - - build_time( &time, 2, 5, 1987, 8, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid year" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 15, 5, 1988, 8, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid month" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 32, 1988, 8, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid day" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 25, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid hour" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 8, 61, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid minute" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 8, 30, 61, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid second" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 8, 30, 45, TICKS_PER_SECOND + 1 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_clock_set with invalid ticks per second" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 8, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set successful" ); - puts( " - RTEMS_SUCCESSFUL" ); - -/* rtems_task_wake_when */ - - build_time( &time, 2, 5, 1988, 8, 30, 48, TICKS_PER_SECOND + 1 ); - time.second += 3; - puts( "TA1 - rtems_task_wake_when - TICKINVALID - sleep about 3 seconds" ); - - status = rtems_task_wake_when( &time ); - directive_failed( - status, - "rtems_task_wake_when with invalid ticks per second" - ); - puts( "TA1 - rtems_task_wake_when - TICKINVALID - woke up RTEMS_SUCCESSFUL" ); - - build_time( &time, 2, 5, 1961, 8, 30, 48, 0 ); - print_time( "TA1 - rtems_task_wake_when - ", &time, "" ); - status = rtems_task_wake_when( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_task_wake_when with invalid year" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - build_time( &time, 2, 5, 1988, 25, 30, 48, 0 ); - print_time( "TA1 - rtems_task_wake_when - ", &time, "" ); - status = rtems_task_wake_when( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_task_wake_when with invalid hour" - ); - puts( " - RTEMS_INVALID_CLOCK" ); - - rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - print_time( "TA1 - current time - ", &time, "\n" ); - - time.month = 1; - print_time( "TA1 - rtems_task_wake_when - ", &time, "" ); - status = rtems_task_wake_when( &time ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_task_wake_when before current time" - ); - puts( " - RTEMS_INVALID_CLOCK" ); -} diff --git a/testsuites/sptests/sp09/screen03.c b/testsuites/sptests/sp09/screen03.c deleted file mode 100644 index 7f431c45df..0000000000 --- a/testsuites/sptests/sp09/screen03.c +++ /dev/null @@ -1,204 +0,0 @@ -/* Screen3 - * - * This routine generates error screen 3 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_configuration_table BSP_Configuration; - -void Screen3() -{ - rtems_name task_name; - rtems_status_code status; - - task_name = 1; - status = rtems_task_create( - 0, - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_task_create with illegal name" - ); - puts( "TA1 - rtems_task_create - RTEMS_INVALID_NAME" ); - - status = rtems_task_create( - task_name, - 1, - BSP_Configuration.work_space_size, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_task_create with a stack size larger than the workspace" - ); - puts( "TA1 - rtems_task_create - stack size - RTEMS_UNSATISFIED" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - puts( "TA1 - rtems_task_create - TA2 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_suspend( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_suspend of TA2" ); - puts( "TA1 - rtems_task_suspend - suspend TA2 - RTEMS_SUCCESSFUL" ); - - status = rtems_task_suspend( Task_id[ 2 ] ); - fatal_directive_status( - status, - RTEMS_ALREADY_SUSPENDED, - "rtems_task_suspend of suspended TA2" - ); - puts( "TA1 - rtems_task_suspend - suspend TA2 - RTEMS_ALREADY_SUSPENDED" ); - - status = rtems_task_resume( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_resume of TA2" ); - puts( "TA1 - rtems_task_resume - TA2 resumed - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 3 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - puts( "TA1 - rtems_task_create - TA3 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 4 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 4 ] - ); - directive_failed( status, "rtems_task_create of TA4" ); - puts( "TA1 - rtems_task_create - 4 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 5 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 5 ] - ); - directive_failed( status, "rtems_task_create of TA5" ); - puts( "TA1 - rtems_task_create - 5 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 6 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 6 ] - ); - directive_failed( status, "rtems_task_create of TA6" ); - puts( "TA1 - rtems_task_create - 6 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 7 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 7 ] - ); - directive_failed( status, "rtems_task_create of TA7" ); - puts( "TA1 - rtems_task_create - 7 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 8 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 8 ] - ); - directive_failed( status, "rtems_task_create of TA8" ); - puts( "TA1 - rtems_task_create - 8 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 9 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 9 ] - ); - directive_failed( status, "rtems_task_create of TA9" ); - puts( "TA1 - rtems_task_create - 9 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - Task_name[ 10 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 10 ] - ); - directive_failed( status, "rtems_task_create of TA10" ); - puts( "TA1 - rtems_task_create - 10 created - RTEMS_SUCCESSFUL" ); - - status = rtems_task_create( - task_name, - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_task_create for too many tasks" - ); - puts( "TA1 - rtems_task_create - 11 - RTEMS_TOO_MANY" ); - - status = rtems_task_create( - task_name, - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_GLOBAL, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_MP_NOT_CONFIGURED, - "rtems_task_create of global task in a single cpu system" - ); - puts( "TA1 - rtems_task_create - RTEMS_MP_NOT_CONFIGURED" ); -} diff --git a/testsuites/sptests/sp09/screen04.c b/testsuites/sptests/sp09/screen04.c deleted file mode 100644 index 6e3866cb05..0000000000 --- a/testsuites/sptests/sp09/screen04.c +++ /dev/null @@ -1,85 +0,0 @@ -/* Screen4 - * - * This routine generates error screen 4 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen4() -{ - rtems_event_set event_out; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &event_out - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_event_receive unsatisfied (ALL)" - ); - puts( "TA1 - rtems_event_receive - RTEMS_UNSATISFIED ( all conditions )" ); - - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_EVENT_ANY | RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &event_out - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_event_receive unsatisfied (ANY)" - ); - puts( "TA1 - rtems_event_receive - RTEMS_UNSATISFIED ( any condition )" ); - - puts( "TA1 - rtems_event_receive - timeout in 3 seconds" ); - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - 3 * TICKS_PER_SECOND, - &event_out - ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_event_receive" - ); - puts( "TA1 - rtems_event_receive - woke up with RTEMS_TIMEOUT" ); - - status = rtems_event_send( 100, RTEMS_EVENT_16 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_event_send with illegal id" - ); - puts( "TA1 - rtems_event_send - RTEMS_INVALID_ID" ); - - puts( "TA1 - rtems_task_wake_after - sleep 1 second - RTEMS_SUCCESSFUL" ); - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - build_time( &time, 2, 5, 1988, 8, 30, 45, 0 ); - print_time( "TA1 - rtems_clock_set - ", &time, "" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - puts( " - RTEMS_SUCCESSFUL" ); -} diff --git a/testsuites/sptests/sp09/screen05.c b/testsuites/sptests/sp09/screen05.c deleted file mode 100644 index 9b091a407a..0000000000 --- a/testsuites/sptests/sp09/screen05.c +++ /dev/null @@ -1,148 +0,0 @@ -/* Screen5 - * - * This routine generates error screen 5 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen5() -{ - rtems_status_code status; - - status = rtems_semaphore_create( 0, 1, RTEMS_DEFAULT_ATTRIBUTES, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_semaphore_create with illegal name" - ); - puts( "TA1 - rtems_semaphore_create - RTEMS_INVALID_NAME" ); - - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - puts( "TA1 - rtems_semaphore_create - 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_semaphore_create( - Semaphore_name[ 2 ], - 1, - RTEMS_BINARY_SEMAPHORE, - &Semaphore_id[ 2 ] - ); - directive_failed( status, "rtems_semaphore_create" ); - puts( "TA1 - rtems_semaphore_create - 2 - RTEMS_SUCCESSFUL" ); - - status = rtems_semaphore_create( - Semaphore_name[ 3 ], - 1, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_semaphore_create of too many" - ); - puts( "TA1 - rtems_semaphore_create - 3 - RTEMS_TOO_MANY" ); - - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_INHERIT_PRIORITY | RTEMS_BINARY_SEMAPHORE | RTEMS_FIFO, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_semaphore_create of RTEMS_FIFO RTEMS_INHERIT_PRIORITY" - ); - puts( "TA1 - rtems_semaphore_create - RTEMS_NOT_DEFINED" ); - - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_INHERIT_PRIORITY | RTEMS_COUNTING_SEMAPHORE | RTEMS_PRIORITY, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_semaphore_create of RTEMS_COUNTING_SEMAPHORE RTEMS_INHERIT_PRIORITY" - ); - puts( "TA1 - rtems_semaphore_create - RTEMS_NOT_DEFINED" ); - - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 2, - RTEMS_BINARY_SEMAPHORE, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_semaphore_create of binary semaphore with count > 1" - ); - puts( "TA1 - rtems_semaphore_create - RTEMS_INVALID_NUMBER" ); - - status = rtems_semaphore_create( - Semaphore_name[ 3 ], - 1, - RTEMS_GLOBAL, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_MP_NOT_CONFIGURED, - "rtems_semaphore_create of mp not configured" - ); - puts( "TA1 - rtems_semaphore_create - RTEMS_MP_NOT_CONFIGURED" ); - - status = rtems_semaphore_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_semaphore_delete with illegal id" - ); - puts( "TA1 - rtems_semaphore_delete - unknown RTEMS_INVALID_ID" ); - - status = rtems_semaphore_delete( 0x010100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_semaphore_delete with local illegal id" - ); - puts( "TA1 - rtems_semaphore_delete - local RTEMS_INVALID_ID" ); - - status = rtems_semaphore_ident( 100, RTEMS_SEARCH_ALL_NODES, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_semaphore_ident will illegal name (local)" - ); - puts( "TA1 - rtems_semaphore_ident - global RTEMS_INVALID_NAME" ); - - status = rtems_semaphore_ident( 100, 1, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_semaphore_ident will illegal name (global)" - ); - puts( "TA1 - rtems_semaphore_ident - local RTEMS_INVALID_NAME" ); -} diff --git a/testsuites/sptests/sp09/screen06.c b/testsuites/sptests/sp09/screen06.c deleted file mode 100644 index 40ad75d606..0000000000 --- a/testsuites/sptests/sp09/screen06.c +++ /dev/null @@ -1,125 +0,0 @@ -/* Screen6 - * - * This routine generates error screen 6 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen6() -{ - rtems_status_code status; - - status = rtems_semaphore_obtain( - 100, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_semaphore_obtain with illegal id" - ); - puts( "TA1 - rtems_semaphore_obtain - RTEMS_INVALID_ID" ); - - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain successful" ); - puts( "TA1 - rtems_semaphore_obtain - got sem 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_semaphore_obtain not available" - ); - puts( "TA1 - rtems_semaphore_obtain - RTEMS_UNSATISFIED" ); - - puts( "TA1 - rtems_semaphore_obtain - timeout in 3 seconds" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - 3 * TICKS_PER_SECOND - ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_semaphore_obtain timeout" - ); - puts( "TA1 - rtems_semaphore_obtain - woke up with RTEMS_TIMEOUT" ); - - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - fatal_directive_status( - status, - RTEMS_NOT_OWNER_OF_RESOURCE, - "rtems_semaphore_release and not owner" - ); - puts( "TA1 - rtems_semaphore_release - RTEMS_NOT_OWNER_OF_RESOURCE" ); - - status = rtems_semaphore_release( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_semaphore_release with illegal id" - ); - puts( "TA1 - rtems_semaphore_release - RTEMS_INVALID_ID" ); - - puts( "TA1 - rtems_task_start - start TA2 - RTEMS_SUCCESSFUL" ); - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - puts( "TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after (yield)" ); - - puts( "TA1 - rtems_semaphore_delete - delete sem 1 - RTEMS_SUCCESSFUL" ); - status = rtems_semaphore_delete( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_delete of SM1" ); - - puts( "TA1 - rtems_semaphore_obtain - binary semaphore" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain"); - - puts( "TA1 - rtems_semaphore_delete - delete sem 2 - RTEMS_RESOURCE_IN_USE" ); - status = rtems_semaphore_delete( Semaphore_id[ 2 ] ); - fatal_directive_status( - status, - RTEMS_RESOURCE_IN_USE, - "rtems_semaphore_delete of SM2" - ); - - puts( "TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after (yield)" ); - - status = rtems_task_delete( Task_id[ 2 ] ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_task_delete after the task has been deleted" - ); -} diff --git a/testsuites/sptests/sp09/screen07.c b/testsuites/sptests/sp09/screen07.c deleted file mode 100644 index fd808f833d..0000000000 --- a/testsuites/sptests/sp09/screen07.c +++ /dev/null @@ -1,184 +0,0 @@ -/* Screen7 - * - * This routine generates error screen 7 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen7() -{ - long buffer[ 4 ]; - rtems_unsigned32 count; - rtems_status_code status; - - status = rtems_message_queue_broadcast( 100, (long (*)[4]) buffer, &count ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_broadcast with illegal id" - ); - puts( "TA1 - rtems_message_queue_broadcast - RTEMS_INVALID_ID" ); - - status = rtems_message_queue_create( - 0, - 3, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_message_queue_create with illegal name" - ); - - puts( "TA1 - rtems_message_queue_create - Q 1 - RTEMS_INVALID_NAME" ); - status = rtems_message_queue_create( - Queue_name[ 1 ], - 1, - RTEMS_GLOBAL, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_MP_NOT_CONFIGURED, - "rtems_message_queue_create of mp not configured" - ); - puts( "TA1 - rtems_message_queue_create - Q 1 - RTEMS_MP_NOT_CONFIGURED" ); - - status = rtems_message_queue_create( - Queue_name[ 1 ], - 2, - RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create successful" ); - puts( - "TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL" - ); - - status = rtems_message_queue_create( - Queue_name[ 2 ], - 1, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_message_queue_create of too many" - ); - puts( "TA1 - rtems_message_queue_create - Q 2 - RTEMS_TOO_MANY" ); - - status = rtems_message_queue_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_create with illegal id" - ); - puts( "TA1 - rtems_message_queue_delete - unknown RTEMS_INVALID_ID" ); - - status = rtems_message_queue_delete( 0x10100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_delete with local illegal id" - ); - puts( "TA1 - rtems_message_queue_delete - local RTEMS_INVALID_ID" ); - - status = rtems_message_queue_ident( 100, RTEMS_SEARCH_ALL_NODES, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_message_queue_ident with illegal name" - ); - puts( "TA1 - rtems_message_queue_ident - RTEMS_INVALID_NAME" ); - - status = rtems_message_queue_flush( 100, &count ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_flush with illegal id" - ); - puts( "TA1 - rtems_message_queue_flush - RTEMS_INVALID_ID" ); - - status = rtems_message_queue_receive( - 100, - (long (*)[4]) buffer, - RTEMS_DEFAULT_OPTIONS, - 0 - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_receive wit illegal id" - ); - puts( "TA1 - rtems_message_queue_receive - RTEMS_INVALID_ID" ); - - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4]) buffer, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_message_queue_receive unsatisfied" - ); - puts( "TA1 - rtems_message_queue_receive - Q 1 - RTEMS_UNSATISFIED" ); - - puts( "TA1 - rtems_message_queue_receive - Q 1 - timeout in 3 seconds" ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4]) buffer, - RTEMS_DEFAULT_OPTIONS, - 3 * TICKS_PER_SECOND - ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_message_queue_receive 3 second timeout" - ); - - puts( - "TA1 - rtems_message_queue_receive - Q 1 - woke up with RTEMS_TIMEOUT" - ); - - status = rtems_message_queue_send( 100, (long (*)[4]) buffer ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_message_queue_send with illegal id" - ); - puts( "TA1 - rtems_message_queue_send - RTEMS_INVALID_ID" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4]) buffer ); - directive_failed( status, "rtems_message_queue_send" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4]) buffer ); - directive_failed( status, "rtems_message_queue_send" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4]) buffer ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_message_queue_send too many to a limited queue" - ); - puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_TOO_MANY" ); -} diff --git a/testsuites/sptests/sp09/screen08.c b/testsuites/sptests/sp09/screen08.c deleted file mode 100644 index 18c9b8d2d8..0000000000 --- a/testsuites/sptests/sp09/screen08.c +++ /dev/null @@ -1,121 +0,0 @@ -/* Screen8 - * - * This routine generates error screen 8 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen8() -{ - long buffer[ 4 ]; - rtems_status_code status; - - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete successful" ); - puts( "TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_create( - Queue_name[ 1 ], - 2, - RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create successful" ); - puts( - "TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL" - ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send successful" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send successful" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_message_queue_send too many to limited queue" - ); - puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_TOO_MANY" ); - - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete successful" ); - puts( "TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create successful" ); - puts( - "TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL" - ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send successful" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send successful" ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_message_queue_send too many to limited queue" - ); - puts( - "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_UNSATISFIED" - ); - - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete successful" ); - puts( "TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_message_queue_create( - Queue_name[ 1 ], - 3, - RTEMS_LIMIT, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create successful" ); - puts( - "TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL" - ); - - puts( "TA1 - rtems_task_start - start TA3 - RTEMS_SUCCESSFUL" ); - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - puts( "TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after (yield)" ); - - puts( "TA1 - rtems_message_queue_delete - delete Q 1 - RTEMS_SUCCESSFUL" ); - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete successful" ); - - puts( "TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after (yield)" ); -} diff --git a/testsuites/sptests/sp09/screen09.c b/testsuites/sptests/sp09/screen09.c deleted file mode 100644 index 5c6eece679..0000000000 --- a/testsuites/sptests/sp09/screen09.c +++ /dev/null @@ -1,140 +0,0 @@ -/* Screen9 - * - * This routine generates error screen 9 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen9() -{ - void *converted; - rtems_status_code status; - rtems_isr_entry old_service_routine; - - status = rtems_interrupt_catch( Service_routine, 500, &old_service_routine ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_interrupt_catch with invalid vector" - ); - puts( "TA1 - rtems_interrupt_catch - RTEMS_INVALID_NUMBER" ); - - status = rtems_interrupt_catch( NULL, 3, &old_service_routine ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_interrupt_catch with invalid handler" - ); - puts( "TA1 - rtems_interrupt_catch - RTEMS_INVALID_ADDRESS" ); - - status = rtems_signal_send( 100, RTEMS_SIGNAL_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_signal_send with illegal id" - ); - puts( "TA1 - rtems_signal_send - RTEMS_INVALID_ID" ); - - status = rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_16 ); - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_signal_send with no handler" - ); - puts( "TA1 - rtems_signal_send - RTEMS_NOT_DEFINED" ); - - status = rtems_port_create( - 0, - Internal_port_area, - External_port_area, - sizeof( Internal_port_area ), - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_port_create with illegal name" - ); - puts( "TA1 - rtems_port_create - RTEMS_INVALID_NAME" ); - - status = rtems_port_create( - Port_name[ 1 ], - &((char *)Internal_port_area)[ 1 ], - External_port_area, - sizeof( Internal_port_area ), - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_port_create with illegal address" - ); - puts( "TA1 - rtems_port_create - RTEMS_INVALID_ADDRESS" ); - - status = rtems_port_create( - Port_name[ 1 ], - Internal_port_area, - External_port_area, - sizeof( Internal_port_area ), - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_port_create of too many" - ); - puts( "TA1 - rtems_port_create - RTEMS_TOO_MANY" ); - - status = rtems_port_delete( 0 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_port_delete with illegal id" - ); - puts( "TA1 - rtems_port_delete - RTEMS_INVALID_ID" ); - - status = rtems_port_ident( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_port_ident with illegal name" - ); - puts( "TA1 - rtems_port_ident - RTEMS_INVALID_NAME" ); - - status = rtems_port_external_to_internal( - 100, - Internal_port_area, - &converted - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_port_external_to_internal with illegal id" - ); - puts( "TA1 - rtems_port_external_to_internal - RTEMS_INVALID_ID" ); - status = rtems_port_internal_to_external( - 100, - Internal_port_area, - &converted - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_port_internal_to_external with illegal id" - ); - puts( "TA1 - rtems_port_internal_to_external - RTEMS_INVALID_ID" ); -} diff --git a/testsuites/sptests/sp09/screen10.c b/testsuites/sptests/sp09/screen10.c deleted file mode 100644 index 53a5a8d6dc..0000000000 --- a/testsuites/sptests/sp09/screen10.c +++ /dev/null @@ -1,164 +0,0 @@ -/* Screen10 - * - * This routine generates error screen 10 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen10() -{ - rtems_status_code status; - - status = rtems_rate_monotonic_create( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_rate_monotonic_create with illegal name" - ); - puts( "TA1 - rtems_rate_monotonic_create - RTEMS_INVALID_NAME" ); - - status = rtems_rate_monotonic_create( Period_name[ 1 ], &Period_id[ 1 ] ); - directive_failed( status, "rtems_rate_monotonic_create successful" ); - puts( "TA1 - rtems_rate_monotonic_create - RTEMS_SUCCESSFUL" ); - - status = rtems_rate_monotonic_create( Period_name[ 1 ], &Junk_id ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_rate_monotonic_create of too many" - ); - puts( "TA1 - rtems_rate_monotonic_create - RTEMS_TOO_MANY" ); - - status = rtems_rate_monotonic_ident( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_rate_monotonic_ident with illegal name" - ); - puts( "TA1 - rtems_rate_monotonic_ident - RTEMS_INVALID_NAME" ); - - status = rtems_rate_monotonic_period( 100, 5 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_period with illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_period - unknown RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_period( 0x10100, 5 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_period with illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_period - local RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], RTEMS_PERIOD_STATUS ); - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_rate_monotonic_period status not defined" - ); - puts( - "TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_NOT_DEFINED" - ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], 100 ); - directive_failed( status, "rtems_rate_monotonic_period successful" ); - puts( "TA1 - rtems_rate_monotonic_period - 100 ticks - RTEMS_SUCCESSFUL" ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], RTEMS_PERIOD_STATUS ); - directive_failed( status, "rtems_rate_monotonic_period status" ); - puts( - "TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_SUCCESSFUL" - ); - - while ( FOREVER ) { - - status = rtems_rate_monotonic_period(Period_id[ 1 ], RTEMS_PERIOD_STATUS); - - if ( status == RTEMS_TIMEOUT ) break; - - directive_failed( - status, - "rtems_rate_monotonic_period waiting for timeout" - ); - } - puts( - "TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_TIMEOUT" - ); - - status = rtems_rate_monotonic_cancel( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_cancel with illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_cancel - unknown RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_cancel( 0x10100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_cancel will illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_cancel - local RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_cancel( Period_id[ 1 ] ); - directive_failed( status, "rtems_rate_monotonic_cancel" ); - puts( "TA1 - rtems_rate_monotonic_cancel - RTEMS_SUCCESSFUL" ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], 5 ); - directive_failed( status, "rtems_rate_monotonic_period restart" ); - - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], 5 ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_rate_monotonic_period" - ); - puts( "TA1 - rtems_rate_monotonic_period - 5 ticks - RTEMS_TIMEOUT" ); - - status = rtems_task_start( Task_id[ 4 ], Task_4, 0 ); - directive_failed( status, "rtems_task_start of TA4" ); - - puts( "TA1 - yielding to TA4" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - - status = rtems_rate_monotonic_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_delete with illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_delete - unknown RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_delete( 0x10100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_rate_monotonic_delete with illegal id" - ); - puts( "TA1 - rtems_rate_monotonic_delete - local RTEMS_INVALID_ID" ); - - status = rtems_rate_monotonic_delete( Period_id[ 1 ] ); - directive_failed( status, "rtems_rate_monotonic_delete" ); - puts( "TA1 - rtems_rate_monotonic_delete - RTEMS_SUCCESSFUL" ); -} diff --git a/testsuites/sptests/sp09/screen11.c b/testsuites/sptests/sp09/screen11.c deleted file mode 100644 index 8c13cd2490..0000000000 --- a/testsuites/sptests/sp09/screen11.c +++ /dev/null @@ -1,250 +0,0 @@ -/* Screen11 - * - * This routine generates error screen 11 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen11() -{ - void *buffer_address_1; - void *buffer_address_2; - void *buffer_address_3; - rtems_status_code status; - - status = rtems_partition_create( - 0, - Partition_good_area, - 128, - 40, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_partition_create with illegal name" - ); - puts( "TA1 - rtems_partition_create - RTEMS_INVALID_NAME" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 0, - 80, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_partition_create with illegal length" - ); - puts( "TA1 - rtems_partition_create - length - RTEMS_INVALID_SIZE" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_partition_create with illegal buffer size" - ); - puts( "TA1 - rtems_partition_create - buffer size - RTEMS_INVALID_SIZE" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 256, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_partition_create with buffer_size > length" - ); - puts( - "TA1 - rtems_partition_create - length < buffer size - RTEMS_INVALID_SIZE" - ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 64, - RTEMS_GLOBAL, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_MP_NOT_CONFIGURED, - "rtems_partition_create of global" - ); - puts( "TA1 - rtems_partition_create - RTEMS_MP_NOT_CONFIGURED" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_bad_area, - 128, - 64, - RTEMS_GLOBAL, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_partition_create with bad address" - ); - puts( "TA1 - rtems_partition_create - RTEMS_INVALID_ADDRESS" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 34, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_partition_create with unaligned buffer_size" - ); - puts( "TA1 - rtems_partition_create - RTEMS_INVALID_SIZE" ); - - status = rtems_partition_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_partition_delete with illegal id" - ); - puts( "TA1 - rtems_partition_delete - unknown RTEMS_INVALID_ID" ); - - status = rtems_partition_delete( 0x10100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_partition_delete with illegal id" - ); - puts( "TA1 - rtems_partition_delete - local RTEMS_INVALID_ID" ); - - status = rtems_partition_get_buffer( 100, &buffer_address_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_partition_get_buffer with illegal id" - ); - puts( "TA1 - rtems_partition_get_buffer - RTEMS_INVALID_ID" ); - - status = rtems_partition_ident( 0, RTEMS_SEARCH_ALL_NODES, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_partition_ident with illegal name" - ); - puts( "TA1 - rtems_partition_ident - RTEMS_INVALID_NAME" ); - - status = rtems_partition_return_buffer( 100, buffer_address_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_partition_return_buffer with illegal id" - ); - puts( "TA1 - rtems_partition_return_buffer - RTEMS_INVALID_ID" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 64, - RTEMS_DEFAULT_ATTRIBUTES, - &Partition_id[ 1 ] - ); - directive_failed( status, "rtems_partition_create" ); - puts( "TA1 - rtems_partition_create - RTEMS_SUCCESSFUL" ); - - status = rtems_partition_create( - Partition_name[ 1 ], - Partition_good_area, - 128, - 32, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_partition_create of too many" - ); - puts( "TA1 - rtems_partition_create - RTEMS_TOO_MANY" ); - - status = rtems_partition_get_buffer( Partition_id[ 1 ], &buffer_address_1 ); - directive_failed( status, "rtems_partition_get_buffer"); - puts( "TA1 - rtems_partition_get_buffer - RTEMS_SUCCESSFUL" ); - - status = rtems_partition_get_buffer( Partition_id[ 1 ], &buffer_address_2 ); - directive_failed( status, "rtems_partition_get_buffer" ); - puts( "TA1 - rtems_partition_get_buffer - RTEMS_SUCCESSFUL" ); - - status = rtems_partition_get_buffer( Partition_id[ 1 ], &buffer_address_3 ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_partition_get_buffer unsatisfied" - ); - puts( "TA1 - rtems_partition_get_buffer - RTEMS_UNSATISFIED" ); - - status = rtems_partition_delete( Partition_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_RESOURCE_IN_USE, - "rtems_partition_delete with buffers in use" - ); - puts( "TA1 - rtems_partition_delete - RTEMS_RESOURCE_IN_USE" ); - - status = rtems_partition_return_buffer( - Partition_id[ 1 ], - Region_good_area /* NOTE: Region Memory */ - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_partition_return_buffer with buffer address out of partition" - ); - puts( - "TA1 - rtems_partition_return_buffer - RTEMS_INVALID_ADDRESS - out of range" - ); - - status = rtems_partition_return_buffer( - Partition_id[ 1 ], - &Partition_good_area[ 7 ] - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_partition_return_buffer with buffer address not on boundary" - ); - puts_nocr( "TA1 - rtems_partition_return_buffer - " ); - puts ( "RTEMS_INVALID_ADDRESS - not on boundary"); -} diff --git a/testsuites/sptests/sp09/screen12.c b/testsuites/sptests/sp09/screen12.c deleted file mode 100644 index 300d54043a..0000000000 --- a/testsuites/sptests/sp09/screen12.c +++ /dev/null @@ -1,327 +0,0 @@ -/* Screen12 - * - * This routine generates error screen 12 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen12() -{ - void *segment_address_1; - void *segment_address_2; - void *segment_address_3; - rtems_unsigned32 offset; - rtems_unsigned32 good_front_flag; - rtems_unsigned32 good_back_flag; - rtems_status_code status; - - status = rtems_region_create( - 0, - Region_good_area, - 128, - 32, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_region_create with illegal name" - ); - puts( "TA1 - rtems_region_create - RTEMS_INVALID_NAME" ); - - status = rtems_region_create( - Region_name[ 1 ], - Region_bad_area, - 128, - 32, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_region_create with illegal address" - ); - puts( "TA1 - rtems_region_create - RTEMS_INVALID_ADDRESS" ); - - status = rtems_region_create( - Region_name[ 1 ], - Region_good_area, - 128, - 34, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_region_create with illegal size" - ); - puts( "TA1 - rtems_region_create - RTEMS_INVALID_SIZE" ); - - status = rtems_region_create( - Region_name[ 1 ], - &Region_good_area[ REGION_START_OFFSET ], - REGION_LENGTH, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id[ 1 ] - ); - directive_failed( status, "rtems_region_create" ); - puts( "TA1 - rtems_region_create - RTEMS_SUCCESSFUL" ); - - status = rtems_region_create( - Region_name[ 1 ], - Region_good_area, - 512, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Junk_id - ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_region_create of too many" - ); - puts( "TA1 - rtems_region_create - RTEMS_TOO_MANY" ); - - status = rtems_region_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_region_delete with illegal id" - ); - puts( "TA1 - rtems_region_delete - unknown RTEMS_INVALID_ID" ); - - status = rtems_region_delete( 0x10100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_region_delete with illegal id" - ); - puts( "TA1 - rtems_region_delete - local RTEMS_INVALID_ID" ); - - status = rtems_region_ident( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_region_ident with illegal name" - ); - puts( "TA1 - rtems_region_ident - RTEMS_INVALID_NAME" ); - - status = rtems_region_get_segment( - 100, - 128, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_region_get_segment with illegal id" - ); - puts( "TA1 - rtems_region_get_segment - RTEMS_INVALID_ID" ); - - status = rtems_region_get_segment( - Region_id[ 1 ], - sizeof( Region_good_area ) * 2, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - fatal_directive_status( - status, - RTEMS_INVALID_SIZE, - "rtems_region_get_segment with illegal size" - ); - puts( "TA1 - rtems_region_get_segment - RTEMS_INVALID_SIZE" ); - - status = rtems_region_get_segment( - Region_id[ 1 ], - 384, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts( "TA1 - rtems_region_get_segment - RTEMS_SUCCESSFUL" ); - - status = rtems_region_get_segment( - Region_id[ 1 ], - 384, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_region_get_segment unsatisfied" - ); - puts( "TA1 - rtems_region_get_segment - RTEMS_UNSATISFIED" ); - - puts( "TA1 - rtems_region_get_segment - timeout in 3 seconds" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 128, - RTEMS_DEFAULT_OPTIONS, - 3 * TICKS_PER_SECOND, - &segment_address_3 - ); - fatal_directive_status( - status, - RTEMS_TIMEOUT, - "rtems_region_get_segment timeout" - ); - puts( "TA1 - rtems_region_get_segment - woke up with RTEMS_TIMEOUT" ); - - status = rtems_region_delete( Region_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_RESOURCE_IN_USE, - "rtems_region_delete with buffers in use" - ); - puts( "TA1 - rtems_region_delete - RTEMS_RESOURCE_IN_USE" ); - - status = rtems_region_return_segment( 100, segment_address_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_region_return_segment with illegal id" - ); - puts( "TA1 - rtems_region_return_segment - RTEMS_INVALID_ID" ); - - status = rtems_region_return_segment( Region_id[ 1 ], Region_good_area ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_region_return_segment with illegal segment" - ); - puts( "TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS" ); - -/* - * The following generate internal heap errors. Thus this code - * is subject to change if the heap code changes. - */ - - puts( "TA1 - rtems_debug_disable - RTEMS_DEBUG_REGION" ); - rtems_debug_disable( RTEMS_DEBUG_REGION ); - - offset = (segment_address_1 - (void *)Region_good_area) / 4; - -/* bad FRONT_FLAG error */ - - good_front_flag = Region_good_area[ offset - 1 ]; - Region_good_area[ offset - 1 ] = good_front_flag + 2; - - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_region_return_segment with back_flag != front_flag" - ); - puts( "TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS" ); - - Region_good_area[ offset - 1 ] = good_front_flag; - -/* bad FRONT_FLAG error */ - - good_back_flag = Region_good_area[ offset - 2 ]; - Region_good_area[ offset - 2 ] = 1024; - - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_1 ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_region_return_segment with back_flag != front_flag" - ); - puts( "TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS" ); - - Region_good_area[ offset - 2 ] = good_back_flag; - - puts( "TA1 - rtems_debug_enable - RTEMS_DEBUG_REGION" ); - rtems_debug_enable( RTEMS_DEBUG_REGION ); - - status = rtems_region_extend( - 100, - Region_good_area, - 128 - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_region_extend with illegal id" - ); - puts( "TA1 - rtems_region_extend - RTEMS_INVALID_ID" ); - - status = rtems_region_extend( - Region_id[ 1 ], - &Region_good_area[ REGION_START_OFFSET + 16 ], - 128 - ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_region_extend with illegal starting address" - ); - puts( "TA1 - rtems_region_extend - within heap - RTEMS_INVALID_ADDRESS" ); - - status = rtems_region_extend( - Region_id[ 1 ], - Region_bad_area, - 128 - ); - fatal_directive_status( - status, - RTEMS_NOT_IMPLEMENTED, - "rtems_region_extend with unsupported starting address" - ); - puts( - "TA1 - rtems_region_extend - non-contiguous lower - RTEMS_NOT_IMPLEMENTED" - ); - - status = rtems_region_extend( - Region_id[ 1 ], - &Region_good_area[ REGION_START_OFFSET - REGION_LENGTH ], - 128 - ); - fatal_directive_status( - status, - RTEMS_NOT_IMPLEMENTED, - "rtems_region_extend with unsupported starting address" - ); - puts( - "TA1 - rtems_region_extend - contiguous lower - RTEMS_NOT_IMPLEMENTED" - ); - - status = rtems_region_extend( - Region_id[ 1 ], - &Region_good_area[ REGION_START_OFFSET + REGION_LENGTH + 16 ], - 128 - ); - fatal_directive_status( - status, - RTEMS_NOT_IMPLEMENTED, - "rtems_region_extend with unsupported starting address" - ); - puts( - "TA1 - rtems_region_extend - non-contiguous higher - RTEMS_NOT_IMPLEMENTED" - ); - -} diff --git a/testsuites/sptests/sp09/screen13.c b/testsuites/sptests/sp09/screen13.c deleted file mode 100644 index c96adeec40..0000000000 --- a/testsuites/sptests/sp09/screen13.c +++ /dev/null @@ -1,115 +0,0 @@ -/* Screen13 - * - * This routine generates error screen 13 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen13() -{ - rtems_unsigned32 result; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_io_close( 0xffff, 0x0000, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_close with bad major number" - ); - puts( "TA1 - rtems_io_close - RTEMS_INVALID_NUMBER" ); - status = rtems_io_control( 0xffff, 0x00000, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_close with bad major number" - ); - puts( "TA1 - rtems_io_control - RTEMS_INVALID_NUMBER" ); - status = rtems_io_initialize( 0xffff, 0x00000, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_initialize with bad major number" - ); - puts( "TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER" ); - status = rtems_io_open( 0xffff, 0x00000, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_open with bad major number" - ); - puts( "TA1 - rtems_io_open - RTEMS_INVALID_NUMBER" ); - status = rtems_io_read( 0xffff, 0x00000, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_read with bad major number" - ); - puts( "TA1 - rtems_io_read - RTEMS_INVALID_NUMBER" ); - status = rtems_io_write( 0xffff, 0x0ffff, NULL, &result ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_write with bad major number" - ); - puts( "TA1 - rtems_io_write - RTEMS_INVALID_NUMBER" ); - - build_time( &time, 12, 31, 2000, 23, 59, 59, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_set - ", &time, " - RTEMS_SUCCESSFUL\n" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, " - RTEMS_SUCCESSFUL\n" ); - - build_time( &time, 12, 31, 1999, 23, 59, 59, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_set - ", &time, " - RTEMS_SUCCESSFUL\n" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, " - RTEMS_SUCCESSFUL\n" ); - - build_time( &time, 12, 31, 2100, 23, 59, 59, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_set - ", &time, " - RTEMS_SUCCESSFUL\n" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, " - RTEMS_SUCCESSFUL\n" ); - - build_time( &time, 12, 31, 2099, 23, 59, 59, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_set - ", &time, " - RTEMS_SUCCESSFUL\n" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, " - RTEMS_SUCCESSFUL\n" ); - - build_time( &time, 12, 31, 1991, 23, 59, 59, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_set - ", &time, " - RTEMS_SUCCESSFUL\n" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, " - RTEMS_SUCCESSFUL\n" ); -} diff --git a/testsuites/sptests/sp09/screen14.c b/testsuites/sptests/sp09/screen14.c deleted file mode 100644 index bf80f04c3c..0000000000 --- a/testsuites/sptests/sp09/screen14.c +++ /dev/null @@ -1,162 +0,0 @@ -/* Screen14 - * - * This routine generates error screen 14 for test 9. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Screen14() -{ - rtems_status_code status; - rtems_time_of_day time; - - status = rtems_timer_create( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_timer_create with illegal name" - ); - puts( "TA1 - rtems_timer_create - RTEMS_INVALID_NAME" ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - puts( "TA1 - rtems_timer_create - 1 - RTEMS_SUCCESSFUL" ); - - status = rtems_timer_create( 2, &Junk_id ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_timer_create for too many" - ); - puts( "TA1 - rtems_timer_create - 2 - RTEMS_TOO_MANY" ); - - status = rtems_timer_delete( 100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_delete with illegal id" - ); - puts( "TA1 - rtems_timer_delete - local RTEMS_INVALID_ID" ); - - status = rtems_timer_delete( 0x010100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_delete with illegal id" - ); - puts( "TA1 - rtems_timer_delete - global RTEMS_INVALID_ID" ); - - status = rtems_timer_ident( 0, &Junk_id ); - fatal_directive_status( - status, - RTEMS_INVALID_NAME, - "rtems_timer_ident with illegal name" - ); - puts( "TA1 - rtems_timer_ident - RTEMS_INVALID_NAME" ); - - status = rtems_timer_cancel( 0x010100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_cancel with illegal id" - ); - puts( "TA1 - rtems_timer_cancel - RTEMS_INVALID_ID" ); - - status = rtems_timer_cancel( Timer_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_INCORRECT_STATE, - "rtems_timer_cancel before initiated" - ); - puts( "TA1 - rtems_timer_cancel - RTEMS_INCORRECT_STATE" ); - - status = rtems_timer_reset( 0x010100 ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_reset with illegal id" - ); - puts( "TA1 - rtems_timer_reset - RTEMS_INVALID_ID" ); - - status = rtems_timer_reset( Timer_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_NOT_DEFINED, - "rtems_timer_reset before initiated" - ); - puts( "TA1 - rtems_timer_reset - RTEMS_NOT_DEFINED" ); - - status = rtems_timer_fire_after( - 0x010100, - 5 * TICKS_PER_SECOND, - Delayed_routine, - NULL - ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_fire_after illegal id" - ); - puts( "TA1 - rtems_timer_fire_after - RTEMS_INVALID_ID" ); - - build_time( &time, 12, 31, 1994, 9, 0, 0, 0 ); - status = rtems_timer_fire_when( 0x010100, &time, Delayed_routine, NULL ); - fatal_directive_status( - status, - RTEMS_INVALID_ID, - "rtems_timer_fire_when with illegal id" - ); - puts( "TA1 - rtems_timer_fire_when - RTEMS_INVALID_ID" ); - - status = rtems_timer_fire_after( Timer_id[ 1 ], 0, Delayed_routine, NULL ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_timer_fire_after with 0 ticks" - ); - puts( "TA1 - rtems_timer_fire_after - RTEMS_INVALID_NUMBER" ); - - build_time( &time, 2, 5, 1987, 8, 30, 45, 0 ); - status = rtems_timer_fire_when( Timer_id[ 1 ], &time, Delayed_routine, NULL ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_timer_fire_when with illegal time" - ); - print_time( - "TA1 - rtems_timer_fire_when - ", - &time, - " - RTEMS_INVALID_CLOCK\n" - ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_set" ); - print_time( "TA1 - rtems_clock_get - ", &time, "\n" ); - - build_time( &time, 2, 5, 1990, 8, 30, 45, 0 ); - status = rtems_timer_fire_when( Timer_id[ 1 ], &time, Delayed_routine, NULL ); - fatal_directive_status( - status, - RTEMS_INVALID_CLOCK, - "rtems_timer_fire_when before current time" - ); - print_time( - "TA1 - rtems_timer_fire_when - ", - &time, - " - before RTEMS_INVALID_CLOCK\n" - ); -} diff --git a/testsuites/sptests/sp09/sp09.doc b/testsuites/sptests/sp09/sp09.doc deleted file mode 100644 index f4e8391c47..0000000000 --- a/testsuites/sptests/sp09/sp09.doc +++ /dev/null @@ -1,36 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test9 - -directives: - ex_init, ex_start, tm_tick, i_return, - t_create,t_delete, t_getreg, t_ident, t_restart, t_resume, t_setpri, - t_setreg, t_start, t_suspend, tm_delete, tm_get, - tm_set, tm_wkafter, tm_wkwhen, ev_receive, ev_send, sm_create, sm_delete, - sm_ident, sm_p, sm_v, q_broadcast, q_create, q_delete, q_ident, q_receive, - q_send, q_urgent, as_catch, as_send, as_return, rn_create, rn_delete, - rn_getseg, rn_ident, rn_retseg, pt_create, pt_delete, pt_getbug, pt_ident, - pt_retbuf, de_close, de_cntrl, de_init, de_open, de_read, de_write - -concepts: - - a. Verifies all error codes returned by the executive in single - processor configurations. - - b. Verifies error conditions in the following kernel routines or macros: - _Ck_date_time, _Expired, _Q_submit, _Get_mnodes, _Get_node, - _Free_mem, _Get_mem, _Valid_block, _Set_tcb, _Set_resource, - _In_range, _On_boundary diff --git a/testsuites/sptests/sp09/sp09.scn b/testsuites/sptests/sp09/sp09.scn deleted file mode 100644 index 534fc47e09..0000000000 --- a/testsuites/sptests/sp09/sp09.scn +++ /dev/null @@ -1,249 +0,0 @@ -*** TEST 9 *** -INIT - rtems_task_create - RTEMS_INVALID_SIZE -- NOT CHECKED -INIT - rtems_task_create - RTEMS_INVALID_PRIORITY -INIT - rtems_task_restart - RTEMS_INCORRECT_STATE -TA1 - rtems_task_delete - RTEMS_INVALID_ID -TA1 - rtems_task_get_note - RTEMS_INVALID_NUMBER -TA1 - rtems_task_get_note - RTEMS_INVALID_ID -TA1 - rtems_task_ident - current task RTEMS_SUCCESSFUL -TA1 - rtems_task_ident - global RTEMS_INVALID_NAME -TA1 - rtems_task_ident - local RTEMS_INVALID_NAME -TA1 - rtems_task_ident - RTEMS_INVALID_NODE -TA1 - rtems_task_restart - RTEMS_INVALID_ID -TA1 - rtems_task_resume - RTEMS_INVALID_ID -TA1 - rtems_task_resume - RTEMS_INCORRECT_STATE -TA1 - rtems_task_set_priority - RTEMS_INVALID_PRIORITY -TA1 - rtems_task_set_priority - RTEMS_INVALID_ID -TA1 - rtems_task_set_note - RTEMS_INVALID_NUMBER -TA1 - rtems_task_set_note - RTEMS_INVALID_ID -TA1 - rtems_task_start - RTEMS_INVALID_ID -TA1 - rtems_task_start - RTEMS_INCORRECT_STATE -TA1 - rtems_task_suspend - RTEMS_INVALID_ID - -TA1 - rtems_clock_get - RTEMS_NOT_DEFINED -TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED -TA1 - rtems_timer_fire_when - RTEMS_NOT_DEFINED -TA1 - rtems_clock_set - 08:30:45 02/05/1987 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:30:45 15/05/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:30:45 02/32/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 25:30:45 02/05/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:61:45 02/05/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:30:61 02/05/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:30:45 02/05/1988 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_set - 08:30:45 02/05/1988 - RTEMS_SUCCESSFUL -TA1 - rtems_task_wake_when - TICKINVALID - sleep about 3 seconds -TA1 - rtems_task_wake_when - TICKINVALID - woke up RTEMS_SUCCESSFUL -TA1 - rtems_task_wake_when - 08:30:48 02/05/1961 - RTEMS_INVALID_CLOCK -TA1 - rtems_task_wake_when - 25:30:48 02/05/1988 - RTEMS_INVALID_CLOCK -TA1 - current time - 08:30:51 02/05/1988 -TA1 - rtems_task_wake_when - 08:30:51 01/05/1988 - RTEMS_INVALID_CLOCK - -TA1 - rtems_task_create - RTEMS_INVALID_NAME -TA1 - rtems_task_create - stack size - RTEMS_UNSATISFIED -TA1 - rtems_task_create - TA2 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_suspend - suspend TA2 - RTEMS_SUCCESSFUL -TA1 - rtems_task_suspend - suspend TA2 - RTEMS_ALREADY_SUSPENDED -TA1 - rtems_task_resume - TA2 resumed - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - TA3 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 4 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 5 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 6 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 7 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 8 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 9 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 10 created - RTEMS_SUCCESSFUL -TA1 - rtems_task_create - 11 - RTEMS_TOO_MANY -TA1 - rtems_task_create - RTEMS_MP_NOT_CONFIGURED - -TA1 - rtems_event_receive - RTEMS_UNSATISFIED ( all conditions ) -TA1 - rtems_event_receive - RTEMS_UNSATISFIED ( any condition ) -TA1 - rtems_event_receive - timeout in 3 seconds -TA1 - rtems_event_receive - woke up with RTEMS_TIMEOUT -TA1 - rtems_event_send - RTEMS_INVALID_ID -TA1 - rtems_task_wake_after - sleep 1 second - RTEMS_SUCCESSFUL -TA1 - rtems_clock_set - 08:30:45 02/05/1988 - RTEMS_SUCCESSFUL - -TA1 - rtems_semaphore_create - RTEMS_INVALID_NAME -TA1 - rtems_semaphore_create - 1 - RTEMS_SUCCESSFUL -TA1 - rtems_semaphore_create - 2 - RTEMS_SUCCESSFUL -TA1 - rtems_semaphore_create - 3 - RTEMS_TOO_MANY -TA1 - rtems_semaphore_create - RTEMS_NOT_DEFINED -TA1 - rtems_semaphore_create - RTEMS_NOT_DEFINED -TA1 - rtems_semaphore_create - RTEMS_INVALID_NUMBER -TA1 - rtems_semaphore_create - RTEMS_MP_NOT_CONFIGURED -TA1 - rtems_semaphore_delete - unknown RTEMS_INVALID_ID -TA1 - rtems_semaphore_delete - local RTEMS_INVALID_ID -TA1 - rtems_semaphore_ident - global RTEMS_INVALID_NAME -TA1 - rtems_semaphore_ident - local RTEMS_INVALID_NAME - -TA1 - rtems_semaphore_obtain - RTEMS_INVALID_ID -TA1 - rtems_semaphore_obtain - got sem 1 - RTEMS_SUCCESSFUL -TA1 - rtems_semaphore_obtain - RTEMS_UNSATISFIED -TA1 - rtems_semaphore_obtain - timeout in 3 seconds -TA1 - rtems_semaphore_obtain - woke up with RTEMS_TIMEOUT -TA1 - rtems_semaphore_release - RTEMS_NOT_OWNER_OF_RESOURCE -TA1 - rtems_semaphore_release - RTEMS_INVALID_ID -TA1 - rtems_task_start - start TA2 - RTEMS_SUCCESSFUL -TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL -TA2 - rtems_semaphore_obtain - sem 1 - RTEMS_WAIT FOREVER -TA1 - rtems_semaphore_delete - delete sem 1 - RTEMS_SUCCESSFUL -TA1 - rtems_semaphore_obtain - binary semaphore -TA1 - rtems_semaphore_delete - delete sem 2 - RTEMS_RESOURCE_IN_USE -TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL -TA2 - rtems_semaphore_obtain - woke up with RTEMS_OBJECT_WAS_DELETED -TA2 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL - -TA1 - rtems_message_queue_broadcast - RTEMS_INVALID_ID -TA1 - rtems_message_queue_create - Q 1 - RTEMS_INVALID_NAME -TA1 - rtems_message_queue_create - Q 1 - RTEMS_MP_NOT_CONFIGURED -TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_create - Q 2 - RTEMS_TOO_MANY -TA1 - rtems_message_queue_delete - unknown RTEMS_INVALID_ID -TA1 - rtems_message_queue_delete - local RTEMS_INVALID_ID -TA1 - rtems_message_queue_ident - RTEMS_INVALID_NAME -TA1 - rtems_message_queue_flush - RTEMS_INVALID_ID -TA1 - rtems_message_queue_receive - RTEMS_INVALID_ID -TA1 - rtems_message_queue_receive - Q 1 - RTEMS_UNSATISFIED -TA1 - rtems_message_queue_receive - Q 1 - timeout in 3 seconds -TA1 - rtems_message_queue_receive - Q 1 - woke up with RTEMS_TIMEOUT -TA1 - rtems_message_queue_send - RTEMS_INVALID_ID -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_TOO_MANY - -TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_TOO_MANY -TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 - RTEMS_UNSATISFIED -TA1 - rtems_message_queue_delete - Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_message_queue_create - Q 1 - RTEMS_LIMIT - RTEMS_SUCCESSFUL -TA1 - rtems_task_start - start TA3 - RTEMS_SUCCESSFUL -TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL -TA3 - rtems_message_queue_receive - Q 1 - RTEMS_WAIT FOREVER -TA1 - rtems_message_queue_delete - delete Q 1 - RTEMS_SUCCESSFUL -TA1 - rtems_task_wake_after - yield processor - RTEMS_SUCCESSFUL -TA3 - rtems_message_queue_receive - woke up with RTEMS_OBJECT_WAS_DELETED -TA3 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL - -TA1 - rtems_interrupt_catch - RTEMS_INVALID_NUMBER -TA1 - rtems_interrupt_catch - RTEMS_INVALID_ADDRESS -TA1 - rtems_signal_send - RTEMS_INVALID_ID -TA1 - rtems_signal_send - RTEMS_NOT_DEFINED -TA1 - rtems_port_create - RTEMS_INVALID_NAME -TA1 - rtems_port_create - RTEMS_INVALID_ADDRESS -TA1 - rtems_port_create - RTEMS_TOO_MANY -TA1 - rtems_port_delete - RTEMS_INVALID_ID -TA1 - rtems_port_ident - RTEMS_INVALID_NAME -TA1 - rtems_port_external_to_internal - RTEMS_INVALID_ID -TA1 - rtems_port_internal_to_external - RTEMS_INVALID_ID - -TA1 - rtems_rate_monotonic_create - RTEMS_INVALID_NAME -TA1 - rtems_rate_monotonic_create - RTEMS_SUCCESSFUL -TA1 - rtems_rate_monotonic_create - RTEMS_TOO_MANY -TA1 - rtems_rate_monotonic_ident - RTEMS_INVALID_NAME -TA1 - rtems_rate_monotonic_period - unknown RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_period - local RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_NOT_DEFINED -TA1 - rtems_rate_monotonic_period - 100 ticks - RTEMS_SUCCESSFUL -TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_SUCCESSFUL -TA1 - rtems_rate_monotonic_period(RTEMS_PERIOD_STATUS) - RTEMS_TIMEOUT -TA1 - rtems_rate_monotonic_cancel - unknown RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_cancel - local RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_cancel - RTEMS_SUCCESSFUL -TA1 - rtems_rate_monotonic_period - 5 ticks - RTEMS_TIMEOUT -TA1 - yielding to TA4 -TA4 - rtems_rate_monotonic_cancel - RTEMS_NOT_OWNER_OF_RESOURCE -TA4 - rtems_rate_monotonic_period - RTEMS_NOT_OWNER_OF_RESOURCE -TA4 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL -TA1 - rtems_rate_monotonic_delete - unknown RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_delete - local RTEMS_INVALID_ID -TA1 - rtems_rate_monotonic_delete - RTEMS_SUCCESSFUL - -TA1 - rtems_partition_create - RTEMS_INVALID_NAME -TA1 - rtems_partition_create - length - RTEMS_INVALID_SIZE -TA1 - rtems_partition_create - buffer size - RTEMS_INVALID_SIZE -TA1 - rtems_partition_create - length < buffer size - RTEMS_INVALID_SIZE -TA1 - rtems_partition_create - RTEMS_MP_NOT_CONFIGURED -TA1 - rtems_partition_create - RTEMS_INVALID_ADDRESS -TA1 - rtems_partition_create - RTEMS_INVALID_SIZE -TA1 - rtems_partition_delete - unknown RTEMS_INVALID_ID -TA1 - rtems_partition_delete - local RTEMS_INVALID_ID -TA1 - rtems_partition_get_buffer - RTEMS_INVALID_ID -TA1 - rtems_partition_ident - RTEMS_INVALID_NAME -TA1 - rtems_partition_return_buffer - RTEMS_INVALID_ID -TA1 - rtems_partition_create - RTEMS_SUCCESSFUL -TA1 - rtems_partition_create - RTEMS_TOO_MANY -TA1 - rtems_partition_get_buffer - RTEMS_SUCCESSFUL -TA1 - rtems_partition_get_buffer - RTEMS_SUCCESSFUL -TA1 - rtems_partition_get_buffer - RTEMS_UNSATISFIED -TA1 - rtems_partition_delete - RTEMS_RESOURCE_IN_USE -TA1 - rtems_partition_return_buffer - RTEMS_INVALID_ADDRESS - out of range -TA1 - rtems_partition_return_buffer - RTEMS_INVALID_ADDRESS - not on boundary - -TA1 - rtems_region_create - RTEMS_INVALID_NAME -TA1 - rtems_region_create - RTEMS_INVALID_ADDRESS -TA1 - rtems_region_create - RTEMS_INVALID_SIZE -TA1 - rtems_region_create - RTEMS_SUCCESSFUL -TA1 - rtems_region_create - RTEMS_TOO_MANY -TA1 - rtems_region_delete - unknown RTEMS_INVALID_ID -TA1 - rtems_region_delete - local RTEMS_INVALID_ID -TA1 - rtems_region_ident - RTEMS_INVALID_NAME -TA1 - rtems_region_get_segment - RTEMS_INVALID_ID -TA1 - rtems_region_get_segment - RTEMS_INVALID_SIZE -TA1 - rtems_region_get_segment - RTEMS_SUCCESSFUL -TA1 - rtems_region_get_segment - RTEMS_UNSATISFIED -TA1 - rtems_region_get_segment - timeout in 3 seconds -TA1 - rtems_region_get_segment - woke up with RTEMS_TIMEOUT -TA1 - rtems_region_delete - RTEMS_RESOURCE_IN_USE -TA1 - rtems_region_return_segment - RTEMS_INVALID_ID -TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS -TA1 - rtems_debug_disable - RTEMS_DEBUG_REGION -TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS -TA1 - rtems_region_return_segment - RTEMS_INVALID_ADDRESS -TA1 - rtems_debug_enable - RTEMS_DEBUG_REGION -TA1 - rtems_region_extend - RTEMS_INVALID_ID -TA1 - rtems_region_extend - within heap - RTEMS_INVALID_ADDRESS -TA1 - rtems_region_extend - non-contiguous lower - RTEMS_NOT_IMPLEMENTED -TA1 - rtems_region_extend - contiguous lower - RTEMS_NOT_IMPLEMENTED -TA1 - rtems_region_extend - non-contiguous higher - RTEMS_NOT_IMPLEMENTED - -TA1 - rtems_io_close - RTEMS_INVALID_NUMBER -TA1 - rtems_io_control - RTEMS_INVALID_NUMBER -TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER -TA1 - rtems_io_open - RTEMS_INVALID_NUMBER -TA1 - rtems_io_read - RTEMS_INVALID_NUMBER -TA1 - rtems_io_write - RTEMS_INVALID_NUMBER -TA1 - rtems_clock_set - 23:59:59 12/31/2000 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_get - 00:00:00 01/01/2001 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_set - 23:59:59 12/31/1999 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_get - 00:00:00 01/01/2000 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_set - 23:59:59 12/31/2100 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_get - 00:00:00 01/01/2101 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_set - 23:59:59 12/31/2099 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_get - 00:00:00 01/01/2100 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_set - 23:59:59 12/31/1991 - RTEMS_SUCCESSFUL -TA1 - rtems_clock_get - 00:00:00 01/01/1992 - RTEMS_SUCCESSFUL - -TA1 - rtems_timer_create - RTEMS_INVALID_NAME -TA1 - rtems_timer_create - 1 - RTEMS_SUCCESSFUL -TA1 - rtems_timer_create - 2 - RTEMS_TOO_MANY -TA1 - rtems_timer_delete - local RTEMS_INVALID_ID -TA1 - rtems_timer_delete - global RTEMS_INVALID_ID -TA1 - rtems_timer_ident - RTEMS_INVALID_NAME -TA1 - rtems_timer_cancel - RTEMS_INVALID_ID -TA1 - rtems_timer_cancel - RTEMS_INCORRECT_STATE -TA1 - rtems_timer_reset - RTEMS_INVALID_ID -TA1 - rtems_timer_reset - RTEMS_NOT_DEFINED -TA1 - rtems_timer_fire_after - RTEMS_INVALID_ID -TA1 - rtems_timer_fire_when - RTEMS_INVALID_ID -TA1 - rtems_timer_fire_after - RTEMS_INVALID_NUMBER -TA1 - rtems_timer_fire_when - 08:30:45 02/05/1987 - RTEMS_INVALID_CLOCK -TA1 - rtems_clock_get - 00:00:00 01/01/1992 -TA1 - rtems_timer_fire_when - 08:30:45 02/05/1990 - before RTEMS_INVALID_CLOCK -*** END OF TEST 9 *** diff --git a/testsuites/sptests/sp09/system.h b/testsuites/sptests/sp09/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp09/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp09/task1.c b/testsuites/sptests/sp09/task1.c deleted file mode 100644 index dbf28f57a8..0000000000 --- a/testsuites/sptests/sp09/task1.c +++ /dev/null @@ -1,74 +0,0 @@ -/* Task_1 - * - * This task generates all possible errors for the RTEMS executive. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#ifdef pause -#undef pause -#endif - -rtems_task Task_1( - rtems_task_argument argument -) -{ - Screen1(); - pause_and_screen_number( 2 ); - - Screen2(); - pause_and_screen_number( 3 ); - - Screen3(); - pause_and_screen_number( 4 ); - - Screen4(); - pause_and_screen_number( 5 ); - - Screen5(); - pause_and_screen_number( 6 ); - - Screen6(); - pause_and_screen_number( 7 ); - - Screen7(); - pause_and_screen_number( 8 ); - - Screen8(); - pause_and_screen_number( 9 ); - - Screen9(); - pause_and_screen_number( 10 ); - - Screen10(); - pause_and_screen_number( 11 ); - - Screen11(); - pause_and_screen_number( 12 ); - - Screen12(); - pause_and_screen_number( 13 ); - - Screen13(); - pause_and_screen_number( 14 ); - - Screen14(); - - puts( "*** END OF TEST 9 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp09/task2.c b/testsuites/sptests/sp09/task2.c deleted file mode 100644 index e9bda81fa3..0000000000 --- a/testsuites/sptests/sp09/task2.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. Its only purpose is to generate the - * error where a semaphore is deleted while a task is waiting for it. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA2 - rtems_semaphore_obtain - sem 1 - RTEMS_WAIT FOREVER" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_OBJECT_WAS_DELETED, - "rtems_semaphore_obtain waiting to be deleted" - ); - puts( - "TA2 - rtems_semaphore_obtain - woke up with RTEMS_OBJECT_WAS_DELETED" - ); - - puts( "TA2 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA2" ); -} diff --git a/testsuites/sptests/sp09/task3.c b/testsuites/sptests/sp09/task3.c deleted file mode 100644 index 8420c51f4d..0000000000 --- a/testsuites/sptests/sp09/task3.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. Its only purpose in life is to - * generate the error where a message queue is deleted while a task - * is waiting there for a message. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - long buffer[ 4 ]; - - puts( "TA3 - rtems_message_queue_receive - Q 1 - RTEMS_WAIT FOREVER" ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_OBJECT_WAS_DELETED, - "rtems_message_queue_receive waiting to be deleted" - ); - puts( - "TA3 - rtems_message_queue_receive - woke up with RTEMS_OBJECT_WAS_DELETED" - ); - - puts( "TA3 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA3" ); -} diff --git a/testsuites/sptests/sp09/task4.c b/testsuites/sptests/sp09/task4.c deleted file mode 100644 index 73cd63373c..0000000000 --- a/testsuites/sptests/sp09/task4.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Task_4 - * - * This routine serves as a test task. Its only purpose in life is to - * generate the error where a rate monotonic period is accessed by a - * task other than its creator. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_4( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_rate_monotonic_cancel( Period_id[ 1 ] ); - fatal_directive_status( - status, - RTEMS_NOT_OWNER_OF_RESOURCE, - "rtems_rate_monotonic_cancel not the owner" - ); - puts( "TA4 - rtems_rate_monotonic_cancel - RTEMS_NOT_OWNER_OF_RESOURCE" ); - - status = rtems_rate_monotonic_period( Period_id[ 1 ], 5 ); - fatal_directive_status( - status, - RTEMS_NOT_OWNER_OF_RESOURCE, - "rtems_rate_monotonic_period not the owner" - ); - puts( "TA4 - rtems_rate_monotonic_period - RTEMS_NOT_OWNER_OF_RESOURCE" ); - - puts( "TA4 - rtems_task_delete - delete self - RTEMS_SUCCESSFUL" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA4" ); -} diff --git a/testsuites/sptests/sp11/init.c b/testsuites/sptests/sp11/init.c deleted file mode 100644 index 99ef1d55a0..0000000000 --- a/testsuites/sptests/sp11/init.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 11 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - Timer_name[ 2 ] = rtems_build_name( 'T', 'M', '2', ' ' ); - Timer_name[ 3 ] = rtems_build_name( 'T', 'M', '3', ' ' ); - Timer_name[ 4 ] = rtems_build_name( 'T', 'M', '4', ' ' ); - Timer_name[ 5 ] = rtems_build_name( 'T', 'M', '5', ' ' ); - Timer_name[ 6 ] = rtems_build_name( 'T', 'M', '6', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create of TM1" ); - - status = rtems_timer_create( Timer_name[ 2 ], &Timer_id[ 2 ] ); - directive_failed( status, "rtems_timer_create of TM2" ); - - status = rtems_timer_create( Timer_name[ 3 ], &Timer_id[ 3 ] ); - directive_failed( status, "rtems_timer_create of TM3" ); - - status = rtems_timer_create( Timer_name[ 4 ], &Timer_id[ 4 ] ); - directive_failed( status, "rtems_timer_create of TM4" ); - - status = rtems_timer_create( Timer_name[ 5 ], &Timer_id[ 5 ] ); - directive_failed( status, "rtems_timer_create of TM5" ); - - status = rtems_timer_create( Timer_name[ 6 ], &Timer_id[ 6 ] ); - directive_failed( status, "rtems_timer_create of TM6" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp11/sp11.doc b/testsuites/sptests/sp11/sp11.doc deleted file mode 100644 index d88f5eb86d..0000000000 --- a/testsuites/sptests/sp11/sp11.doc +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test11 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - ev_send, ev_receive - tm_wkafter, tm_set, tm_get - -concepts: - - a. This test checks out the event manager along with the associated - event directives contained in the time manager. diff --git a/testsuites/sptests/sp11/sp11.scn b/testsuites/sptests/sp11/sp11.scn deleted file mode 100644 index 7abb8afe45..0000000000 --- a/testsuites/sptests/sp11/sp11.scn +++ /dev/null @@ -1,74 +0,0 @@ -*** TEST 11 *** -TA1 - rtems_event_send - send RTEMS_EVENT_16 to TA2 -TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_14 and RTEMS_EVENT_15 -TA2 - rtems_event_receive - waiting forever on RTEMS_EVENT_16 -TA2 - RTEMS_EVENT_16 received - eventout => 00010000 -TA2 - rtems_event_send - send RTEMS_EVENT_14 and RTEMS_EVENT_15 to TA1 -TA2 - rtems_event_receive - RTEMS_EVENT_17 or RTEMS_EVENT_18 - forever and ANY -TA1 - RTEMS_EVENT_14 and RTEMS_EVENT_15 received - eventout => 0000c000 -TA1 - rtems_event_send - send RTEMS_EVENT_18 to TA2 -TA1 - rtems_event_receive - waiting with 10 second timeout on RTEMS_EVENT_14 -TA2 - RTEMS_EVENT_17 or RTEMS_EVENT_18 received - eventout => 00040000 -TA2 - rtems_event_send - send RTEMS_EVENT_14 to TA1 -TA2 - rtems_clock_set - 08:15:00 02/12/1988 -TA2 - rtems_event_send - sending RTEMS_EVENT_10 to self after 5 seconds -TA2 - rtems_event_receive - waiting forever on RTEMS_EVENT_10 -TA1 - RTEMS_EVENT_14 received - eventout => 00004000 -TA1 - rtems_event_send - send RTEMS_EVENT_19 to TA2 -TA1 - rtems_clock_get - 08:15:00 02/12/1988 - -TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds -TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_18 -TA2 - RTEMS_EVENT_10 received - eventout => 00000400 -TA2 - rtems_clock_get - 08:15:05 02/12/1988 -TA2 - rtems_event_receive - RTEMS_PENDING_EVENTS -TA2 - eventout => 00080000 -TA2 - rtems_event_receive - RTEMS_EVENT_19 - RTEMS_NO_WAIT -TA2 - RTEMS_EVENT_19 received - eventout => 00080000 -TA2 - rtems_task_delete - deletes self -TA1 - RTEMS_EVENT_18 received - eventout => 00040000 -TA1 - rtems_clock_get - 08:15:05 02/12/1988 -TA1 - rtems_event_send - send RTEMS_EVENT_3 to self -TA1 - rtems_event_receive - RTEMS_EVENT_3 or RTEMS_EVENT_22 - NO_WAIT and ANY -TA1 - RTEMS_EVENT_3 received - eventout => 00000008 -TA1 - rtems_event_send - send RTEMS_EVENT_4 to self -TA1 - rtems_event_receive - RTEMS_EVENT_4 or RTEMS_EVENT_5 - forever and ANY -TA1 - RTEMS_EVENT_4 received - eventout => 00000010 - -TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds -TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_18 -TA1 - rtems_event_send - send RTEMS_EVENT_8 to self after 60 seconds -TA1 - rtems_event_send - send RTEMS_EVENT_9 to self after 60 seconds -TA1 - rtems_event_send - send RTEMS_EVENT_10 to self after 60 seconds -TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_8 -TA1 - rtems_clock_set - 08:15:00 02/12/1988 -TA1 - rtems_event_send - send RTEMS_EVENT_1 every second -TA1 - RTEMS_EVENT_1 received - eventout => 00000002 - at 08:15:01 02/12/1988 -TA1 - RTEMS_EVENT_1 received - eventout => 00000002 - at 08:15:02 02/12/1988 -TA1 - RTEMS_EVENT_1 received - eventout => 00000002 - at 08:15:03 02/12/1988 -TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_1 - -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 1 day -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 1 day -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 2 days -TA1 - rtems_timer_cancel - cancelling RTEMS_EVENT_11 to self in 1 day -TA1 - rtems_timer_cancel - cancelling RTEMS_EVENT_11 to self in 2 days -TA1 - rtems_event_send - resending RTEMS_EVENT_11 to self in 2 days -TA1 - rtems_clock_set - 08:15:03 02/15/1988 -TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_11 -TA1 - RTEMS_EVENT_11 received - eventout => 00000800 - -TA1 - rtems_event_send/rtems_event_receive combination -TA1 - rtems_clock_set - 08:15:00 02/12/1988 -TA1 - rtems_event_receive all outstanding events -TA1 - rtems_event_send - sending RTEMS_EVENT_10 to self in 1 day -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 2 days -TA1 - rtems_clock_set - 07:15:00 02/12/1988 -TA1 - set time backwards -TA1 - no events received -TA1 - rtems_clock_set - 07:15:00 02/14/1988 -TA1 - set time forwards (leave a timer) -TA1 - RTEMS_EVENT_10 received -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 100 ticks -TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 200 ticks -*** END OF TEST 11 *** diff --git a/testsuites/sptests/sp11/system.h b/testsuites/sptests/sp11/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp11/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp11/task1.c b/testsuites/sptests/sp11/task1.c deleted file mode 100644 index 1b2fc86040..0000000000 --- a/testsuites/sptests/sp11/task1.c +++ /dev/null @@ -1,410 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the event maager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_event_set eventout; - rtems_time_of_day time; - rtems_status_code status; - rtems_unsigned32 index; - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_16 to TA2" ); - status = rtems_event_send( Task_id[ 2 ], RTEMS_EVENT_16 ); - directive_failed( status, "rtems_event_send" ); - - puts( - "TA1 - rtems_event_receive - waiting forever on " - "RTEMS_EVENT_14 and RTEMS_EVENT_15" - ); - status = rtems_event_receive( - RTEMS_EVENT_14 | RTEMS_EVENT_15, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( - "TA1 - RTEMS_EVENT_14 and RTEMS_EVENT_15 received - eventout => %08x\n", - eventout - ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_18 to TA2" ); - status = rtems_event_send( Task_id[ 2 ], RTEMS_EVENT_18 ); - directive_failed( status, "rtems_event_send" ); - - puts( - "TA1 - rtems_event_receive - waiting with 10 second timeout on RTEMS_EVENT_14" - ); - status = rtems_event_receive( - RTEMS_EVENT_14, - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA1 - RTEMS_EVENT_14 received - eventout => %08x\n", eventout ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_19 to TA2" ); - status = rtems_event_send( Task_id[ 2 ], RTEMS_EVENT_19 ); - directive_failed( status, "rtems_event_send" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - print_time( "TA1 - rtems_clock_get - ", &time, "\n" ); - -pause(); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds"); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - TA1_send_18_to_self_5_seconds, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 5 seconds" ); - - puts( "TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_18" ); - status = rtems_event_receive( - RTEMS_EVENT_18, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive of 18" ); - printf( "TA1 - RTEMS_EVENT_18 received - eventout => %08x\n", eventout ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "TA1 rtems_clock_get" ); - print_time( "TA1 - rtems_clock_get - ", &time, "\n" ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_3 to self" ); - status = rtems_event_send( RTEMS_SELF, RTEMS_EVENT_3 ); - directive_failed( status, "rtems_event_send" ); - - puts( - "TA1 - rtems_event_receive - RTEMS_EVENT_3 or " - "RTEMS_EVENT_22 - NO_WAIT and ANY" - ); - status = rtems_event_receive( - RTEMS_EVENT_3 | RTEMS_EVENT_22, - RTEMS_NO_WAIT | RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive of 3 and 22" ); - printf( "TA1 - RTEMS_EVENT_3 received - eventout => %08x\n", eventout ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_4 to self" ); - status = rtems_event_send( RTEMS_SELF, RTEMS_EVENT_4 ); - directive_failed( status, "rtems_event_send" ); - - puts ( - "TA1 - rtems_event_receive - RTEMS_EVENT_4 or " - "RTEMS_EVENT_5 - forever and ANY" - ); - status = rtems_event_receive( - RTEMS_EVENT_4 | RTEMS_EVENT_5, - RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA1 - RTEMS_EVENT_4 received - eventout => %08x\n", eventout ); - -pause(); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_18 to self after 5 seconds"); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 5 * TICKS_PER_SECOND, - TA1_send_18_to_self_5_seconds, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 5 seconds" ); - - puts( "TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_18"); - status = rtems_timer_cancel( Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_cancel" ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_8 to self after 60 seconds"); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 60 * TICKS_PER_SECOND, - TA1_send_8_to_self_60_seconds, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 60 seconds" ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_9 to self after 60 seconds"); - status = rtems_timer_fire_after( - Timer_id[ 2 ], - 60 * TICKS_PER_SECOND, - TA1_send_9_to_self_60_seconds, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 60 seconds" ); - - puts( - "TA1 - rtems_event_send - send RTEMS_EVENT_10 to self after 60 seconds" - ); - status = rtems_timer_fire_after( - Timer_id[ 3 ], - 60 * TICKS_PER_SECOND, - TA1_send_10_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 60 seconds" ); - - puts( "TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_8" ); - status = rtems_timer_cancel( Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_cancel" ); - - build_time( &time, 2, 12, 1988, 8, 15, 0, 0 ); - - print_time( "TA1 - rtems_clock_set - ", &time, "\n" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - puts( "TA1 - rtems_event_send - send RTEMS_EVENT_1 every second" ); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - TICKS_PER_SECOND, - TA1_send_1_to_self_every_second, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 1 second" ); - - for ( index = 0; index < 3; index++ ) { - - status = rtems_event_receive( - RTEMS_EVENT_1, - RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - printf( "TA1 - RTEMS_EVENT_1 received - eventout => %08x - ", eventout ); - print_time( "at ", &time, "\n" ); - - if ( index < 2 ) { - status = rtems_timer_reset( Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_reset" ); - }; - - } - - puts( "TA1 - rtems_timer_cancel - cancelling timer for event RTEMS_EVENT_1" ); - status = rtems_timer_cancel( Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_cancel" ); - -pause(); - - time.day = 13; - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 1 day" ); - status = rtems_timer_fire_when( - Timer_id[ 1 ], - &time, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 1 day" ); - - time.hour = 7; - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 1 day" ); - status = rtems_timer_fire_when( - Timer_id[ 2 ], - &time, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 1 day" ); - - time.hour = 8; /* so code below has correct time/date */ - time.day = 14; - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 2 days" ); - status = rtems_timer_fire_when( - Timer_id[ 3 ], - &time, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 2 days" ); - - puts("TA1 - rtems_timer_cancel - cancelling RTEMS_EVENT_11 to self in 1 day"); - status = rtems_timer_cancel( Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_cancel" ); - - puts( - "TA1 - rtems_timer_cancel - cancelling RTEMS_EVENT_11 to self in 2 days" - ); - status = rtems_timer_cancel( Timer_id[ 3 ] ); - directive_failed( status, "rtems_timer_cancel" ); - - puts( - "TA1 - rtems_event_send - resending RTEMS_EVENT_11 to self in 2 days" - ); - status = rtems_timer_fire_when( - Timer_id[ 3 ], - &time, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 2 days" ); - - time.day = 15; - print_time( "TA1 - rtems_clock_set - ", &time, "\n" ); - status = rtems_clock_set( &time ); - directive_failed( status, "TA1 rtems_clock_set" ); - - puts( "TA1 - rtems_event_receive - waiting forever on RTEMS_EVENT_11" ); - status = rtems_event_receive( - RTEMS_EVENT_11, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA1 - RTEMS_EVENT_11 received - eventout => %08x\n", eventout ); - -pause(); - - puts( "TA1 - rtems_event_send/rtems_event_receive combination" ); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 10, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 10 ticks" ); - - status = rtems_event_receive( - RTEMS_EVENT_11, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - - build_time( &time, 2, 12, 1988, 8, 15, 0, 0 ); - - print_time( "TA1 - rtems_clock_set - ", &time, "\n" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - time.day = 13; - puts( "TA1 - rtems_event_receive all outstanding events" ); - status = rtems_event_receive( - RTEMS_ALL_EVENTS, - RTEMS_NO_WAIT | RTEMS_EVENT_ANY, - 0, - &eventout - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_event_receive all events" - ); - - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_10 to self in 1 day" ); - status = rtems_timer_fire_when( - Timer_id[ 1 ], - &time, - TA1_send_10_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 1 day" ); - - time.day = 14; - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 2 days" ); - status = rtems_timer_fire_when( - Timer_id[ 2 ], - &time, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when 2 days" ); - - build_time( &time, 2, 12, 1988, 7, 15, 0, 0 ); - - print_time( "TA1 - rtems_clock_set - ", &time, "\n" ); - puts( "TA1 - set time backwards" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - status = rtems_event_receive( - RTEMS_ALL_EVENTS, - RTEMS_NO_WAIT | RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - if ( eventout ) printf( "ERROR -0x%08x events received\n", eventout ); - else puts( "TA1 - no events received" ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_event_receive all events" - ); - - build_time( &time, 2, 14, 1988, 7, 15, 0, 0 ); - - print_time( "TA1 - rtems_clock_set - ", &time, "\n" ); - puts( "TA1 - set time forwards (leave a timer)" ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - status = rtems_event_receive( - RTEMS_ALL_EVENTS, - RTEMS_NO_WAIT | RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - if ( eventout == RTEMS_EVENT_10 ) puts( "TA1 - RTEMS_EVENT_10 received" ); - else printf( "ERROR -0x%08x events received\n", eventout ); - directive_failed( status, "rtems_event_receive all events" ); - - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 100 ticks"); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 100, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 100 ticks" ); - - puts( "TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 200 ticks"); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - 200, - TA1_send_11_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_after 200 ticks" ); - - puts( "*** END OF TEST 11 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp11/task2.c b/testsuites/sptests/sp11/task2.c deleted file mode 100644 index 176582bc36..0000000000 --- a/testsuites/sptests/sp11/task2.c +++ /dev/null @@ -1,126 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. Multiple tasks are required to - * verify all capabilities of the event manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_event_set eventout; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_task_wake_after( 1*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA2 - rtems_event_receive - waiting forever on RTEMS_EVENT_16" ); - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA2 - RTEMS_EVENT_16 received - eventout => %08x\n", eventout ); - - puts( - "TA2 - rtems_event_send - send RTEMS_EVENT_14 and RTEMS_EVENT_15 to TA1" - ); - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_14 | RTEMS_EVENT_15 ); - directive_failed( status, "rtems_event_send" ); - - puts( - "TA2 - rtems_event_receive - RTEMS_EVENT_17 or " - "RTEMS_EVENT_18 - forever and ANY" - ); - status = rtems_event_receive( - RTEMS_EVENT_17 | RTEMS_EVENT_18, - RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( - "TA2 - RTEMS_EVENT_17 or RTEMS_EVENT_18 received - eventout => %08x\n", - eventout - ); - - puts( "TA2 - rtems_event_send - send RTEMS_EVENT_14 to TA1" ); - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_14 ); - directive_failed( status, "rtems_event_send" ); - - build_time( &time, 2, 12, 1988, 8, 15, 0, 0 ); - print_time( "TA2 - rtems_clock_set - ", &time, "\n" ); - status = rtems_clock_set( &time ); - directive_failed( status, "TA2 rtems_clock_set" ); - - time.second += 5; - puts( - "TA2 - rtems_event_send - sending RTEMS_EVENT_10 to self after 5 seconds" - ); - status = rtems_timer_fire_when( - Timer_id[ 5 ], - &time, - TA2_send_10_to_self, - NULL - ); - directive_failed( status, "rtems_timer_fire_when after 5 seconds" ); - - puts( "TA2 - rtems_event_receive - waiting forever on RTEMS_EVENT_10" ); - status = rtems_event_receive( - RTEMS_EVENT_10, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - printf( "TA2 - RTEMS_EVENT_10 received - eventout => %08x\n", eventout ); - print_time( "TA2 - rtems_clock_get - ", &time, "\n" ); - - puts( "TA2 - rtems_event_receive - RTEMS_PENDING_EVENTS" ); - status = rtems_event_receive( - RTEMS_PENDING_EVENTS, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA2 - eventout => %08x\n", eventout ); - - puts( "TA2 - rtems_event_receive - RTEMS_EVENT_19 - RTEMS_NO_WAIT" ); - status = rtems_event_receive( - RTEMS_EVENT_19, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &eventout - ); - directive_failed( status, "rtems_event_receive" ); - printf( "TA2 - RTEMS_EVENT_19 received - eventout => %08x\n", eventout ); - - puts( "TA2 - rtems_task_delete - deletes self" ); - status = rtems_task_delete( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_delete of TA2" ); -} diff --git a/testsuites/sptests/sp11/timer.c b/testsuites/sptests/sp11/timer.c deleted file mode 100644 index 3ec11b7345..0000000000 --- a/testsuites/sptests/sp11/timer.c +++ /dev/null @@ -1,97 +0,0 @@ -/* Timer_functions - * - * These routines are the timer service routines used by this test. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine TA1_send_18_to_self_5_seconds( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_18 ); - directive_failed( status, "rtems_event_send of 18" ); -} - -rtems_timer_service_routine TA1_send_8_to_self_60_seconds( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_8 ); - directive_failed( status, "rtems_event_send of 8" ); -} - -rtems_timer_service_routine TA1_send_9_to_self_60_seconds( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_9 ); - directive_failed( status, "rtems_event_send of 9" ); -} - -rtems_timer_service_routine TA1_send_10_to_self( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_10 ); - directive_failed( status, "rtems_event_send of 10" ); -} - -rtems_timer_service_routine TA1_send_1_to_self_every_second( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_1 ); - directive_failed( status, "rtems_event_send of 1" ); -} - -rtems_timer_service_routine TA1_send_11_to_self( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_11 ); - directive_failed( status, "rtems_event_send of 11" ); -} - -rtems_timer_service_routine TA2_send_10_to_self( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_event_send( Task_id[ 2 ], RTEMS_EVENT_10 ); - directive_failed( status, "rtems_event_send of 10" ); -} diff --git a/testsuites/sptests/sp12/init.c b/testsuites/sptests/sp12/init.c deleted file mode 100644 index dd702ca75e..0000000000 --- a/testsuites/sptests/sp12/init.c +++ /dev/null @@ -1,176 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 12 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' ); - - Priority_task_name[ 1 ] = rtems_build_name( 'P', 'R', 'I', '1' ); - Priority_task_name[ 2 ] = rtems_build_name( 'P', 'R', 'I', '2' ); - Priority_task_name[ 3 ] = rtems_build_name( 'P', 'R', 'I', '3' ); - Priority_task_name[ 4 ] = rtems_build_name( 'P', 'R', 'I', '4' ); - Priority_task_name[ 5 ] = rtems_build_name( 'P', 'R', 'I', '5' ); - - Semaphore_name[ 1 ] = rtems_build_name( 'S', 'M', '1', ' ' ); - Semaphore_name[ 2 ] = rtems_build_name( 'S', 'M', '2', ' ' ); - Semaphore_name[ 3 ] = rtems_build_name( 'S', 'M', '3', ' ' ); - - status = rtems_semaphore_create( - Semaphore_name[ 1 ], - 1, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id[ 1 ] - ); - directive_failed( status, "rtems_semaphore_create of SM1" ); - - status = rtems_semaphore_create( - Semaphore_name[ 2 ], - 0, - RTEMS_PRIORITY, - &Semaphore_id[ 2 ] - ); - directive_failed( status, "rtems_semaphore_create of SM2" ); - - status = rtems_semaphore_create( - Semaphore_name[ 3 ], - 1, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id[ 3 ] - ); - directive_failed( status, "rtems_semaphore_create of SM3" ); - - puts( "INIT - Forward priority queue test" ); - Priority_test_driver( 0 ); - - puts( "INIT - Backward priority queue test" ); - Priority_test_driver( 32 ); - -pause(); - - puts( "INIT - Binary Semaphore and Priority Inheritance Test" ); - - status = rtems_semaphore_delete( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_delete of SM2" ); - - puts( "INIT - rtems_semaphore_create - allocated binary semaphore" ); - status = rtems_semaphore_create( - Semaphore_name[ 2 ], - 0, - RTEMS_BINARY_SEMAPHORE | RTEMS_PRIORITY | RTEMS_INHERIT_PRIORITY, - &Semaphore_id[ 2 ] - ); - directive_failed( status, "rtems_semaphore_create of priority inherit SM2" ); - - puts( "INIT - rtems_semaphore_release - allocated binary semaphore" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release of SM2" ); - - puts( "INIT - rtems_semaphore_delete - allocated binary semaphore" ); - status = rtems_semaphore_delete( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_delete of SM2" ); - - status = rtems_semaphore_create( - Semaphore_name[ 2 ], - 1, - RTEMS_BINARY_SEMAPHORE | RTEMS_PRIORITY | RTEMS_INHERIT_PRIORITY, - &Semaphore_id[ 2 ] - ); - directive_failed( status, "rtems_semaphore_create of priority inherit SM2" ); - - Priority_test_driver( 64 ); - -pause(); - - status = rtems_semaphore_delete( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_delete of SM2" ); - - status = rtems_semaphore_create( - Semaphore_name[ 2 ], - 0, - RTEMS_PRIORITY, - &Semaphore_id[ 2 ] - ); - directive_failed( status, "rtems_semaphore_create of priority SM2" ); - - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release of SM2" ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp12/pridrv.c b/testsuites/sptests/sp12/pridrv.c deleted file mode 100644 index 7174faf784..0000000000 --- a/testsuites/sptests/sp12/pridrv.c +++ /dev/null @@ -1,131 +0,0 @@ -/* Priority_test_driver - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * priority_base - priority_base switch - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Priority_test_driver( - rtems_unsigned32 priority_base -) -{ - rtems_task_priority previous_priority; - rtems_unsigned32 index; - rtems_status_code status; - - for ( index = 1 ; index <= 5 ; index++ ) { - switch ( index ) { - case 1: - case 2: - case 3: - Task_priority[ index ] = priority_base + index; - break; - default: - Task_priority[ index ] = priority_base + 3; - break; - } - - status = rtems_task_create( - Priority_task_name[ index ], - Task_priority[ index ], - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Priority_task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - } - - if ( priority_base == 0 ) { - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_start( - Priority_task_id[ index ], - Priority_task, - index - ); - directive_failed( status, "rtems_task_start loop" ); - } - } else { - for ( index = 5 ; index >= 1 ; index-- ) { - status = rtems_task_start( - Priority_task_id[ index ], - Priority_task, - index - ); - directive_failed( status, "rtems_task_start loop" ); - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after loop" ); - - if ( priority_base == 64 ) { - if ( index == 4 ) { - status = rtems_task_set_priority( - Priority_task_id[ 5 ], - priority_base + 4, - &previous_priority - ); - printf( "PDRV - change priority of PRI5 from %d to %d\n", - previous_priority, - priority_base + 4 - ); - directive_failed( status, "PDRV rtems_task_set_priority" ); - } - status = rtems_task_set_priority( - Priority_task_id[ 5 ], - RTEMS_CURRENT_PRIORITY, - &previous_priority - ); - directive_failed( status, "PDRV rtems_task_set_priority CURRENT" ); - printf( "PDRV - priority of PRI5 is %d\n", previous_priority ); - } - } - } - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after after loop" ); - - if ( priority_base == 0 ) { - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release loop" ); - } - } - - if ( priority_base == 64 ) { - puts( "PDRV - rtems_task_resume - PRI5" ); - status = rtems_task_resume( Priority_task_id[ 5 ] ); - directive_failed( status, "rtems_task_resume" ); - - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after so PRI5 can run" ); - - status = rtems_task_delete( Priority_task_id[ 5 ] ); - directive_failed( status, "rtems_task_delete of PRI5" ); - } - else { - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_delete( Priority_task_id[ index ] ); - directive_failed( status, "rtems_task_delete loop" ); - } - } -} diff --git a/testsuites/sptests/sp12/pritask.c b/testsuites/sptests/sp12/pritask.c deleted file mode 100644 index 155ef345cd..0000000000 --- a/testsuites/sptests/sp12/pritask.c +++ /dev/null @@ -1,91 +0,0 @@ -/* Priority_task - * - * This routine serves as a test task. It verifies the semaphore manager. - * - * Input parameters: - * its_index - priority index - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Priority_task( - rtems_task_argument its_index -) -{ - rtems_interval timeout; - rtems_task_priority its_priority; - rtems_task_priority current_priority; - rtems_status_code status; - rtems_unsigned32 index; - - its_priority = Task_priority[ its_index ]; - - if ( its_priority < 3 ) - timeout = 5 * TICKS_PER_SECOND; - else - timeout = RTEMS_NO_TIMEOUT; - - put_name( Priority_task_name[ its_index ], FALSE ); - puts( " - rtems_semaphore_obtain - wait forever on SM2" ); - - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - timeout - ); - directive_failed( status, "rtems_semaphore_obtain of SM2" ); - - if ( its_priority < 64 ) { - printf( "PRI%d - WHY AM I HERE? (pri=%d)", its_index, its_priority ); - exit( 0 ); - } - - if ( its_index == 5 ) - puts( "PRI5 - rtems_task_suspend - until all priority tasks blocked" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend" ); - - puts( "PRI5 - rtems_task_delete - all tasks waiting on SM2" ); - for ( index = 1 ; index < 5 ; index++ ) { - status = rtems_task_delete( Priority_task_id[ index ] ); - directive_failed( status, "rtems_task_delete loop" ); - } - - puts( "PRI5 - rtems_semaphore_obtain - nested" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - timeout - ); - directive_failed( status, "rtems_semaphore_obtain nested" ); - - puts( "PRI5 - rtems_semaphore_release - nested" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release nested " ); - - puts( "PRI5 - rtems_semaphore_release - restore priority" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release" ); - - status = rtems_task_set_priority( - RTEMS_SELF, - RTEMS_CURRENT_PRIORITY, - ¤t_priority - ); - directive_failed( status, "PRI5 rtems_task_set_priority CURRENT" ); - printf( "PRI5 - priority of PRI5 is %d\n", current_priority ); - - (void) rtems_task_suspend( RTEMS_SELF ); -} diff --git a/testsuites/sptests/sp12/sp12.doc b/testsuites/sptests/sp12/sp12.doc deleted file mode 100644 index fc19d92ed7..0000000000 --- a/testsuites/sptests/sp12/sp12.doc +++ /dev/null @@ -1,27 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test12 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - sm_create, sm_ident, sm_delete, sm_p, sm_v, tm_wkafter, t_setpri - -concepts: - - a. This test checks out the semaphore manager. - - b. This test forces _Flush_taskq() to unblock a task waiting - on a deleted object. diff --git a/testsuites/sptests/sp12/sp12.scn b/testsuites/sptests/sp12/sp12.scn deleted file mode 100644 index 82ceca3c6e..0000000000 --- a/testsuites/sptests/sp12/sp12.scn +++ /dev/null @@ -1,78 +0,0 @@ -*** TEST 12 *** -INIT - Forward priority queue test -PRI1 - rtems_semaphore_obtain - wait forever on SM2 -PRI2 - rtems_semaphore_obtain - wait forever on SM2 -PRI3 - rtems_semaphore_obtain - wait forever on SM2 -PRI4 - rtems_semaphore_obtain - wait forever on SM2 -PRI5 - rtems_semaphore_obtain - wait forever on SM2 -INIT - Backward priority queue test -PRI5 - rtems_semaphore_obtain - wait forever on SM2 -PRI4 - rtems_semaphore_obtain - wait forever on SM2 -PRI3 - rtems_semaphore_obtain - wait forever on SM2 -PRI2 - rtems_semaphore_obtain - wait forever on SM2 -PRI1 - rtems_semaphore_obtain - wait forever on SM2 - -INIT - Binary Semaphore and Priority Inheritance Test -INIT - rtems_semaphore_create - allocated binary semaphore -INIT - rtems_semaphore_release - allocated binary semaphore -INIT - rtems_semaphore_delete - allocated binary semaphore -PRI5 - rtems_semaphore_obtain - wait forever on SM2 -PRI5 - rtems_task_suspend - until all priority tasks blocked -PDRV - priority of PRI5 is 67 -PRI4 - rtems_semaphore_obtain - wait forever on SM2 -PDRV - change priority of PRI5 from 67 to 68 -PDRV - priority of PRI5 is 67 -PRI3 - rtems_semaphore_obtain - wait forever on SM2 -PDRV - priority of PRI5 is 67 -PRI2 - rtems_semaphore_obtain - wait forever on SM2 -PDRV - priority of PRI5 is 66 -PRI1 - rtems_semaphore_obtain - wait forever on SM2 -PDRV - priority of PRI5 is 65 -PDRV - rtems_task_resume - PRI5 -PRI5 - rtems_task_delete - all tasks waiting on SM2 -PRI5 - rtems_semaphore_obtain - nested -PRI5 - rtems_semaphore_release - nested -PRI5 - rtems_semaphore_release - restore priority -PRI5 - priority of PRI5 is 68 - -TA1 - rtems_semaphore_ident - smid => 00010001 -TA1 - rtems_semaphore_obtain - wait forever on SM2 -TA1 - got SM2 -TA1 - rtems_semaphore_obtain - wait forever on SM3 -TA1 - got SM3 -TA1 - rtems_semaphore_obtain - get SM1 - RTEMS_NO_WAIT -TA1 - got SM1 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_semaphore_obtain - wait forever on SM1 -TA3 - rtems_semaphore_obtain - wait forever on SM2 - -TA1 - rtems_semaphore_release - release SM1 -TA1 - rtems_semaphore_obtain - waiting for SM1 with 10 second timeout -TA2 - got SM1 -TA2 - rtems_semaphore_release - release SM1 -TA2 - rtems_task_set_priority - make self highest priority task -TA2 - rtems_semaphore_obtain - wait forever on SM2 -TA1 - got SM1 -TA1 - rtems_semaphore_release - release SM2 -TA2 - got SM2 -TA2 - rtems_semaphore_release - release SM2 -TA2 - rtems_task_delete - delete self -TA1 - rtems_task_wake_after - sleep 5 seconds -TA3 - got SM2 -TA3 - rtems_semaphore_release - release SM2 -TA3 - rtems_semaphore_obtain - wait forever on SM3 - -TA1 - rtems_task_delete - delete TA3 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA4 - rtems_semaphore_obtain - wait forever on SM1 -TA5 - rtems_semaphore_obtain - wait forever on SM1 -TA1 - rtems_task_delete - delete TA4 -TA1 - rtems_semaphore_release - release SM1 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA5 - got SM1 -TA5 - rtems_semaphore_obtain - wait forever on SM1 -TA1 - rtems_semaphore_delete - delete SM1 -TA1 - rtems_semaphore_delete - delete SM3 -TA1 - rtems_task_delete - delete self -TA5 - SM1 deleted by TA1 -*** END OF TEST 12 *** diff --git a/testsuites/sptests/sp12/system.h b/testsuites/sptests/sp12/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp12/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp12/task1.c b/testsuites/sptests/sp12/task1.c deleted file mode 100644 index d3d7f3ed15..0000000000 --- a/testsuites/sptests/sp12/task1.c +++ /dev/null @@ -1,153 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the semaphore manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id smid; - rtems_status_code status; - - status = rtems_semaphore_ident( - Semaphore_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &smid - ); - printf( "TA1 - rtems_semaphore_ident - smid => %08x\n", smid ); - directive_failed( status, "rtems_semaphore_ident of SM1" ); - - puts( "TA1 - rtems_semaphore_obtain - wait forever on SM2" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain of SM2" ); - puts( "TA1 - got SM2" ); - - puts( "TA1 - rtems_semaphore_obtain - wait forever on SM3" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 3 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain of SM3" ); - puts( "TA1 - got SM3" ); - - puts( "TA1 - rtems_semaphore_obtain - get SM1 - RTEMS_NO_WAIT" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain of SM1" ); - puts( "TA1 - got SM1" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - -pause(); - - puts( "TA1 - rtems_semaphore_release - release SM1" ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release of SM1" ); - - puts( - "TA1 - rtems_semaphore_obtain - waiting for SM1 with 10 second timeout" - ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND - ); - directive_failed( status, "rtems_semaphore_obtain of SM1" ); - puts( "TA1 - got SM1" ); - - puts( "TA1 - rtems_semaphore_release - release SM2" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release of SM2" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - -pause(); - - puts( "TA1 - rtems_task_delete - delete TA3" ); - status = rtems_task_delete( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_delete of TA3" ); - - status = rtems_task_create( - Task_name[ 4 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 4 ] - ); - directive_failed( status, "rtems_task_create of TA4" ); - - status = rtems_task_create( - Task_name[ 5 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 5 ] - ); - directive_failed( status, "rtems_task_create of TA5" ); - - status = rtems_task_start( Task_id[ 4 ], Task_4, 0 ); - directive_failed( status, "rtems_task_start of TA4" ); - - status = rtems_task_start( Task_id[ 5 ], Task5, 0 ); - directive_failed( status, "rtems_task_start of TA5" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_delete - delete TA4" ); - status = rtems_task_delete( Task_id[ 4 ] ); - directive_failed( status, "rtems_task_delete of TA4" ); - - puts( "TA1 - rtems_semaphore_release - release SM1" ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release on SM1" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_semaphore_delete - delete SM1" ); - status = rtems_semaphore_delete( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_delete of SM1" ); - - puts( "TA1 - rtems_semaphore_delete - delete SM3" ); - status = rtems_semaphore_delete( Semaphore_id[ 3 ] ); - directive_failed( status, "rtems_semaphore_delete of SM3" ); - - puts( "TA1 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA1" ); -} diff --git a/testsuites/sptests/sp12/task2.c b/testsuites/sptests/sp12/task2.c deleted file mode 100644 index 41d6735162..0000000000 --- a/testsuites/sptests/sp12/task2.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It simply obtains semaphores - * 1 and 2, the later when it is a high priority task. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority previous_priority; - - puts( "TA2 - rtems_semaphore_obtain - wait forever on SM1" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - puts( "TA2 - got SM1" ); - directive_failed( status, "rtems_semaphore_obtain on SM1" ); - - puts( "TA2 - rtems_semaphore_release - release SM1" ); - status = rtems_semaphore_release( Semaphore_id[ 1 ] ); - directive_failed( status, "rtems_semaphore_release on SM1" ); - - puts( "TA2 - rtems_task_set_priority - make self highest priority task" ); - status = rtems_task_set_priority( RTEMS_SELF, 3, &previous_priority ); - directive_failed( status, "rtems_task_set_priority on TA2" ); - - puts( "TA2 - rtems_semaphore_obtain - wait forever on SM2" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - puts( "TA2 - got SM2" ); - directive_failed( status, "rtems_semaphore_obtain on SM2" ); - - puts( "TA2 - rtems_semaphore_release - release SM2" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release on SM2" ); - - puts( "TA2 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA2" ); -} diff --git a/testsuites/sptests/sp12/task3.c b/testsuites/sptests/sp12/task3.c deleted file mode 100644 index 7340b84ce6..0000000000 --- a/testsuites/sptests/sp12/task3.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. It simply obtains semaphore - * 2 and waits forever attempting to obtain semaphore 3. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA3 - rtems_semaphore_obtain - wait forever on SM2" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 2 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain on SM2" ); - puts( "TA3 - got SM2" ); - - puts( "TA3 - rtems_semaphore_release - release SM2" ); - status = rtems_semaphore_release( Semaphore_id[ 2 ] ); - directive_failed( status, "rtems_semaphore_release on SM2" ); - - puts( "TA3 - rtems_semaphore_obtain - wait forever on SM3" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 3 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain on SM3" ); -} diff --git a/testsuites/sptests/sp12/task4.c b/testsuites/sptests/sp12/task4.c deleted file mode 100644 index 9a0e952613..0000000000 --- a/testsuites/sptests/sp12/task4.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Task_4 - * - * This routine serves as a test task. It waits forever attempting - * to obtain semaphore 1. However, it should never get the semaphore! - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_4( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA4 - rtems_semaphore_obtain - wait forever on SM1" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain on SM1" ); -} diff --git a/testsuites/sptests/sp12/task5.c b/testsuites/sptests/sp12/task5.c deleted file mode 100644 index ccf10cd11a..0000000000 --- a/testsuites/sptests/sp12/task5.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Task5 - * - * This routine serves as a test task. It obtains semaphore 1 correctly - * once, then waits for semaphore 1 again. Task 1 should delete the - * semaphore, thus waking this task up. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task5( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA5 - rtems_semaphore_obtain - wait forever on SM1" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_semaphore_obtain on SM1" ); - puts( "TA5 - got SM1" ); - - puts( "TA5 - rtems_semaphore_obtain - wait forever on SM1" ); - status = rtems_semaphore_obtain( - Semaphore_id[ 1 ], - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - fatal_directive_status( - status, - RTEMS_OBJECT_WAS_DELETED, - "rtems_semaphore_obtain on SM1" - ); - puts( "TA5 - SM1 deleted by TA1" ); - - puts( "*** END OF TEST 12 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp13/fillbuff.c b/testsuites/sptests/sp13/fillbuff.c deleted file mode 100644 index 43ccd86803..0000000000 --- a/testsuites/sptests/sp13/fillbuff.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Fill_buffer - * - * This test routine copies a given source string to a given destination - * buffer. - * - * Input parameters: - * source - pointer to string to be copied - * buffer - pointer to message buffer to be filled - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Fill_buffer( - char *source, - long *buffer -) -{ - memcpy( buffer, source, 16 ); -} diff --git a/testsuites/sptests/sp13/init.c b/testsuites/sptests/sp13/init.c deleted file mode 100644 index 0629cdff21..0000000000 --- a/testsuites/sptests/sp13/init.c +++ /dev/null @@ -1,112 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 13 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - Queue_name[ 1 ] = rtems_build_name( 'Q', '1', ' ', ' ' ); - Queue_name[ 2 ] = rtems_build_name( 'Q', '2', ' ', ' ' ); - Queue_name[ 3 ] = rtems_build_name( 'Q', '3', ' ', ' ' ); - - status = rtems_message_queue_create( - Queue_name[ 1 ], - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id[ 1 ] - ); - directive_failed( status, "rtems_message_queue_create of Q1" ); - - status = rtems_message_queue_create( - Queue_name[ 2 ], - 10, - RTEMS_PRIORITY | RTEMS_LIMIT, - &Queue_id[ 2 ] - ); - directive_failed( status, "rtems_message_queue_create of Q2" ); - - status = rtems_message_queue_create( - Queue_name[ 3 ], - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id[ 3 ] - ); - directive_failed( status, "rtems_message_queue_create of Q3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp13/putbuff.c b/testsuites/sptests/sp13/putbuff.c deleted file mode 100644 index e0bbfa4d7f..0000000000 --- a/testsuites/sptests/sp13/putbuff.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Put_buffer - * - * This test routine prints the given buffer. - * buffer. - * - * Input parameters: - * buffer - pointer to message buffer to be printer - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#define BUFFER_LENGTH 16 - -void Put_buffer( - long *buffer -) -{ - printf( "%16s", (char *)buffer ); -} diff --git a/testsuites/sptests/sp13/sp13.doc b/testsuites/sptests/sp13/sp13.doc deleted file mode 100644 index 4a0c9d24a0..0000000000 --- a/testsuites/sptests/sp13/sp13.doc +++ /dev/null @@ -1,25 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test13 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - q_create, q_ident, q_delete, q_send, q_urgent, q_broadcast, q_receive, - tm_wkafter, t_setpri - -concepts: - - a. This test checks out the message manager. diff --git a/testsuites/sptests/sp13/sp13.scn b/testsuites/sptests/sp13/sp13.scn deleted file mode 100644 index bd3af7da48..0000000000 --- a/testsuites/sptests/sp13/sp13.scn +++ /dev/null @@ -1,66 +0,0 @@ -*** TEST 13 *** -TA1 - rtems_message_queue_ident - qid => 00010001 -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1 -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - rtems_message_queue_receive - receive from queue 1 - RTEMS_NO_WAIT -TA2 - buffer received: BUFFER 1 TO Q 1 -TA2 - rtems_message_queue_receive - receive from queue 1 - RTEMS_WAIT FOREVER -TA2 - buffer received: BUFFER 2 TO Q 1 -TA2 - rtems_message_queue_receive - receive from queue 1 - RTEMS_WAIT FOREVER -TA3 - rtems_message_queue_receive - receive from queue 2 - RTEMS_WAIT FOREVER -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA2 - buffer received: BUFFER 3 TO Q 1 -TA2 - rtems_task_set_priority - make self highest priority task -TA2 - rtems_message_queue_receive - receive from queue 2 - RTEMS_WAIT FOREVER - -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 2 -TA2 - buffer received: BUFFER 1 TO Q 2 -TA2 - rtems_message_queue_send - BUFFER 2 TO Q 2 -TA2 - rtems_message_queue_receive - receive from queue 1 - 10 second timeout -TA1 - rtems_message_queue_receive - receive from queue 1 - 10 second timeout -TA3 - buffer received: BUFFER 2 TO Q 2 -TA3 - rtems_message_queue_broadcast - BUFFER 3 TO Q 1 -TA2 - buffer received: BUFFER 3 TO Q 1 -TA2 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA3 - number of tasks awakened = 02 -TA3 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 3 TO Q 1 -TA1 - rtems_task_delete - delete TA2 -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 3 -TA1 - rtems_task_wake_after - sleep 5 seconds -TA3 - buffer received: BUFFER 1 TO Q 3 -TA3 - rtems_task_delete - delete self - -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 3 -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 3 -TA1 - rtems_message_queue_send - BUFFER 4 TO Q 3 -TA1 - rtems_message_queue_urgent - BUFFER 5 TO Q 3 -TA1 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 5 TO Q 3 -TA1 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 2 TO Q 3 -TA1 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 3 TO Q 3 -TA1 - rtems_message_queue_receive - receive from queue 3 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 4 TO Q 3 -TA1 - rtems_message_queue_urgent - BUFFER 3 TO Q 2 -TA1 - rtems_message_queue_receive - receive from queue 2 - RTEMS_WAIT FOREVER -TA1 - buffer received: BUFFER 3 TO Q 2 - -TA1 - rtems_message_queue_delete - delete queue 1 -TA1 - rtems_message_queue_urgent - BUFFER 3 TO Q 2 -TA1 - rtems_message_queue_delete - delete queue 2 -TA1 - rtems_message_queue_flush - empty Q 3 -TA1 - 0 messages were flushed from Q 3 -TA1 - rtems_message_queue_send - BUFFER 1 TO Q 3 -TA1 - rtems_message_queue_send - BUFFER 2 TO Q 3 -TA1 - rtems_message_queue_send - BUFFER 3 TO Q 3 -TA1 - rtems_message_queue_flush - Q 3 -TA1 - 3 messages were flushed from Q 3 -TA1 - rtems_message_queue_send until all message buffers consumed -TA1 - all message buffers consumed -TA1 - rtems_message_queue_flush - Q 3 -TA1 - 100 messages were flushed from Q 3 -*** END OF TEST 13 *** diff --git a/testsuites/sptests/sp13/system.h b/testsuites/sptests/sp13/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp13/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp13/task1.c b/testsuites/sptests/sp13/task1.c deleted file mode 100644 index 89c0619025..0000000000 --- a/testsuites/sptests/sp13/task1.c +++ /dev/null @@ -1,213 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the message manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -extern rtems_configuration_table BSP_Configuration; - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id qid; - long buffer[ 4 ]; - rtems_unsigned32 index; - rtems_unsigned32 count; - rtems_status_code status; - - status = rtems_message_queue_ident( - Queue_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &qid - ); - printf( "TA1 - rtems_message_queue_ident - qid => %08x\n", qid ); - directive_failed( status, "rtems_message_queue_ident" ); - - Fill_buffer( "BUFFER 1 TO Q 1", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 1" ); - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 2 TO Q 1", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 1" ); - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - Fill_buffer( "BUFFER 3 TO Q 1", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 1" ); - status = rtems_message_queue_send( Queue_id[ 1 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - -pause(); - - Fill_buffer( "BUFFER 1 TO Q 2", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 2" ); - status = rtems_message_queue_send( Queue_id[ 2 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts_nocr( "TA1 - rtems_message_queue_receive - receive from queue 1 - " ); - puts ( "10 second timeout" ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA1 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( "TA1 - rtems_task_delete - delete TA2" ); - status = rtems_task_delete( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_delete" ); - - Fill_buffer( "BUFFER 1 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "TA1 - rtems_task_wake_after - sleep 5 seconds" ); - status = rtems_task_wake_after( 5*TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - -pause(); - - Fill_buffer( "BUFFER 2 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 3 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 4 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 4 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 5 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_urgent - BUFFER 5 TO Q 3" ); - status = rtems_message_queue_urgent( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_urgent" ); - - for ( index = 1 ; index <= 4 ; index++ ) { - puts( - "TA1 - rtems_message_queue_receive - receive from queue 3 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 3 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA1 - buffer received: " ); - Put_buffer( buffer ); - new_line; - } - - Fill_buffer( "BUFFER 3 TO Q 2", buffer ); - puts( "TA1 - rtems_message_queue_urgent - BUFFER 3 TO Q 2" ); - status = rtems_message_queue_urgent( Queue_id[ 2 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_urgent" ); - - puts( - "TA1 - rtems_message_queue_receive - receive from queue 2 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 2 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA1 - buffer received: " ); - Put_buffer( buffer ); - new_line; - -pause(); - - puts( "TA1 - rtems_message_queue_delete - delete queue 1" ); - status = rtems_message_queue_delete( Queue_id[ 1 ] ); - directive_failed( status, "rtems_message_queue_delete" ); - - Fill_buffer( "BUFFER 3 TO Q 2", buffer ); - puts( "TA1 - rtems_message_queue_urgent - BUFFER 3 TO Q 2" ); - status = rtems_message_queue_urgent( Queue_id[ 2 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_urgent" ); - - puts( "TA1 - rtems_message_queue_delete - delete queue 2" ); - status = rtems_message_queue_delete( Queue_id[ 2 ] ); - directive_failed( status, "rtems_message_queue_delete" ); - - puts( "TA1 - rtems_message_queue_flush - empty Q 3" ); - status = rtems_message_queue_flush( Queue_id[ 3 ], &count ); - printf( "TA1 - %d messages were flushed from Q 3\n", count ); - - Fill_buffer( "BUFFER 1 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 1 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 2 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 2 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - Fill_buffer( "BUFFER 3 TO Q 3", buffer ); - puts( "TA1 - rtems_message_queue_send - BUFFER 3 TO Q 3" ); - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( "TA1 - rtems_message_queue_flush - Q 3" ); - status = rtems_message_queue_flush( Queue_id[ 3 ], &count ); - printf( "TA1 - %d messages were flushed from Q 3\n", count ); - - puts( "TA1 - rtems_message_queue_send until all message buffers consumed" ); - while ( FOREVER ) { - status = rtems_message_queue_send( Queue_id[ 3 ], (long (*)[4])buffer ); - if ( status == RTEMS_UNSATISFIED ) break; - directive_failed( status, "rtems_message_queue_send loop" ); - } - - puts( "TA1 - all message buffers consumed" ); - puts( "TA1 - rtems_message_queue_flush - Q 3" ); - status = rtems_message_queue_flush( Queue_id[ 3 ], &count ); - printf( "TA1 - %d messages were flushed from Q 3\n", count ); - - if ( count != BSP_Configuration.maximum_messages ) - printf( "TA1 - ERROR - %d messages flushed!!!", count ); - - puts( "*** END OF TEST 13 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp13/task2.c b/testsuites/sptests/sp13/task2.c deleted file mode 100644 index 7d6438312c..0000000000 --- a/testsuites/sptests/sp13/task2.c +++ /dev/null @@ -1,132 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. Multiple tasks are required to - * verify all message manager capabilities. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - long buffer[ 4 ]; - rtems_task_priority previous_priority; - rtems_status_code status; - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 1 - RTEMS_NO_WAIT" - ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 1 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 1 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( "TA2 - rtems_task_set_priority - make self highest priority task" ); - status = rtems_task_set_priority( RTEMS_SELF, 3, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 2 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 2 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - Fill_buffer( "BUFFER 2 TO Q 2", (long *)buffer ); - puts( "TA2 - rtems_message_queue_send - BUFFER 2 TO Q 2" ); - directive_failed( status, "rtems_message_queue_send" ); - - status = rtems_message_queue_send( Queue_id[ 2 ], (long (*)[4])buffer ); - directive_failed( status, "rtems_message_queue_send" ); - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 1 - " - "10 second timeout" - ); - status = rtems_message_queue_receive( - Queue_id[ 1 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( - "TA2 - rtems_message_queue_receive - receive from queue 3 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 3 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA2 - buffer received: " ); - Put_buffer( buffer ); - new_line; - -} diff --git a/testsuites/sptests/sp13/task3.c b/testsuites/sptests/sp13/task3.c deleted file mode 100644 index 3ba7b61728..0000000000 --- a/testsuites/sptests/sp13/task3.c +++ /dev/null @@ -1,74 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. Its major function is to - * broadcast a messge to all the other tasks. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - long buffer[ 4 ]; - rtems_unsigned32 count; - rtems_status_code status; - - puts( - "TA3 - rtems_message_queue_receive - receive from queue 2 - " - "RTEMS_WAIT FOREVER" - ); - status = rtems_message_queue_receive( - Queue_id[ 2 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA3 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - Fill_buffer( "BUFFER 3 TO Q 1", (long *)buffer ); - puts( "TA3 - rtems_message_queue_broadcast - BUFFER 3 TO Q 1" ); - status = rtems_message_queue_broadcast( - Queue_id[ 1 ], - (long (*)[4])buffer, - &count - ); - printf( "TA3 - number of tasks awakened = %02d\n", count ); - puts( - "TA3 - rtems_message_queue_receive - receive from queue 3 - " - "RTEMS_WAIT FOREVER" - ); - - status = rtems_message_queue_receive( - Queue_id[ 3 ], - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "rtems_message_queue_receive" ); - puts_nocr( "TA3 - buffer received: " ); - Put_buffer( buffer ); - new_line; - - puts( "TA3 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp14/asr.c b/testsuites/sptests/sp14/asr.c deleted file mode 100644 index af7e212877..0000000000 --- a/testsuites/sptests/sp14/asr.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Process_asr - * - * This is the asynchronous signal routine (asr) for task 1. - * It demonstrates that ASRs can block execute and block. - * - * Input parameters: - * the_signal_set - signal set - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_asr Process_asr( - rtems_signal_set the_signal_set -) -{ - rtems_status_code status; - - printf( "ASR - ENTRY - signal => %08x\n", the_signal_set ); - switch( the_signal_set ) { - case RTEMS_SIGNAL_16: - case RTEMS_SIGNAL_17: - case RTEMS_SIGNAL_18 | RTEMS_SIGNAL_19: - break; - case RTEMS_SIGNAL_0: - case RTEMS_SIGNAL_1: - puts( "ASR - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after yield" ); - break; - case RTEMS_SIGNAL_3: - Asr_fired = TRUE; - break; - } - printf( "ASR - EXIT - signal => %08x\n", the_signal_set ); -} diff --git a/testsuites/sptests/sp14/init.c b/testsuites/sptests/sp14/init.c deleted file mode 100644 index 627295c03e..0000000000 --- a/testsuites/sptests/sp14/init.c +++ /dev/null @@ -1,75 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 14 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create of TM1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp14/sp14.doc b/testsuites/sptests/sp14/sp14.doc deleted file mode 100644 index 16aa420183..0000000000 --- a/testsuites/sptests/sp14/sp14.doc +++ /dev/null @@ -1,24 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test14 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - as_catch, as_return, as_send, tm_wkafter - -concepts: - - a. This test checks out the signal manager. diff --git a/testsuites/sptests/sp14/sp14.scn b/testsuites/sptests/sp14/sp14.scn deleted file mode 100644 index 31e6d067d2..0000000000 --- a/testsuites/sptests/sp14/sp14.scn +++ /dev/null @@ -1,33 +0,0 @@ -*** TEST 14 *** -TA1 - rtems_signal_catch - RTEMS_INTERRUPT_LEVEL( 3 ) -TA1 - rtems_signal_send - RTEMS_SIGNAL_16 to self -ASR - ENTRY - signal => 00010000 -ASR - EXIT - signal => 00010000 -TA1 - rtems_signal_send - RTEMS_SIGNAL_0 to self -ASR - ENTRY - signal => 00000001 -ASR - rtems_task_wake_after - yield processor -TA2 - rtems_signal_send - RTEMS_SIGNAL_17 to TA1 -TA2 - rtems_task_wake_after - yield processor -ASR - ENTRY - signal => 00020000 -ASR - EXIT - signal => 00020000 -ASR - EXIT - signal => 00000001 -TA1 - rtems_signal_catch - RTEMS_NO_ASR - -TA1 - rtems_signal_send - RTEMS_SIGNAL_1 to self -ASR - ENTRY - signal => 00000002 -ASR - rtems_task_wake_after - yield processor -TA2 - rtems_signal_send - RTEMS_SIGNAL_18 and RTEMS_SIGNAL_19 to TA1 -TA2 - rtems_task_wake_after - yield processor -ASR - EXIT - signal => 00000002 -ASR - ENTRY - signal => 000c0000 -ASR - EXIT - signal => 000c0000 -TA1 - rtems_task_mode - disable ASRs -TA1 - sending signal to RTEMS_SELF from timer -TA1 - waiting for signal to arrive -TA1 - timer routine got the correct arguments -TA1 - rtems_task_mode - enable ASRs -ASR - ENTRY - signal => 00000008 -ASR - EXIT - signal => 00000008 -TA1 - rtems_signal_catch - asraddr of NULL -TA1 - rtems_task_delete - delete self -*** END OF TEST 14 *** diff --git a/testsuites/sptests/sp14/system.h b/testsuites/sptests/sp14/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp14/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp14/task1.c b/testsuites/sptests/sp14/task1.c deleted file mode 100644 index ac8feed71f..0000000000 --- a/testsuites/sptests/sp14/task1.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It establishes an RTEMS_ASR and - * sends signal to itself to determine if the RTEMS_ASR gets to execute. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Signal_3_to_task_1( - rtems_id id, - void *pointer -) -{ - rtems_status_code status; - - status = rtems_signal_send( Task_id[ 1 ], RTEMS_SIGNAL_3 ); - directive_failed( status, "rtems_signal_send of 3" ); - - Timer_got_this_id = id; - Timer_got_this_pointer = pointer; - - Signals_sent = TRUE; -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_mode previous_mode; - rtems_status_code status; - - puts( "TA1 - rtems_signal_catch - RTEMS_INTERRUPT_LEVEL( 3 )" ); - status = rtems_signal_catch( Process_asr, RTEMS_INTERRUPT_LEVEL(3) ); - directive_failed( status, "rtems_signal_catch" ); - - puts( "TA1 - rtems_signal_send - RTEMS_SIGNAL_16 to self" ); - status = rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_16 ); - directive_failed( status, "rtems_signal_send" ); - - puts( "TA1 - rtems_signal_send - RTEMS_SIGNAL_0 to self" ); - status = rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_0 ); - directive_failed( status, "rtems_signal_send" ); - - puts( "TA1 - rtems_signal_catch - RTEMS_NO_ASR" ); - status = rtems_signal_catch( Process_asr, RTEMS_NO_ASR ); - directive_failed( status, "rtems_signal_catch" ); - -pause(); - - puts( "TA1 - rtems_signal_send - RTEMS_SIGNAL_1 to self" ); - status = rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_1 ); - directive_failed( status, "rtems_signal_send" ); - - puts( "TA1 - rtems_task_mode - disable ASRs" ); - status = rtems_task_mode( RTEMS_NO_ASR, RTEMS_ASR_MASK, &previous_mode ); - directive_failed( status, "rtems_task_mode" ); - - Timer_got_this_id = 0; - Timer_got_this_pointer = NULL; - - puts( "TA1 - sending signal to RTEMS_SELF from timer" ); - status = rtems_timer_fire_after( - Timer_id[ 1 ], - TICKS_PER_SECOND / 2, - Signal_3_to_task_1, - Task_1 - ); - directive_failed( status, "rtems_timer_fire_after" ); - - puts( "TA1 - waiting for signal to arrive" ); - - Signals_sent = FALSE; - Asr_fired = FALSE; - - while ( Signals_sent == FALSE ) - ; - - if ( Timer_got_this_id == Timer_id[ 1 ] && - Timer_got_this_pointer == Task_1 ) - puts( "TA1 - timer routine got the correct arguments" ); - else - printf( - "TA1 - timer got (0x%x, %p) instead of (0x%x, %p)!!!!\n", - Timer_got_this_id, - Timer_got_this_pointer, - Timer_id[ 1 ], - Task_1 - ); - - puts( "TA1 - rtems_task_mode - enable ASRs" ); - status = rtems_task_mode( RTEMS_ASR, RTEMS_ASR_MASK, &previous_mode ); - directive_failed( status, "rtems_task_mode" ); - - puts( "TA1 - rtems_signal_catch - asraddr of NULL" ); - status = rtems_signal_catch( NULL, RTEMS_DEFAULT_MODES ); - directive_failed( status, "rtems_signal_catch" ); - - puts( "TA1 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp14/task2.c b/testsuites/sptests/sp14/task2.c deleted file mode 100644 index bf1e7cc224..0000000000 --- a/testsuites/sptests/sp14/task2.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It verifies that one task can - * send signals to another task ( invoking the other task's RTEMS_ASR ). - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA2 - rtems_signal_send - RTEMS_SIGNAL_17 to TA1" ); - status = rtems_signal_send( Task_id[ 1 ], RTEMS_SIGNAL_17 ); - directive_failed( status, "rtems_signal_send" ); - - puts( "TA2 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - puts("TA2 - rtems_signal_send - RTEMS_SIGNAL_18 and RTEMS_SIGNAL_19 to TA1"); - status = rtems_signal_send( Task_id[ 1 ], RTEMS_SIGNAL_18 | RTEMS_SIGNAL_19 ); - directive_failed( status, "rtems_signal_send" ); - - puts( "TA2 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "*** END OF TEST 14 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp15/init.c b/testsuites/sptests/sp15/init.c deleted file mode 100644 index 4bee311714..0000000000 --- a/testsuites/sptests/sp15/init.c +++ /dev/null @@ -1,81 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 15 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - Partition_name[ 1 ] = rtems_build_name( 'P', 'T', '1', ' ' ); - Partition_name[ 2 ] = rtems_build_name( 'P', 'T', '2', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 4, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - puts("INIT - rtems_partition_create - partition 1"); - status = rtems_partition_create( - Partition_name[ 1 ], - Area_1, - 4096, - 512, - RTEMS_DEFAULT_ATTRIBUTES, - &Partition_id[ 1 ] - ); - directive_failed( status, "rtems_partition_create of PT1" ); - - puts("INIT - rtems_partition_create - partition 2"); - status = rtems_partition_create( - Partition_name[ 2 ], - Area_2, - 274, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Partition_id[ 2 ] - ); - directive_failed( status, "rtems_partition_create of PT2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp15/sp15.doc b/testsuites/sptests/sp15/sp15.doc deleted file mode 100644 index 3ec20ae92b..0000000000 --- a/testsuites/sptests/sp15/sp15.doc +++ /dev/null @@ -1,24 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test15 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - pt_create, pt_ident, pt_getbuf, pt_retbuf, pt_delete - -concepts: - - a. This test checks out the partition manager. diff --git a/testsuites/sptests/sp15/sp15.scn b/testsuites/sptests/sp15/sp15.scn deleted file mode 100644 index acddd5b5e9..0000000000 --- a/testsuites/sptests/sp15/sp15.scn +++ /dev/null @@ -1,16 +0,0 @@ -*** TEST 15 *** -INIT - rtems_partition_create - partition 1 -INIT - rtems_partition_create - partition 2 -TA1 - rtems_partition_ident - partition 1 id = 00010001 -TA1 - rtems_partition_ident - partition 2 id = 00010002 -TA1 - rtems_partition_get_buffer - buffer 1 from partition 1 - 0x00000000 -TA1 - rtems_partition_get_buffer - buffer 2 from partition 1 - 0x00000200 -TA1 - rtems_partition_get_buffer - buffer 1 from partition 2 - 0x00000000 -TA1 - rtems_partition_get_buffer - buffer 2 from partition 2 - 0x00000080 -TA1 - rtems_partition_return_buffer - buffer 1 to partition 1 - 0x00000000 -TA1 - rtems_partition_return_buffer - buffer 2 to partition 1 - 0x00000200 -TA1 - rtems_partition_return_buffer - buffer 1 to partition 2 - 0x00000000 -TA1 - rtems_partition_return_buffer - buffer 2 to partition 2 - 0x00000080 -TA1 - rtems_partition_delete - delete partition 1 -TA1 - rtems_partition_delete - delete partition 2 -*** END OF TEST 15 *** diff --git a/testsuites/sptests/sp15/system.h b/testsuites/sptests/sp15/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp15/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp15/task1.c b/testsuites/sptests/sp15/task1.c deleted file mode 100644 index f22d27efe3..0000000000 --- a/testsuites/sptests/sp15/task1.c +++ /dev/null @@ -1,129 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It tests the partition manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id ptid_1; - rtems_id ptid_2; - void *buffer_address_1; - void *buffer_address_2; - void *buffer_address_3; - void *buffer_address_4; - rtems_status_code status; - - puts_nocr( "TA1 - rtems_partition_ident - partition 1 id = " ); - status = rtems_partition_ident( - Partition_name[ 1 ], - RTEMS_SEARCH_ALL_NODES, - &ptid_1 - ); - directive_failed( status, "rtems_partition_ident of PT1" ); - printf( "%08x\n", ptid_1 ); - - puts_nocr( "TA1 - rtems_partition_ident - partition 2 id = " ); - status = rtems_partition_ident( - Partition_name[ 2 ], - RTEMS_SEARCH_ALL_NODES, - &ptid_2 - ); - directive_failed( status, "rtems_partition_ident of PT2" ); - printf( "%08x\n", ptid_2 ); - - puts_nocr( - "TA1 - rtems_partition_get_buffer - buffer 1 from partition 1 - " - ); - status = rtems_partition_get_buffer( ptid_1, &buffer_address_1 ); - directive_failed( status, "rtems_partition_get_buffer" ); - Put_address_from_area_1( buffer_address_1 ); - new_line; - - puts_nocr( - "TA1 - rtems_partition_get_buffer - buffer 2 from partition 1 - " - ); - status = rtems_partition_get_buffer( ptid_1, &buffer_address_2 ); - directive_failed( status, "rtems_partition_get_buffer" ); - Put_address_from_area_1( buffer_address_2 ); - new_line; - - puts_nocr( - "TA1 - rtems_partition_get_buffer - buffer 1 from partition 2 - " - ); - status = rtems_partition_get_buffer( ptid_2, &buffer_address_3 ); - directive_failed( status, "rtems_partition_get_buffer" ); - Put_address_from_area_2( buffer_address_3 ); - new_line; - - puts_nocr( - "TA1 - rtems_partition_get_buffer - buffer 2 from partition 2 - " - ); - status = rtems_partition_get_buffer( ptid_2, &buffer_address_4 ); - directive_failed( status, "rtems_partition_get_buffer" ); - Put_address_from_area_2( buffer_address_4 ); - new_line; - - puts_nocr( - "TA1 - rtems_partition_return_buffer - buffer 1 to partition 1 - " - ); - Put_address_from_area_1( buffer_address_1 ); - new_line; - status = rtems_partition_return_buffer( ptid_1, buffer_address_1 ); - directive_failed( status, "rtems_partition_return_buffer" ); - - puts_nocr( - "TA1 - rtems_partition_return_buffer - buffer 2 to partition 1 - " - ); - Put_address_from_area_1( buffer_address_2 ); - new_line; - status = rtems_partition_return_buffer( ptid_1, buffer_address_2 ); - directive_failed( status, "rtems_partition_return_buffer" ); - - puts_nocr( - "TA1 - rtems_partition_return_buffer - buffer 1 to partition 2 - " - ); - Put_address_from_area_2( buffer_address_3 ); - new_line; - status = rtems_partition_return_buffer( ptid_2, buffer_address_3 ); - directive_failed( status, "rtems_partition_return_buffer" ); - - puts_nocr( - "TA1 - rtems_partition_return_buffer - buffer 2 to partition 2 - " - ); - Put_address_from_area_2( buffer_address_4 ); - new_line; - status = rtems_partition_return_buffer( ptid_2, buffer_address_4 ); - directive_failed( status, "rtems_partition_return_buffer" ); - - puts( "TA1 - rtems_partition_delete - delete partition 1" - ); - status = rtems_partition_delete( ptid_1 ); - directive_failed( status, "rtems_partition_delete" ); - - puts( "TA1 - rtems_partition_delete - delete partition 2" - ); - status = rtems_partition_delete( ptid_2 ); - directive_failed( status, "rtems_partition_delete" ); - - puts( "*** END OF TEST 15 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp16/init.c b/testsuites/sptests/sp16/init.c deleted file mode 100644 index a5b1163b13..0000000000 --- a/testsuites/sptests/sp16/init.c +++ /dev/null @@ -1,131 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 16 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - Region_name[ 1 ] = rtems_build_name( 'R', 'N', '1', ' ' ); - Region_name[ 2 ] = rtems_build_name( 'R', 'N', '2', ' ' ); - Region_name[ 3 ] = rtems_build_name( 'R', 'N', '3', ' ' ); - Region_name[ 4 ] = rtems_build_name( 'R', 'N', '4', ' ' ); - - status = rtems_region_create( - Region_name[ 1 ], - Area_1, - 4096, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id[ 1 ] - ); - directive_failed( status, "rtems_region_create of RN1" ); - - status = rtems_region_create( - Region_name[ 2 ], - Area_2, - 4096, - 128, - RTEMS_PRIORITY, - &Region_id[ 2 ] - ); - directive_failed( status, "rtems_region_create of RN2" ); - - status = rtems_region_create( - Region_name[ 3 ], - Area_3, - 4096, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id[ 3 ] - ); - directive_failed( status, "rtems_region_create of RN3" ); - - status = rtems_region_create( - Region_name[ 4 ], - Area_4, - 4096, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id[ 4 ] - ); - directive_failed( status, "rtems_region_create of RN4" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp16/sp16.doc b/testsuites/sptests/sp16/sp16.doc deleted file mode 100644 index c5512af051..0000000000 --- a/testsuites/sptests/sp16/sp16.doc +++ /dev/null @@ -1,24 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test16 - -directives: - ex_init, ex_start, t_create, t_start, t_delete, tm_tick, i_return, - rn_create, rn_ident, rn_getbuf, rn_retbuf, rn_delete - -concepts: - - a. This test checks out the region manager. diff --git a/testsuites/sptests/sp16/sp16.scn b/testsuites/sptests/sp16/sp16.scn deleted file mode 100644 index a1a27cb9ad..0000000000 --- a/testsuites/sptests/sp16/sp16.scn +++ /dev/null @@ -1,58 +0,0 @@ -*** TEST 16 *** -TA1 - rtems_region_ident - rnid => 00010002 -TA1 - rtems_region_get_segment - wait on 100 byte segment from region 2 -TA1 - got segment from region 2 - 0x00000f78 -TA1 - rtems_region_get_segment - wait on 3K segment from region 3 -TA1 - got segment from region 3 - 0x000003f8 -TA1 - rtems_region_get_segment - get 3080 byte segment from region 1 - NO_WAIT -TA1 - got segment from region 1 - 0x00000378 -TA1 - rtems_task_wake_after - yield processor -TA2 - rtems_region_get_segment - wait on 2K segment from region 1 -TA3 - rtems_region_get_segment - wait on 3968 byte segment from region 2 - -TA1 - rtems_region_return_segment - return segment to region 1 - 0x00000378 -TA1 - rtems_region_get_segment - wait 10 seconds for 3K segment from region 1 -TA2 - got segment from region 1 - 0x000007f8 -TA2 - rtems_region_return_segment - return segment to region 1 - 0x000007f8 -TA2 - rtems_task_set_priority - make self highest priority task -TA2 - rtems_region_get_segment - wait on 3968 byte segment -TA1 - got segment from region 1 - 0x000003f8 -TA1 - rtems_region_return_segment - return segment to region 2 - 0x00000f78 -TA2 - got segment from region 2 - 0x00000008 -TA2 - rtems_region_return_segment - return segment to region 2 - 0x00000008 -TA2 - rtems_task_delete - delete self -TA1 - rtems_task_wake_after - yield processor -TA3 - got segment from region 2 - 0x00000008 -TA3 - rtems_region_get_segment - wait on 2K segment from region 3 -TA1 - rtems_task_delete - delete TA3 - -TA1 - rtems_task_wake_after - yield processor -TA4 - rtems_region_get_segment - wait on 1.5K segment from region 1 -TA5 - rtems_region_get_segment - wait on 1.5K segment from region 1 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x000003f8 -TA1 - rtems_task_wake_after - yield processor -TA4 - got and returned 0x000009f8 -TA5 - got and returned 0x000003f0 -TA1 - rtems_region_get_segment - wait 10 seconds for 3K segment from region 1 -TA1 - got segment from region 1 - 0x000003f8 -TA1 - rtems_task_wake_after - yield processor -TA4 - rtems_region_get_segment - wait on 3K segment from region 1 -TA5 - rtems_region_get_segment - wait on 3K segment from region 1 -TA1 - rtems_task_delete - delete TA4 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x000003f8 -TA1 - rtems_task_wake_after - yield processor -TA5 - got segment from region 1 - 0x000003f8 -TA5 - rtems_region_return_segment - return segment to region 1 - 0x000003f8 -TA5 - rtems_task_delete - delete self -TA1 - rtems_region_delete - delete region 1 -TA1 - rtems_region_get_segment - get 3K segment from region 4 -TA1 - got segment from region 4 - 0x000003f8 -TA1 - rtems_region_get_segment - attempt to get 3K segment from region 4 -TA1 - rtems_task_get_note - RTEMS_UNSATISFIED -TA1 - rtems_region_extend - extend region 4 by 4K -TA1 - rtems_region_get_segment - attempt to get 3K segment from region 4 -TA1 - got 3K segment from region 4 - 0x00001400 -TA1 - rtems_region_return_segment - return segment to region 4 - 0x000003f8 -TA1 - rtems_region_return_segment - return segment to region 4 - 0x00001400 -TA1 - rtems_region_delete - delete region 4 -*** END OF TEST 16 *** diff --git a/testsuites/sptests/sp16/system.h b/testsuites/sptests/sp16/system.h deleted file mode 100644 index 9e2b748a85..0000000000 --- a/testsuites/sptests/sp16/system.h +++ /dev/null @@ -1,32 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -#define BASE_PRIORITY 140 /* all tasks priority */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp16/task1.c b/testsuites/sptests/sp16/task1.c deleted file mode 100644 index 25f90aca00..0000000000 --- a/testsuites/sptests/sp16/task1.c +++ /dev/null @@ -1,282 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It tests the region manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id rnid; - void *segment_address_1; - void *segment_address_2; - void *segment_address_3; - void *segment_address_4; - rtems_status_code status; - - status = rtems_region_ident( Region_name[ 1 ], &rnid ); - printf( "TA1 - rtems_region_ident - rnid => %08x\n", rnid ); - directive_failed( status, "rtems_region_ident of RN1" ); - - puts( - "TA1 - rtems_region_get_segment - wait on 100 byte segment from region 2" - ); - status = rtems_region_get_segment( - Region_id[ 2 ], - 100, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 2 - " ); - Put_address_from_area_2( segment_address_1 ); - new_line; - - puts( "TA1 - rtems_region_get_segment - wait on 3K segment from region 3" ); - status = rtems_region_get_segment( - Region_id[ 3 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 3 - " ); - Put_address_from_area_3( segment_address_2 ); - new_line; - - puts_nocr( "TA1 - rtems_region_get_segment - get 3080 byte segment " ); - puts ( "from region 1 - NO_WAIT" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 3080, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &segment_address_3 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( segment_address_3 ); - new_line; - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - -pause(); - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( segment_address_3 ); - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_3 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait 10 seconds for 3K " - "segment from region 1" - ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND, - &segment_address_4 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( segment_address_4 ); - new_line; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 2 - " - ); - Put_address_from_area_2( segment_address_1 ); - new_line; - status = rtems_region_return_segment( Region_id[ 2 ], segment_address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_delete - delete TA3" ); - status = rtems_task_delete( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_delete of TA3" ); - -pause(); - - status = rtems_task_create( - Task_name[ 4 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 4 ] - ); - directive_failed( status, "rtems_task_create of TA4" ); - - status = rtems_task_create( - Task_name[ 5 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 5 ] - ); - directive_failed( status, "rtems_task_create of TA5" ); - - status = rtems_task_start( Task_id[ 4 ], Task_4, 0 ); - directive_failed( status, "rtems_task_start of TA4" ); - - status = rtems_task_start( Task_id[ 5 ], Task5, 0 ); - directive_failed( status, "rtems_task_start of TA5" ); - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( segment_address_4 ); - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_4 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts_nocr( "TA1 - rtems_region_get_segment - wait 10 seconds for 3K " ); - puts ( "segment from region 1"); - status = rtems_region_get_segment( - Region_id[ 1 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - 10 * TICKS_PER_SECOND, - &segment_address_4 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( segment_address_4 ); - new_line; - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - rtems_task_delete - delete TA4" ); - status = rtems_task_delete( Task_id[ 4 ] ); - directive_failed( status, "rtems_task_delete of TA4" ); - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( segment_address_4 ); - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_4 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( "TA1 - rtems_task_wake_after - yield processor" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - - puts( "TA1 - rtems_region_delete - delete region 1" ); - status = rtems_region_delete( Region_id[ 1 ] ); - directive_failed( status, "rtems_region_delete" ); - - puts( "TA1 - rtems_region_get_segment - get 3K segment from region 4" ); - status = rtems_region_get_segment( - Region_id[ 4 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 4 - " ); - Put_address_from_area_4( segment_address_1 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - attempt to get 3K segment from region 4" - ); - status = rtems_region_get_segment( - Region_id[ 4 ], - 3072, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - fatal_directive_status( - status, - RTEMS_UNSATISFIED, - "rtems_task_get_segment with no memory left" - ); - puts( "TA1 - rtems_task_get_note - RTEMS_UNSATISFIED" ); - - puts( "TA1 - rtems_region_extend - extend region 4 by 4K" ); - status = rtems_region_extend( - Region_id[ 4 ], - &Area_4[4096], - 4096 - ); - directive_failed( status, "rtems_region_extend" ); - - puts( - "TA1 - rtems_region_get_segment - attempt to get 3K segment from region 4" - ); - status = rtems_region_get_segment( - Region_id[ 4 ], - 3072, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &segment_address_3 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got 3K segment from region 4 - " ); - Put_address_from_area_4( segment_address_3 ); - new_line; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 4 - " - ); - Put_address_from_area_4( segment_address_1 ); - status = rtems_region_return_segment( Region_id[ 4 ], segment_address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 4 - " - ); - Put_address_from_area_4( segment_address_3 ); - status = rtems_region_return_segment( Region_id[ 4 ], segment_address_3 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( "TA1 - rtems_region_delete - delete region 4" ); - status = rtems_region_delete( Region_id[ 4 ] ); - directive_failed( status, "rtems_region_delete" ); - - puts( "*** END OF TEST 16 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp16/task2.c b/testsuites/sptests/sp16/task2.c deleted file mode 100644 index d5bc312b27..0000000000 --- a/testsuites/sptests/sp16/task2.c +++ /dev/null @@ -1,86 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It competes with the other tasks - * for region resources. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_task_priority previous_priority; - void *segment_address_1; - void *segment_address_2; - - puts( "TA2 - rtems_region_get_segment - wait on 2K segment from region 1" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 2048, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA2 - got segment from region 1 - " ); - Put_address_from_area_1( segment_address_1 ); - new_line; - - puts_nocr( - "TA2 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( segment_address_1 ); - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( "TA2 - rtems_task_set_priority - make self highest priority task" ); - status = rtems_task_set_priority( - RTEMS_SELF, - BASE_PRIORITY-1, - &previous_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - - puts("TA2 - rtems_region_get_segment - wait on 3968 byte segment"); - status = rtems_region_get_segment( - Region_id[ 2 ], - 3968, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA2 - got segment from region 2 - "); - Put_address_from_area_2( segment_address_2 ); - new_line; - - puts_nocr( - "TA2 - rtems_region_return_segment - return segment to region 2 - " - ); - Put_address_from_area_2( segment_address_2 ); - status = rtems_region_return_segment( Region_id[ 2 ], segment_address_2 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - - puts( "TA2 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp16/task3.c b/testsuites/sptests/sp16/task3.c deleted file mode 100644 index 292e5824f6..0000000000 --- a/testsuites/sptests/sp16/task3.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. It competes with the other tasks - * for region resources. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - rtems_status_code status; - void *segment_address_1; - void *segment_address_2; - - puts( - "TA3 - rtems_region_get_segment - wait on 3968 byte segment from region 2" - ); - status = rtems_region_get_segment( - Region_id[ 2 ], - 3968, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA3 - got segment from region 2 - " ); - Put_address_from_area_2( segment_address_1 ); - new_line; - directive_failed( status, "rtems_region_return_segment" ); - - puts( "TA3 - rtems_region_get_segment - wait on 2K segment from region 3" ); - status = rtems_region_get_segment( - Region_id[ 3 ], - 2048, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); -} diff --git a/testsuites/sptests/sp16/task4.c b/testsuites/sptests/sp16/task4.c deleted file mode 100644 index f3da89b72e..0000000000 --- a/testsuites/sptests/sp16/task4.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Task_4 - * - * This routine serves as a test task. It competes with the other tasks - * for region resources. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_4( - rtems_task_argument argument -) -{ - rtems_status_code status; - void *segment_address_1; - void *segment_address_2; - - puts( "TA4 - rtems_region_get_segment - wait on 1.5K segment from region 1" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 1536, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - puts_nocr( "TA4 - got and returned " ); - Put_address_from_area_1( segment_address_1 ); - new_line; - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA4 - rtems_region_get_segment - wait on 3K segment from region 1" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); -} diff --git a/testsuites/sptests/sp16/task5.c b/testsuites/sptests/sp16/task5.c deleted file mode 100644 index 5defa75f9c..0000000000 --- a/testsuites/sptests/sp16/task5.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Task5 - * - * This routine serves as a test task. It competes with the other tasks - * for region resources. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task5( - rtems_task_argument argument -) -{ - void *segment_address_1; - void *segment_address_2; - rtems_status_code status; - - puts( "TA5 - rtems_region_get_segment - wait on 1.5K segment from region 1" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 1536, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - puts_nocr( "TA5 - got and returned " ); - Put_address_from_area_1( segment_address_1 ); - new_line; - - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA5 - rtems_region_get_segment - wait on 3K segment from region 1" ); - status = rtems_region_get_segment( - Region_id[ 1 ], - 3072, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &segment_address_2 - ); - puts_nocr( "TA5 - got segment from region 1 - " ); - Put_address_from_area_1( segment_address_2 ); - new_line; - - status = rtems_region_return_segment( Region_id[ 1 ], segment_address_2 ); - puts_nocr( - "TA5 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( segment_address_2 ); - new_line; - - puts( "TA5 - rtems_task_delete - delete self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp17/asr.c b/testsuites/sptests/sp17/asr.c deleted file mode 100644 index 1795bbd522..0000000000 --- a/testsuites/sptests/sp17/asr.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Process_asr - * - * This routine performs the processing for task 1's RTEMS_ASR. It is called - * by an assembly routine which saves the necessary registers. - * - * Input parameters: - * signal - signal set - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_asr Process_asr( - rtems_signal_set signal_set -) -{ - rtems_status_code status; - - status = rtems_task_resume( Task_id[ 2 ] ); - directive_failed( status, "RTEMS_ASR - rtems_task_resume of TA2" ); -} diff --git a/testsuites/sptests/sp17/init.c b/testsuites/sptests/sp17/init.c deleted file mode 100644 index 5527e80c9c..0000000000 --- a/testsuites/sptests/sp17/init.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 17 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - - Task_2_preempted = FALSE; - - status = rtems_task_create( - Task_name[ 1 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp17/sp17.doc b/testsuites/sptests/sp17/sp17.doc deleted file mode 100644 index b4258461cf..0000000000 --- a/testsuites/sptests/sp17/sp17.doc +++ /dev/null @@ -1,35 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test17 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - as_catch, as_return - -concepts: - - a. Verifies system can create and start both the executive's system - initialization and idle task. - - b. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - c. Verifies executive initialization performed correctly. - - d. Verifies that a task can get the task identification number - of another task. - - e. Verifies that a signal can be sent to a remote task. diff --git a/testsuites/sptests/sp17/sp17.scn b/testsuites/sptests/sp17/sp17.scn deleted file mode 100644 index 47fd140e2a..0000000000 --- a/testsuites/sptests/sp17/sp17.scn +++ /dev/null @@ -1,8 +0,0 @@ -*** TEST 17 *** -TA2 - Suspending self -TA1 - rtems_signal_catch: initializing signal catcher -TA1 - Sending signal to self -TA2 - signal_return preempted correctly -TA1 - TA2 correctly preempted me -TA1 - Got Back!!! -*** END OF TEST 17 *** diff --git a/testsuites/sptests/sp17/system.h b/testsuites/sptests/sp17/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp17/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp17/task1.c b/testsuites/sptests/sp17/task1.c deleted file mode 100644 index 282c161a39..0000000000 --- a/testsuites/sptests/sp17/task1.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Task_1 - * - * This task initializes the signal catcher, sends the first signal - * if running on the first node, and loops while waiting for signals. - * - * NOTE: The signal catcher is not reentrant and hence RTEMS_NO_ASR must - * be a part of its execution mode. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "TA1 - rtems_signal_catch: initializing signal catcher" ); - status = rtems_signal_catch( Process_asr, RTEMS_NO_ASR | RTEMS_NO_PREEMPT ); - directive_failed( status, "rtems_signal_catch" ); - - puts( "TA1 - Sending signal to self" ); - status = rtems_signal_send( Task_id[ 1 ], RTEMS_SIGNAL_16 ); - directive_failed( status, "rtems_signal_send" ); - - if ( Task_2_preempted == TRUE ) - puts( "TA1 - TA2 correctly preempted me" ); - - puts("TA1 - Got Back!!!"); - - puts( "*** END OF TEST 17 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp17/task2.c b/testsuites/sptests/sp17/task2.c deleted file mode 100644 index cd3e16c7c0..0000000000 --- a/testsuites/sptests/sp17/task2.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Task_2 - * - * This task initializes the signal catcher, sends the first signal - * if running on the first node, and loops while waiting for signals. - * - * NOTE: The signal catcher is not reentrant and hence RTEMS_NO_ASR must - * be a part of its execution mode. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - Task_2_preempted = FALSE; - - puts( "TA2 - Suspending self" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - puts( "TA2 - signal_return preempted correctly" ); - - Task_2_preempted = TRUE; - - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend of TA2" ); -} diff --git a/testsuites/sptests/sp19/first.c b/testsuites/sptests/sp19/first.c deleted file mode 100644 index 94bdedd5ad..0000000000 --- a/testsuites/sptests/sp19/first.c +++ /dev/null @@ -1,66 +0,0 @@ -/* First_FP_task - * - * This routine serves as a floating point test task. It verifies the - * basic task switching capabilities of the executive when floating - * point is configured. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "fptest.h" -#include "inttest.h" - -rtems_task First_FP_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id tid; - rtems_time_of_day time; - rtems_unsigned32 task_index; - INTEGER_DECLARE; - FP_DECLARE; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - task_index = task_number( tid ); - - INTEGER_LOAD( INTEGER_factors[ task_index ] ); - FP_LOAD( FP_factors[ task_index ] ); - - put_name( Task_name[ task_index ], FALSE ); - printf( " - integer base = (0x%x)\n", INTEGER_factors[ task_index ] ); - put_name( Task_name[ task_index ], FALSE ); -#if ( RTEMS_HAS_HARDWARE_FP == 1 ) - printf( " - float base = (%g)\n", FP_factors[ task_index ] ); -#else - printf( " - float base = (NA)\n" ); -#endif - - if ( argument == 0 ) { - status = rtems_task_restart( RTEMS_SELF, 1 ); - directive_failed( status, "rtems_task_restart of RTEMS_SELF" ); - } else { - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); - } -} diff --git a/testsuites/sptests/sp19/fptask.c b/testsuites/sptests/sp19/fptask.c deleted file mode 100644 index b8e881e6cd..0000000000 --- a/testsuites/sptests/sp19/fptask.c +++ /dev/null @@ -1,98 +0,0 @@ -/* FP_task - * - * This routine serves as a floating point test task. It verifies the - * basic task switching capabilities of the executive when floating - * point is configured. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "fptest.h" -#include "inttest.h" - -rtems_task FP_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id tid; - rtems_time_of_day time; - rtems_unsigned32 task_index; - rtems_unsigned32 previous_seconds; - INTEGER_DECLARE; - FP_DECLARE; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident of self" ); - - task_index = task_number( tid ); - - INTEGER_LOAD( INTEGER_factors[ task_index ] ); - FP_LOAD( FP_factors[ task_index ] ); - - put_name( Task_name[ task_index ], FALSE ); - printf( " - integer base = (0x%x)\n", INTEGER_factors[ task_index ] ); - put_name( Task_name[ task_index ], FALSE ); -#if ( RTEMS_HAS_HARDWARE_FP == 1 ) - printf( " - float base = (%g)\n", FP_factors[ task_index ] ); -#else - printf( " - float base = (NA)\n" ); -#endif - - previous_seconds = -1; - - while( FOREVER ) { - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second >= 16 ) { - - if ( task_number( tid ) == 4 ) { - puts( "TA4 - rtems_task_delete - self" ); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA4" ); - } - puts( "TA5 - rtems_task_delete - TA3" ); - status = rtems_task_delete( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_delete of TA3" ); - - puts( "*** END OF TEST 19 *** " ); - exit( 0 ); - } - - if (previous_seconds != time.second) - { - put_name( Task_name[ task_index ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - previous_seconds = time.second; - } - - INTEGER_CHECK( INTEGER_factors[ task_index ] ); - FP_CHECK( FP_factors[ task_index ] ); - - /* for the first 4 seconds we spin as fast as possible - * so that we likely are interrupted - * After that, we go to sleep for a second at a time - */ - if (time.second >= 4) - { - status = rtems_task_wake_after( TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } - } -} diff --git a/testsuites/sptests/sp19/fptest.h b/testsuites/sptests/sp19/fptest.h deleted file mode 100644 index a8f3a925cb..0000000000 --- a/testsuites/sptests/sp19/fptest.h +++ /dev/null @@ -1,165 +0,0 @@ -/* fptest.h - * - * This include file contains the CPU dependent implementation - * of the following routines needed to test RTEMS floating - * point support: - * FP_load( &context ) - * FP_check( &context ) - * - * FP_load - loads the specified floating point context - * FP_check - checks the specified floating point context - * - * NOTE: These routines are VERY CPU dependent and are thus - * located in in the CPU dependent include file - * fptest.h. These routines form the core of the - * floating point context switch test. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#ifndef __FPTEST_h -#define __FPTEST_h - -#include - -#ifndef RTEMS_HAS_HARDWARE_FP -#error "This CPU does not have RTEMS_HAS_HARDWARE_FP defined" -#endif - -#if ( RTEMS_HAS_HARDWARE_FP == FALSE ) - -#define FP_DECLARE ; -#define FP_LOAD( _factor ) -#define FP_CHECK( _factor ) 0 - -#else - -#define FP_DECLARE \ - double fp01 = 1.0; \ - double fp02 = 2.0; \ - double fp03 = 3.0; \ - double fp04 = 4.0; \ - double fp05 = 5.0; \ - double fp06 = 6.0; \ - double fp07 = 7.0; \ - double fp08 = 8.0; \ - double fp09 = 9.0; \ - double fp10 = 10.0; \ - double fp11 = 11.0; \ - double fp12 = 12.0; \ - double fp13 = 13.0; \ - double fp14 = 14.0; \ - double fp15 = 15.0; \ - double fp16 = 16.0; \ - double fp17 = 17.0; \ - double fp18 = 18.0; \ - double fp19 = 19.0; \ - double fp20 = 20.0; \ - double fp21 = 21.0; \ - double fp22 = 22.0; \ - double fp23 = 23.0; \ - double fp24 = 24.0; \ - double fp25 = 25.0; \ - double fp26 = 26.0; \ - double fp27 = 27.0; \ - double fp28 = 28.0; \ - double fp29 = 29.0; \ - double fp30 = 30.0; \ - double fp31 = 31.0; \ - double fp32 = 32.0 - -#define FP_LOAD( _factor ) \ - do { \ - fp01 += _factor; \ - fp02 += _factor; \ - fp03 += _factor; \ - fp04 += _factor; \ - fp05 += _factor; \ - fp06 += _factor; \ - fp07 += _factor; \ - fp08 += _factor; \ - fp09 += _factor; \ - fp10 += _factor; \ - fp11 += _factor; \ - fp12 += _factor; \ - fp13 += _factor; \ - fp14 += _factor; \ - fp15 += _factor; \ - fp16 += _factor; \ - fp17 += _factor; \ - fp18 += _factor; \ - fp19 += _factor; \ - fp20 += _factor; \ - fp21 += _factor; \ - fp22 += _factor; \ - fp23 += _factor; \ - fp24 += _factor; \ - fp25 += _factor; \ - fp26 += _factor; \ - fp27 += _factor; \ - fp28 += _factor; \ - fp29 += _factor; \ - fp30 += _factor; \ - fp31 += _factor; \ - fp32 += _factor; \ - } while (0) - -#define EPSILON (0.0005) -#define FPABS(d) (((d) < 0.0) ? -(d) : (d)) -#define FPNEQ(a,b) (FPABS((a)-(b)) > EPSILON) - -#define FP_CHECK_ONE( _v, _base, _factor ) \ - if ( FPNEQ( (_v), ((_base) + (_factor)) ) ) { \ - printf("%d: " #_v " wrong -- (%g not %g)\n", \ - task_index, (_v), (_base + _factor)); \ - } - - -#define FP_CHECK( _factor ) \ - do { \ - FP_CHECK_ONE( fp01, 1.0, (_factor) ); \ - FP_CHECK_ONE( fp02, 2.0, (_factor) ); \ - FP_CHECK_ONE( fp03, 3.0, (_factor) ); \ - FP_CHECK_ONE( fp04, 4.0, (_factor) ); \ - FP_CHECK_ONE( fp05, 5.0, (_factor) ); \ - FP_CHECK_ONE( fp06, 6.0, (_factor) ); \ - FP_CHECK_ONE( fp07, 7.0, (_factor) ); \ - FP_CHECK_ONE( fp08, 8.0, (_factor) ); \ - FP_CHECK_ONE( fp09, 9.0, (_factor) ); \ - FP_CHECK_ONE( fp10, 10.0, (_factor) ); \ - FP_CHECK_ONE( fp11, 11.0, (_factor) ); \ - FP_CHECK_ONE( fp12, 12.0, (_factor) ); \ - FP_CHECK_ONE( fp13, 13.0, (_factor) ); \ - FP_CHECK_ONE( fp14, 14.0, (_factor) ); \ - FP_CHECK_ONE( fp15, 15.0, (_factor) ); \ - FP_CHECK_ONE( fp16, 16.0, (_factor) ); \ - FP_CHECK_ONE( fp17, 17.0, (_factor) ); \ - FP_CHECK_ONE( fp18, 18.0, (_factor) ); \ - FP_CHECK_ONE( fp19, 19.0, (_factor) ); \ - FP_CHECK_ONE( fp20, 20.0, (_factor) ); \ - FP_CHECK_ONE( fp21, 21.0, (_factor) ); \ - FP_CHECK_ONE( fp22, 22.0, (_factor) ); \ - FP_CHECK_ONE( fp23, 23.0, (_factor) ); \ - FP_CHECK_ONE( fp24, 24.0, (_factor) ); \ - FP_CHECK_ONE( fp25, 25.0, (_factor) ); \ - FP_CHECK_ONE( fp26, 26.0, (_factor) ); \ - FP_CHECK_ONE( fp27, 27.0, (_factor) ); \ - FP_CHECK_ONE( fp28, 28.0, (_factor) ); \ - FP_CHECK_ONE( fp29, 29.0, (_factor) ); \ - FP_CHECK_ONE( fp30, 30.0, (_factor) ); \ - FP_CHECK_ONE( fp31, 31.0, (_factor) ); \ - FP_CHECK_ONE( fp32, 32.0, (_factor) ); \ - } while (0) - -#endif - -#endif diff --git a/testsuites/sptests/sp19/init.c b/testsuites/sptests/sp19/init.c deleted file mode 100644 index 477ec4ef43..0000000000 --- a/testsuites/sptests/sp19/init.c +++ /dev/null @@ -1,153 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 19 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' ); - Task_name[ 6 ] = rtems_build_name( 'F', 'P', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_create( - Task_name[ 4 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &Task_id[ 4 ] - ); - directive_failed( status, "rtems_task_create of TA4" ); - - status = rtems_task_create( - Task_name[ 5 ], - 2, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &Task_id[ 5 ] - ); - directive_failed( status, "rtems_task_create of TA5" ); - - status = rtems_task_create( - Task_name[ 6 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &Task_id[ 6 ] - ); - directive_failed( status, "rtems_task_create of FP1" ); - - status = rtems_task_start( Task_id[ 6 ], First_FP_task, 0 ); - directive_failed( status, "rtems_task_start of FP1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_start( Task_id[ 4 ], FP_task, 0 ); - directive_failed( status, "rtems_task_start of TA4" ); - - status = rtems_task_start( Task_id[ 5 ], FP_task, 0 ); - directive_failed( status, "rtems_task_create of TA5" ); - - /* - * Load "task dependent factors" in the context areas - */ - - - FP_factors[0] = 0.0; - FP_factors[1] = 1000.1; - FP_factors[2] = 2000.2; - FP_factors[3] = 3000.3; - FP_factors[4] = 4000.4; - FP_factors[5] = 5000.5; - FP_factors[6] = 6000.6; - FP_factors[7] = 7000.7; - FP_factors[8] = 8000.8; - FP_factors[9] = 9000.9; - - INTEGER_factors[0] = 0x0000; - INTEGER_factors[1] = 0x1000; - INTEGER_factors[2] = 0x2000; - INTEGER_factors[3] = 0x3000; - INTEGER_factors[4] = 0x4000; - INTEGER_factors[5] = 0x5000; - INTEGER_factors[6] = 0x6000; - INTEGER_factors[7] = 0x7000; - INTEGER_factors[8] = 0x8000; - INTEGER_factors[9] = 0x9000; - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of TA1" ); -} diff --git a/testsuites/sptests/sp19/inttest.h b/testsuites/sptests/sp19/inttest.h deleted file mode 100644 index 5dfb0af636..0000000000 --- a/testsuites/sptests/sp19/inttest.h +++ /dev/null @@ -1,149 +0,0 @@ -/* inttest.h - * - * XXX: ??? - * This include file contains the CPU dependent implementation - * of the following routines needed to test RTEMS floating - * point support: - * INTEGER_load( &context ) - * INTEGER_check( &context ) - * - * INTEGER_load - loads the specified floating point context - * INTEGER_check - checks the specified floating point context - * - * NOTE: These routines are VERY CPU dependent and are thus - * located in in the CPU dependent include file - * inttest.h. These routines form the core of the - * floating point context switch test. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#ifndef __INTEGER_TEST_h -#define __INTEGER_TEST_h - -#include -#define REG_VARIABLE rtems_unsigned32 - -#define INTEGER_DECLARE \ - REG_VARIABLE int01 = 1; \ - REG_VARIABLE int02 = 2; \ - REG_VARIABLE int03 = 3; \ - REG_VARIABLE int04 = 4; \ - REG_VARIABLE int05 = 5; \ - REG_VARIABLE int06 = 6; \ - REG_VARIABLE int07 = 7; \ - REG_VARIABLE int08 = 8; \ - REG_VARIABLE int09 = 9; \ - REG_VARIABLE int10 = 10; \ - REG_VARIABLE int11 = 11; \ - REG_VARIABLE int12 = 12; \ - REG_VARIABLE int13 = 13; \ - REG_VARIABLE int14 = 14; \ - REG_VARIABLE int15 = 15; \ - REG_VARIABLE int16 = 16; \ - REG_VARIABLE int17 = 17; \ - REG_VARIABLE int18 = 18; \ - REG_VARIABLE int19 = 19; \ - REG_VARIABLE int20 = 20; \ - REG_VARIABLE int21 = 21; \ - REG_VARIABLE int22 = 22; \ - REG_VARIABLE int23 = 23; \ - REG_VARIABLE int24 = 24; \ - REG_VARIABLE int25 = 25; \ - REG_VARIABLE int26 = 26; \ - REG_VARIABLE int27 = 27; \ - REG_VARIABLE int28 = 28; \ - REG_VARIABLE int29 = 29; \ - REG_VARIABLE int30 = 30; \ - REG_VARIABLE int31 = 31; \ - REG_VARIABLE int32 = 32 - -#define INTEGER_LOAD( _factor ) \ - do { \ - int01 += _factor; \ - int02 += _factor; \ - int03 += _factor; \ - int04 += _factor; \ - int05 += _factor; \ - int06 += _factor; \ - int07 += _factor; \ - int08 += _factor; \ - int09 += _factor; \ - int10 += _factor; \ - int11 += _factor; \ - int12 += _factor; \ - int13 += _factor; \ - int14 += _factor; \ - int15 += _factor; \ - int16 += _factor; \ - int17 += _factor; \ - int18 += _factor; \ - int19 += _factor; \ - int20 += _factor; \ - int21 += _factor; \ - int22 += _factor; \ - int23 += _factor; \ - int24 += _factor; \ - int25 += _factor; \ - int26 += _factor; \ - int27 += _factor; \ - int28 += _factor; \ - int29 += _factor; \ - int30 += _factor; \ - int31 += _factor; \ - int32 += _factor; \ - } while (0) - -#define INTEGER_CHECK_ONE( _v, _base, _factor ) \ - if ( (_v) != ((_base) + (_factor)) ) { \ - printf("%d: " #_v " wrong -- (0x%x not 0x%x)\n", \ - task_index, (_v), (_base + _factor)); \ - } - - -#define INTEGER_CHECK( _factor ) \ - do { \ - INTEGER_CHECK_ONE( int01, 1, (_factor) ); \ - INTEGER_CHECK_ONE( int02, 2, (_factor) ); \ - INTEGER_CHECK_ONE( int03, 3, (_factor) ); \ - INTEGER_CHECK_ONE( int04, 4, (_factor) ); \ - INTEGER_CHECK_ONE( int05, 5, (_factor) ); \ - INTEGER_CHECK_ONE( int06, 6, (_factor) ); \ - INTEGER_CHECK_ONE( int07, 7, (_factor) ); \ - INTEGER_CHECK_ONE( int08, 8, (_factor) ); \ - INTEGER_CHECK_ONE( int09, 9, (_factor) ); \ - INTEGER_CHECK_ONE( int10, 10, (_factor) ); \ - INTEGER_CHECK_ONE( int11, 11, (_factor) ); \ - INTEGER_CHECK_ONE( int12, 12, (_factor) ); \ - INTEGER_CHECK_ONE( int13, 13, (_factor) ); \ - INTEGER_CHECK_ONE( int14, 14, (_factor) ); \ - INTEGER_CHECK_ONE( int15, 15, (_factor) ); \ - INTEGER_CHECK_ONE( int16, 16, (_factor) ); \ - INTEGER_CHECK_ONE( int17, 17, (_factor) ); \ - INTEGER_CHECK_ONE( int18, 18, (_factor) ); \ - INTEGER_CHECK_ONE( int19, 19, (_factor) ); \ - INTEGER_CHECK_ONE( int20, 20, (_factor) ); \ - INTEGER_CHECK_ONE( int21, 21, (_factor) ); \ - INTEGER_CHECK_ONE( int22, 22, (_factor) ); \ - INTEGER_CHECK_ONE( int23, 23, (_factor) ); \ - INTEGER_CHECK_ONE( int24, 24, (_factor) ); \ - INTEGER_CHECK_ONE( int25, 25, (_factor) ); \ - INTEGER_CHECK_ONE( int26, 26, (_factor) ); \ - INTEGER_CHECK_ONE( int27, 27, (_factor) ); \ - INTEGER_CHECK_ONE( int28, 28, (_factor) ); \ - INTEGER_CHECK_ONE( int29, 29, (_factor) ); \ - INTEGER_CHECK_ONE( int30, 30, (_factor) ); \ - INTEGER_CHECK_ONE( int31, 31, (_factor) ); \ - INTEGER_CHECK_ONE( int32, 32, (_factor) ); \ - } while (0) - -#endif diff --git a/testsuites/sptests/sp19/sp19.doc b/testsuites/sptests/sp19/sp19.doc deleted file mode 100644 index 78ac463c9f..0000000000 --- a/testsuites/sptests/sp19/sp19.doc +++ /dev/null @@ -1,23 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test19 - -directives: - -concepts: - - a. Verifies system can dispatch a mixture of floating point and - non-floating point tasks. diff --git a/testsuites/sptests/sp19/sp19.scn b/testsuites/sptests/sp19/sp19.scn deleted file mode 100644 index 76ded9f7d0..0000000000 --- a/testsuites/sptests/sp19/sp19.scn +++ /dev/null @@ -1,55 +0,0 @@ -*** TEST 19 *** -FP1 - integer base = (0x6000) -FP1 - float base = (6000.6) -FP1 - integer base = (0x6000) -FP1 - float base = (6000.6) -TA1 - integer base = (0x1000) -TA1 - rtems_clock_get - 09:00:00 12/31/1988 -TA2 - integer base = (0x2000) -TA2 - rtems_clock_get - 09:00:00 12/31/1988 -TA3 - integer base = (0x3000) -TA3 - rtems_clock_get - 09:00:00 12/31/1988 -TA4 - integer base = (0x4000) -TA4 - float base = (4000.4) -TA4 - rtems_clock_get - 09:00:00 12/31/1988 -TA5 - integer base = (0x5000) -TA5 - float base = (5000.5) -TA5 - rtems_clock_get - 09:00:00 12/31/1988 -TA4 - rtems_clock_get - 09:00:01 12/31/1988 -TA5 - rtems_clock_get - 09:00:01 12/31/1988 -TA4 - rtems_clock_get - 09:00:02 12/31/1988 -TA5 - rtems_clock_get - 09:00:02 12/31/1988 -TA4 - rtems_clock_get - 09:00:03 12/31/1988 -TA5 - rtems_clock_get - 09:00:03 12/31/1988 -TA4 - rtems_clock_get - 09:00:04 12/31/1988 -TA5 - rtems_clock_get - 09:00:04 12/31/1988 -TA1 - rtems_clock_get - 09:00:05 12/31/1988 -TA4 - rtems_clock_get - 09:00:05 12/31/1988 -TA5 - rtems_clock_get - 09:00:05 12/31/1988 -TA4 - rtems_clock_get - 09:00:06 12/31/1988 -TA5 - rtems_clock_get - 09:00:06 12/31/1988 -TA4 - rtems_clock_get - 09:00:07 12/31/1988 -TA5 - rtems_clock_get - 09:00:07 12/31/1988 -TA4 - rtems_clock_get - 09:00:08 12/31/1988 -TA5 - rtems_clock_get - 09:00:08 12/31/1988 -TA4 - rtems_clock_get - 09:00:09 12/31/1988 -TA5 - rtems_clock_get - 09:00:09 12/31/1988 -TA1 - rtems_clock_get - 09:00:10 12/31/1988 -TA2 - rtems_clock_get - 09:00:10 12/31/1988 -TA4 - rtems_clock_get - 09:00:10 12/31/1988 -TA5 - rtems_clock_get - 09:00:10 12/31/1988 -TA4 - rtems_clock_get - 09:00:11 12/31/1988 -TA5 - rtems_clock_get - 09:00:11 12/31/1988 -TA4 - rtems_clock_get - 09:00:12 12/31/1988 -TA5 - rtems_clock_get - 09:00:12 12/31/1988 -TA4 - rtems_clock_get - 09:00:13 12/31/1988 -TA5 - rtems_clock_get - 09:00:13 12/31/1988 -TA4 - rtems_clock_get - 09:00:14 12/31/1988 -TA5 - rtems_clock_get - 09:00:14 12/31/1988 -TA1 - rtems_clock_get - 09:00:15 12/31/1988 -TA3 - rtems_clock_get - 09:00:15 12/31/1988 -TA4 - rtems_clock_get - 09:00:15 12/31/1988 -TA5 - rtems_clock_get - 09:00:15 12/31/1988 -TA4 - rtems_task_delete - self -TA5 - rtems_task_delete - TA3 -*** END OF TEST 19 *** diff --git a/testsuites/sptests/sp19/system.h b/testsuites/sptests/sp19/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp19/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp19/task1.c b/testsuites/sptests/sp19/task1.c deleted file mode 100644 index 874fbcc614..0000000000 --- a/testsuites/sptests/sp19/task1.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the basic task - * switching capabilities of the executive. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#include "inttest.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id tid; - rtems_time_of_day time; - rtems_unsigned32 task_index; - INTEGER_DECLARE; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - task_index = task_number( tid ); - - INTEGER_LOAD( INTEGER_factors[ task_index ] ); - - put_name( Task_name[ task_index ], FALSE ); - printf( " - integer base = (0x%x)\n", INTEGER_factors[ task_index ] ); - - while( FOREVER ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - INTEGER_CHECK( INTEGER_factors[ task_index ] ); - - status = rtems_task_wake_after( - ( task_number( tid ) ) * 5 * TICKS_PER_SECOND - ); - directive_failed( status, "rtems_task_wake_after" ); - } -} diff --git a/testsuites/sptests/sp20/getall.c b/testsuites/sptests/sp20/getall.c deleted file mode 100644 index cff3841dff..0000000000 --- a/testsuites/sptests/sp20/getall.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Get_all_counters - * - * This routine allows TA5 to atomically obtain the iteration counters. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Get_all_counters() -{ - rtems_mode previous_mode; - rtems_status_code status; - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode to RTEMS_NO_PREEMPT" ); - - Temporary_count = Count; - Count.count[ 1 ] = 0; - Count.count[ 2 ] = 0; - Count.count[ 3 ] = 0; - Count.count[ 4 ] = 0; - Count.count[ 5 ] = 0; - - status = rtems_task_mode( RTEMS_PREEMPT, RTEMS_PREEMPT_MASK, &previous_mode ); - directive_failed( status, "rtems_task_mode to RTEMS_PREEMPT" ); -} diff --git a/testsuites/sptests/sp20/init.c b/testsuites/sptests/sp20/init.c deleted file mode 100644 index 95bdc3e728..0000000000 --- a/testsuites/sptests/sp20/init.c +++ /dev/null @@ -1,71 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TEST 20 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' ); - Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' ); - - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_create( - Task_name[ index ], - Priorities[ index ], - 4096, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - } - - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_start( Task_id[ index ], Task_1_through_5, index ); - directive_failed( status, "rtems_task_start loop" ); - } - - Count.count[ 1 ] = 0; - Count.count[ 2 ] = 0; - Count.count[ 3 ] = 0; - Count.count[ 4 ] = 0; - Count.count[ 5 ] = 0; - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp20/sp20.doc b/testsuites/sptests/sp20/sp20.doc deleted file mode 100644 index 4a029a4b89..0000000000 --- a/testsuites/sptests/sp20/sp20.doc +++ /dev/null @@ -1,24 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test20 - -directives: - - rm_create, rm_period - -concepts: - - a. Verifies Rate Monotonic Manager behavior. diff --git a/testsuites/sptests/sp20/sp20.scn b/testsuites/sptests/sp20/sp20.scn deleted file mode 100644 index 1de3c18db8..0000000000 --- a/testsuites/sptests/sp20/sp20.scn +++ /dev/null @@ -1,27 +0,0 @@ -*** TEST 20 *** -TA1 - rtems_rate_monotonic_create id = 0x00010001 -TA1 - rtems_rate_monotonic_ident id = 0x00010001 -TA1 - (0x00010001) period 2 -TA2 - rtems_rate_monotonic_create id = 0x00010002 -TA2 - rtems_rate_monotonic_ident id = 0x00010002 -TA2 - (0x00010002) period 2 -TA3 - rtems_rate_monotonic_create id = 0x00010003 -TA3 - rtems_rate_monotonic_ident id = 0x00010003 -TA3 - (0x00010003) period 2 -TA4 - rtems_rate_monotonic_create id = 0x00010004 -TA4 - rtems_rate_monotonic_ident id = 0x00010004 -TA4 - (0x00010004) period 2 -TA5 - rtems_rate_monotonic_create id = 0x00010005 -TA5 - rtems_rate_monotonic_ident id = 0x00010005 -TA5 - (0x00010005) period 50 -TA5 - PERIODS CHECK OK (1) -TA5 - PERIODS CHECK OK (2) -TA5 - PERIODS CHECK OK (3) -TA5 - PERIODS CHECK OK (4) -TA5 - PERIODS CHECK OK (5) -TA5 - PERIODS CHECK OK (6) -TA5 - PERIODS CHECK OK (7) -TA5 - PERIODS CHECK OK (8) -TA5 - PERIODS CHECK OK (9) -TA5 - PERIODS CHECK OK (10) -*** END OF TEST 20 *** diff --git a/testsuites/sptests/sp20/system.h b/testsuites/sptests/sp20/system.h deleted file mode 100644 index 98d52a20cc..0000000000 --- a/testsuites/sptests/sp20/system.h +++ /dev/null @@ -1,34 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -struct counters { - rtems_unsigned32 count[6]; -}; - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp20/task1.c b/testsuites/sptests/sp20/task1.c deleted file mode 100644 index c5eda1a9ae..0000000000 --- a/testsuites/sptests/sp20/task1.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Task_1_through_5 - * - * This routine serves as a test task for the period capabilities of the - * Rate Monotonic Manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_unsigned32 Periods[6] = { 0, 2, 2, 2, 2, 100 }; -rtems_unsigned32 Iterations[6] = { 0, 50, 50, 50, 50, 1 }; -rtems_task_priority Priorities[6] = { 0, 1, 1, 3, 4, 5 }; - -rtems_task Task_1_through_5( - rtems_unsigned32 argument -) -{ - rtems_id rmid; - rtems_id test_rmid; - rtems_unsigned32 index; - rtems_unsigned32 pass; - rtems_unsigned32 failed; - rtems_status_code status; - - status = rtems_rate_monotonic_create( argument, &rmid ); - directive_failed( status, "rtems_rate_monotonic_create" ); - put_name( Task_name[ argument ], FALSE ); - printf( "- rtems_rate_monotonic_create id = 0x%08x\n", rmid ); - - status = rtems_rate_monotonic_ident( argument, &test_rmid ); - directive_failed( status, "rtems_rate_monotonic_ident" ); - put_name( Task_name[ argument ], FALSE ); - printf( "- rtems_rate_monotonic_ident id = 0x%08x\n", test_rmid ); - - if ( rmid != test_rmid ) { - printf( "RMID's DO NOT MATCH (0x%x and 0x%x)\n", rmid, test_rmid ); - exit( 0 ); - } - - put_name( Task_name[ argument ], FALSE ); - printf( "- (0x%08x) period %d\n", rmid, Periods[ argument ] ); - - status = rtems_task_wake_after( 2 ); - directive_failed( status, "rtems_task_wake_after" ); - - switch ( argument ) { - case 1: - case 2: - case 3: - case 4: - while ( FOREVER ) { - status = rtems_rate_monotonic_period( rmid, Periods[ argument ] ); - directive_failed( status, "rtems_rate_monotonic_period" ); - Count.count[ argument ]++; - } - break; - case 5: - pass = 0; - failed = 0; - - status = rtems_rate_monotonic_period( rmid, Periods[ argument ] ); - directive_failed( status, "rtems_rate_monotonic_period 1 of TA5" ); - - Get_all_counters(); - - while ( FOREVER ) { - - status = rtems_rate_monotonic_period( rmid, Periods[ argument ] ); - directive_failed( status, "rtems_rate_monotonic_period 2 of TA5" ); - - Get_all_counters(); - - for( index = 1 ; index <= 4 ; index++ ) { - if ( Temporary_count.count[ index ] != Iterations[ index ] ) { - puts_nocr( "FAIL -- " ); - put_name ( Task_name[ index ], FALSE ); - printf ( " Actual=%d, Expected=%d\n", - Temporary_count.count[ index ], - Iterations[ index ] - ); - failed += 1; - } - } - - if ( failed == 5 ) - exit( 0 ); - - pass += 1; - - printf( "TA5 - PERIODS CHECK OK (%d)\n", pass ); - - fflush( stdout ); - - if ( pass == 10 ) { - puts( "*** END OF TEST 20 ***" ); - exit( 0 ); - } - - } - break; - } -} diff --git a/testsuites/sptests/sp21/init.c b/testsuites/sptests/sp21/init.c deleted file mode 100644 index bee9b931fc..0000000000 --- a/testsuites/sptests/sp21/init.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 21 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp21/sp21.doc b/testsuites/sptests/sp21/sp21.doc deleted file mode 100644 index 55ed6282bc..0000000000 --- a/testsuites/sptests/sp21/sp21.doc +++ /dev/null @@ -1,28 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test21 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_delete - de_init, de_open, de_close, de_read, de_write, de_cntrl - -concepts: - - a. Verifies all I/O manager directives always return successful for - null drivers. - - b. Verifies all I/O manager directives call and return from the driver - entry points in the driver address table. diff --git a/testsuites/sptests/sp21/sp21.scn b/testsuites/sptests/sp21/sp21.scn deleted file mode 100644 index c6392e3ea3..0000000000 --- a/testsuites/sptests/sp21/sp21.scn +++ /dev/null @@ -1,19 +0,0 @@ -*** TEST 21 *** ------ TESTING THE NULL DRIVER CHECKS ----- -TA1 - rtems_io_initialize - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_open - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_close - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_read - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_write - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_control - NULL DRIVER RTEMS_SUCCESSFUL ------ TESTING THE I/O MANAGER DIRECTIVES ----- -TA1 - rtems_io_initialize - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_open - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_close - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_read - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_write - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_control - STUB DRIVER RTEMS_SUCCESSFUL ------ RETURNING INVALID MAJOR NUMBER ----- -TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER -TA1 - rtems_io_open - RTEMS_INVALID_NUMBER -*** END OF TEST 21 *** diff --git a/testsuites/sptests/sp21/system.h b/testsuites/sptests/sp21/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp21/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp21/task1.c b/testsuites/sptests/sp21/task1.c deleted file mode 100644 index 3c4b284a97..0000000000 --- a/testsuites/sptests/sp21/task1.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It tests the I/O manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#define STUB_DRIVER_MAJOR 0x2 -#define NO_DRIVER_MAJOR 0x1 -#define INVALID_DRIVER_MAJOR 0x5 - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_status_code return_value; - - puts( "----- TESTING THE NULL DRIVER CHECKS -----" ); - - status = rtems_io_initialize( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_initialize" ); - puts( "TA1 - rtems_io_initialize - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_open( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_open" ); - puts( "TA1 - rtems_io_open - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_close( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_close" ); - puts( "TA1 - rtems_io_close - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_read( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_read" ); - puts( "TA1 - rtems_io_read - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_write( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_write" ); - puts( "TA1 - rtems_io_write - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_control( NO_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_control" ); - puts( "TA1 - rtems_io_control - NULL DRIVER RTEMS_SUCCESSFUL" ); - - puts( "----- TESTING THE I/O MANAGER DIRECTIVES -----" ); - - status = rtems_io_initialize( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_initialize" ); - puts( "TA1 - rtems_io_initialize - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_open( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_open" ); - puts( "TA1 - rtems_io_open - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_close( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_close" ); - puts( "TA1 - rtems_io_close - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_read( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_read" ); - puts( "TA1 - rtems_io_read - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_write( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_write" ); - puts( "TA1 - rtems_io_write - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_control( STUB_DRIVER_MAJOR, 0, NULL, &return_value ); - directive_failed( status, "rtems_io_control" ); - puts( "TA1 - rtems_io_control - STUB DRIVER RTEMS_SUCCESSFUL" ); - - puts( "----- RETURNING INVALID MAJOR NUMBER -----" ); - - status = rtems_io_initialize( INVALID_DRIVER_MAJOR, 0, NULL, &return_value ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_initialize" - ); - puts( "TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER" ); - - status = rtems_io_open( INVALID_DRIVER_MAJOR, 0, NULL, &return_value ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_open" - ); - puts( "TA1 - rtems_io_open - RTEMS_INVALID_NUMBER" ); - - puts( "*** END OF TEST 21 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp22/delay.c b/testsuites/sptests/sp22/delay.c deleted file mode 100644 index bcf9e014a7..0000000000 --- a/testsuites/sptests/sp22/delay.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Delayed_resume - * - * This routine is scheduled to be fired as a timer service routine. - * When fired this subprogram resumes Task_1. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Delayed_resume( - rtems_id ignored_id, - void *ignored_address -) -{ - rtems_status_code status; - - status = rtems_task_resume( Task_id[ 1 ] ); - directive_failed( status, "rtems_task_resume of self" ); -} diff --git a/testsuites/sptests/sp22/init.c b/testsuites/sptests/sp22/init.c deleted file mode 100644 index 820fac81e3..0000000000 --- a/testsuites/sptests/sp22/init.c +++ /dev/null @@ -1,69 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_time_of_day time; - rtems_status_code status; - - puts( "\n\n*** TEST 22 ***" ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - puts( "INIT - rtems_timer_create - creating timer 1" ); - status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); - directive_failed( status, "rtems_timer_create" ); - - printf( "INIT - timer 1 has id (0x%x)\n", Timer_id[ 1 ] ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp22/prtime.c b/testsuites/sptests/sp22/prtime.c deleted file mode 100644 index f3871eb9fd..0000000000 --- a/testsuites/sptests/sp22/prtime.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Print_time - * - * This routine prints the name of Task_1 and the current time of day. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -void Print_time( void ) -{ - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - put_name( Task_name[ 1 ], FALSE ); - print_time( "- rtems_clock_get - ", &time, "\n" ); -} diff --git a/testsuites/sptests/sp22/sp22.doc b/testsuites/sptests/sp22/sp22.doc deleted file mode 100644 index 9208d7a695..0000000000 --- a/testsuites/sptests/sp22/sp22.doc +++ /dev/null @@ -1,20 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test22 - -directives: - -concepts: diff --git a/testsuites/sptests/sp22/sp22.scn b/testsuites/sptests/sp22/sp22.scn deleted file mode 100644 index 6402ab4482..0000000000 --- a/testsuites/sptests/sp22/sp22.scn +++ /dev/null @@ -1,29 +0,0 @@ -*** TEST 22 *** -INIT - rtems_timer_create - creating timer 1 -INIT - timer 1 has id (0x10001) -TA1 - rtems_timer_ident - identing timer 1 -TA1 - timer 1 has id (0x10001) -TA1 - rtems_clock_get - 09:00:00 12/31/1988 -TA1 - rtems_timer_fire_after - timer 1 in 3 seconds -TA1 - rtems_task_suspend( RTEMS_SELF ) -TA1 - rtems_clock_get - 09:00:03 12/31/1988 -TA1 - rtems_timer_fire_after - timer 1 in 3 seconds -TA1 - rtems_task_wake_after - 1 second -TA1 - rtems_clock_get - 09:00:04 12/31/1988 -TA1 - rtems_timer_reset - timer 1 -TA1 - rtems_task_suspend( RTEMS_SELF ) -TA1 - rtems_clock_get - 09:00:07 12/31/1988 - -TA1 - rtems_timer_fire_after - timer 1 in 3 seconds -TA1 - rtems_timer_cancel - timer 1 -TA1 - rtems_clock_get - 09:00:07 12/31/1988 -TA1 - rtems_timer_fire_when - timer 1 in 3 seconds -TA1 - rtems_task_suspend( RTEMS_SELF ) -TA1 - rtems_clock_get - 09:00:10 12/31/1988 -TA1 - rtems_timer_fire_when - timer 1 in 3 seconds -TA1 - rtems_task_wake_after - 1 second -TA1 - rtems_clock_get - 09:00:11 12/31/1988 -TA1 - rtems_timer_cancel - timer 1 -TA1 - rtems_task_wake_after - YIELD (only task at priority) -TA1 - timer_deleting - timer 1 -*** END OF TEST 22 *** diff --git a/testsuites/sptests/sp22/system.h b/testsuites/sptests/sp22/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp22/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp22/task1.c b/testsuites/sptests/sp22/task1.c deleted file mode 100644 index 240a1972cc..0000000000 --- a/testsuites/sptests/sp22/task1.c +++ /dev/null @@ -1,164 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the basic task - * switching capabilities of the executive. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id tmid; - rtems_time_of_day time; - rtems_status_code status; - -/* Get id */ - - puts( "TA1 - rtems_timer_ident - identing timer 1" ); - status = rtems_timer_ident( Timer_name[ 1 ], &tmid ); - directive_failed( status, "rtems_timer_ident" ); - printf( "TA1 - timer 1 has id (0x%x)\n", tmid ); - -/* after which is allowed to fire */ - - Print_time(); - - puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" ); - status = rtems_timer_fire_after( - tmid, - 3 * TICKS_PER_SECOND, - Delayed_resume, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend" ); - - Print_time(); - -/* after which is reset and allowed to fire */ - - puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" ); - status = rtems_timer_fire_after( - tmid, - 3 * TICKS_PER_SECOND, - Delayed_resume, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - puts( "TA1 - rtems_task_wake_after - 1 second" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - Print_time(); - - puts( "TA1 - rtems_timer_reset - timer 1" ); - status = rtems_timer_reset( tmid ); - directive_failed( status, "rtems_timer_reset" ); - - puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend" ); - - Print_time(); - - pause(); - - /* - * Reset the time since we do not know how long the user waited - * before pressing at the pause. This insures that the - * actual output matches the screen. - */ - - build_time( &time, 12, 31, 1988, 9, 0, 7, 0 ); - - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - -/* after which is canceled */ - - puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" ); - status = rtems_timer_fire_after( - tmid, - 3 * TICKS_PER_SECOND, - Delayed_resume, - NULL - ); - directive_failed( status, "rtems_timer_fire_after" ); - - puts( "TA1 - rtems_timer_cancel - timer 1" ); - status = rtems_timer_cancel( tmid ); - directive_failed( status, "rtems_timer_cancel" ); - -/* when which is allowed to fire */ - - Print_time(); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - time.second += 3; - - puts( "TA1 - rtems_timer_fire_when - timer 1 in 3 seconds" ); - status = rtems_timer_fire_when( tmid, &time, Delayed_resume, NULL ); - directive_failed( status, "rtems_timer_fire_when" ); - - puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" ); - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend" ); - - Print_time(); - -/* when which is canceled */ - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - time.second += 3; - - puts( "TA1 - rtems_timer_fire_when - timer 1 in 3 seconds" ); - status = rtems_timer_fire_when( tmid, &time, Delayed_resume, NULL ); - directive_failed( status, "rtems_timer_fire_when" ); - - puts( "TA1 - rtems_task_wake_after - 1 second" ); - status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - - Print_time(); - - puts( "TA1 - rtems_timer_cancel - timer 1" ); - status = rtems_timer_cancel( tmid ); - directive_failed( status, "rtems_timer_cancel" ); - -/* delete */ - puts( "TA1 - rtems_task_wake_after - YIELD (only task at priority)" ); - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - puts( "TA1 - timer_deleting - timer 1" ); - status = rtems_timer_delete( tmid ); - directive_failed( status, "rtems_timer_delete" ); - - puts( "*** END OF TEST 22 *** " ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp23/init.c b/testsuites/sptests/sp23/init.c deleted file mode 100644 index 5acaf67e42..0000000000 --- a/testsuites/sptests/sp23/init.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 23 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - Port_name[ 1 ] = rtems_build_name( 'D', 'P', '1', ' ' ); - - status = rtems_port_create( - Port_name[ 1 ], - Internal_port_area, - External_port_area, - 0xff, - &Port_id[ 1 ] - ); - directive_failed( status, "rtems_port_create of DP1" ); - - printf( "INIT - rtems_port_create - DP1 - int = %p ext = %p\n", - Internal_port_area, - External_port_area - ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp23/sp23.doc b/testsuites/sptests/sp23/sp23.doc deleted file mode 100644 index 485a4ec466..0000000000 --- a/testsuites/sptests/sp23/sp23.doc +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test23 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_delete, - m_ext2int, m_int2ext - -concepts: - - a. Verifies the dual ported RAM directives work correctly. - -output: diff --git a/testsuites/sptests/sp23/sp23.scn b/testsuites/sptests/sp23/sp23.scn deleted file mode 100644 index 7529abd4c4..0000000000 --- a/testsuites/sptests/sp23/sp23.scn +++ /dev/null @@ -1,9 +0,0 @@ -*** TEST 23 *** -INIT - rtems_port_create - DP1 - int = 0x00001000 ext = 0x00002000 -TA1 - rtems_port_ident - 00010001 -TA1 - rtems_port_external_to_internal - 0x0000200e => 0x0000100e -TA1 - rtems_port_internal_to_external - 0x0000100e => 0x0000200e -TA1 - rtems_port_external_to_internal - 0x0000300e => 0x0000300e -TA1 - rtems_port_internal_to_external - 0x0000050e => 0x0000050e -TA1 - rtems_port_delete - DP1 -*** END OF TEST 23 *** diff --git a/testsuites/sptests/sp23/system.h b/testsuites/sptests/sp23/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp23/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp23/task1.c b/testsuites/sptests/sp23/task1.c deleted file mode 100644 index 5012616131..0000000000 --- a/testsuites/sptests/sp23/task1.c +++ /dev/null @@ -1,96 +0,0 @@ -/* Task_1 - * - * This task verifies that the dual ported RAM directives work - * correctly by converting external addresses to internal addresses and - * internal addresses to external addresses. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_id dpid; - void *to_be_converted; - void *converted; - rtems_status_code status; - - status = rtems_port_ident( Port_name[ 1 ], &dpid ); - directive_failed( status, "rtems_port_ident" ); - printf( "TA1 - rtems_port_ident - %08x\n", dpid ); - - to_be_converted = &External_port_area[ 0xe ]; - status = rtems_port_external_to_internal( - Port_id[ 1 ], - to_be_converted, - &converted - ); - directive_failed( status, "rtems_port_external_to_internal" ); - printf( - "TA1 - rtems_port_external_to_internal - %p => %p\n", - to_be_converted, - converted - ); - - to_be_converted = &Internal_port_area[ 0xe ]; - status = rtems_port_internal_to_external( - Port_id[ 1 ], - to_be_converted, - &converted - ); - directive_failed( status, "rtems_port_internal_to_external" ); - printf( - "TA1 - rtems_port_internal_to_external - %p => %p\n", - to_be_converted, - converted - ); - - to_be_converted = &Above_port_area[ 0xe ]; - status = rtems_port_external_to_internal( - Port_id[ 1 ], - to_be_converted, - &converted - ); - directive_failed( status, "rtems_port_external_to_internal" ); - printf( - "TA1 - rtems_port_external_to_internal - %p => %p\n", - to_be_converted, - converted - ); - - to_be_converted = &Below_port_area[ 0xe ]; - status = rtems_port_internal_to_external( - Port_id[ 1 ], - to_be_converted, - &converted - ); - directive_failed( status, "rtems_port_internal_to_external" ); - printf( - "TA1 - rtems_port_internal_to_external - %p => %p\n", - to_be_converted, - converted - ); - - status = rtems_port_delete( Port_id[ 1 ] ); - directive_failed( status, "rtems_port_delete" ); - puts( "TA1 - rtems_port_delete - DP1" ); - - puts( "*** END OF TEST 23 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/sp24/init.c b/testsuites/sptests/sp24/init.c deleted file mode 100644 index c73830a6df..0000000000 --- a/testsuites/sptests/sp24/init.c +++ /dev/null @@ -1,79 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_time_of_day time; - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TEST 24 ***" ); - - build_time( &time, 12, 31, 1988, 9, 0, 0, 0 ); - - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - Timer_name[ 1 ] = rtems_build_name( 'T', 'M', '1', ' ' ); - Timer_name[ 2 ] = rtems_build_name( 'T', 'M', '2', ' ' ); - Timer_name[ 3 ] = rtems_build_name( 'T', 'M', '3', ' ' ); - - for ( index = 1 ; index <= 3 ; index++ ) { - status = rtems_task_create( - Task_name[ index ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - status = rtems_timer_create( - Timer_name[ index ], - &Timer_id[ index ] - ); - directive_failed( status, "rtems_timer_create loop" ); - } - - for ( index = 1 ; index <= 3 ; index++ ) { - status = rtems_task_start( Task_id[ index ], Task_1_through_3, index ); - directive_failed( status, "rtems_task_start loop" ); - } - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp24/resume.c b/testsuites/sptests/sp24/resume.c deleted file mode 100644 index c73696c109..0000000000 --- a/testsuites/sptests/sp24/resume.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Resume_task - * - * This subprogram is scheduled as a timer service routine. When - * it fires it resumes the task which is mapped to this timer. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Resume_task( - rtems_id timer_id, - void *ignored_address -) -{ - rtems_id task_to_resume; - rtems_status_code status; - - task_to_resume = Task_id[ rtems_get_index( timer_id ) ]; - status = rtems_task_resume( task_to_resume ); - directive_failed( status, "rtems_task_resume" ); -} diff --git a/testsuites/sptests/sp24/sp24.doc b/testsuites/sptests/sp24/sp24.doc deleted file mode 100644 index 14b743d588..0000000000 --- a/testsuites/sptests/sp24/sp24.doc +++ /dev/null @@ -1,51 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test24 - -directives: - ex_init, ex_start, t_create, t_start, tm_tick, i_return, t_ident, - ev_receive - -concepts: - - a. This test is a cyclic version of test1. The times printed by - each test should not skew as in test1 (see output section). - - b. Verifies system can create and start both the executive's system - initialization and idle task. - - c. Verifies executive can swap between three application tasks at the - same priority and the executive's internal idle task. - - d. Verifies can print strings to the CRT on port 2 of the mvme136 board - using Print and Println in the board support package. - - e. Verifies interrupt handler can handler a task switch from an interrupt - as specified with the i_return directive. - - f. Verifies executive initialization performed correctly. - - g. Verifies the executive trap handler except for the halt function. - - h. Verifies that a task can get the task identification number of itself. - -output: - "TA1" is printed once every 5 seconds. "TA2" is printed once - every 10 seconds. "TA3" is printed once every 15 seconds. - - The times printed should be multiples of 5 seconds for TA1, 10 seconds - for TA2, and 15 seconds for TA3. If this does not happen, the calendar - time does not correspond correctly to the number of ticks. diff --git a/testsuites/sptests/sp24/sp24.scn b/testsuites/sptests/sp24/sp24.scn deleted file mode 100644 index 577dc4f7b2..0000000000 --- a/testsuites/sptests/sp24/sp24.scn +++ /dev/null @@ -1,16 +0,0 @@ -*** TEST 24 *** -TA1 - rtems_clock_get - 09:00:00 12/31/1988 -TA2 - rtems_clock_get - 09:00:00 12/31/1988 -TA3 - rtems_clock_get - 09:00:00 12/31/1988 -TA1 - rtems_clock_get - 09:00:05 12/31/1988 -TA1 - rtems_clock_get - 09:00:10 12/31/1988 -TA2 - rtems_clock_get - 09:00:10 12/31/1988 -TA1 - rtems_clock_get - 09:00:15 12/31/1988 -TA3 - rtems_clock_get - 09:00:15 12/31/1988 -TA1 - rtems_clock_get - 09:00:20 12/31/1988 -TA2 - rtems_clock_get - 09:00:20 12/31/1988 -TA1 - rtems_clock_get - 09:00:25 12/31/1988 -TA1 - rtems_clock_get - 09:00:30 12/31/1988 -TA2 - rtems_clock_get - 09:00:30 12/31/1988 -TA3 - rtems_clock_get - 09:00:30 12/31/1988 -*** END OF TEST 24 *** diff --git a/testsuites/sptests/sp24/system.h b/testsuites/sptests/sp24/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/sp24/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp24/task1.c b/testsuites/sptests/sp24/task1.c deleted file mode 100644 index bb3540acee..0000000000 --- a/testsuites/sptests/sp24/task1.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Task_1_through_3 - * - * This task is a cyclic version of test1 to asssure that the times - * displayed are not skewed as in test1. "TA1" is printed once every - * 5 seconds, "TA2" is printed once every 10 seconds, and "TA3" is - * printed once every 15 seconds. The times displayed should be - * in multiples of 5, 10, and 15 for TA1, TA2, and TA3 respectively. - * If the times are skewed from these values, then the calendar time - * does not correspond correctly with the number of ticks. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1_through_3( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident of self" ); - - while ( FOREVER ) { - status = rtems_timer_fire_after( - Timer_id[ argument ], - task_number( tid ) * 5 * TICKS_PER_SECOND, - Resume_task, - NULL - ); - directive_failed( status, "tm_fire_after failed" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get failed" ); - - if ( time.second >= 35 ) { - puts( "*** END OF TEST 24 ***" ); - exit( 0 ); - } - - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - status = rtems_task_suspend( RTEMS_SELF ); - directive_failed( status, "rtems_task_suspend" ); - } -} diff --git a/testsuites/sptests/sp25/init.c b/testsuites/sptests/sp25/init.c deleted file mode 100644 index fcd5b3dfd6..0000000000 --- a/testsuites/sptests/sp25/init.c +++ /dev/null @@ -1,69 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TEST 25 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - BASE_PRIORITY, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - Region_name[ 1 ] = rtems_build_name('R', 'N', '0', '1'); - - - status = rtems_region_create( - Region_name[ 1 ], - Area_1, - sizeof( Area_1 ), - 64, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id[ 1 ] - ); - directive_failed( status, "rtems_region_create of RN1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/sp25/sp25.doc b/testsuites/sptests/sp25/sp25.doc deleted file mode 100644 index 98684f53b3..0000000000 --- a/testsuites/sptests/sp25/sp25.doc +++ /dev/null @@ -1,32 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: test25 - -directives: - task_create - task_start - task_delete - region_create - region_ident - region_get_segment - region_return_segment - region_delete - -concepts: - - a. Verifies that the heap maintains it's integrity trhough a series - on region_get_segments and region_return_segments. - diff --git a/testsuites/sptests/sp25/sp25.scn b/testsuites/sptests/sp25/sp25.scn deleted file mode 100644 index 1944f18f4b..0000000000 --- a/testsuites/sptests/sp25/sp25.scn +++ /dev/null @@ -1,29 +0,0 @@ -*** TEST 25 *** -TA1 - rtems_region_ident - 00010002 -TA1 - rtems_region_get_segment - wait on 64 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000f9b8 -TA1 - rtems_region_get_segment - wait on 128 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000f930 -TA1 - rtems_region_get_segment - wait on 256 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000f828 -TA1 - rtems_region_get_segment - wait on 512 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000f620 -TA1 - rtems_region_get_segment - wait on 1024 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000f218 -TA1 - rtems_region_get_segment - wait on 2048 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000ea10 -TA1 - rtems_region_get_segment - wait on 4096 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000da08 -TA1 - rtems_region_get_segment - wait on 8192 byte segment from region 1 -TA1 - got segment from region 1 - 0x0000ba00 - -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000f828 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000f620 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000f9b8 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000f930 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000da08 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000ea10 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000ba00 -TA1 - rtems_region_return_segment - return segment to region 1 - 0x0000f218 -TA1 - rtems_region_delete - walks heap if debug enabled -*** END OF TEST 25 *** diff --git a/testsuites/sptests/sp25/system.h b/testsuites/sptests/sp25/system.h deleted file mode 100644 index 9e2b748a85..0000000000 --- a/testsuites/sptests/sp25/system.h +++ /dev/null @@ -1,32 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -#define BASE_PRIORITY 140 /* all tasks priority */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/sp25/task1.c b/testsuites/sptests/sp25/task1.c deleted file mode 100644 index 6222c4e734..0000000000 --- a/testsuites/sptests/sp25/task1.c +++ /dev/null @@ -1,241 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It tests the region manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - void *address_1; - void *address_2; - void *address_3; - void *address_4; - void *address_5; - void *address_6; - void *address_7; - void *address_8; - rtems_status_code status; - rtems_id region_id; - - status = rtems_region_ident(Region_name[ 1 ], ®ion_id); - printf( "TA1 - rtems_region_ident - %08x\n", region_id ); - directive_failed(status, "rtems_region_ident of RN01"); - - puts( - "TA1 - rtems_region_get_segment - wait on 64 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 64, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_1 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 128 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 128, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_2 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 256 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 256, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_3 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_3 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 512 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 512, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_4 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_4 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 1024 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 1024, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_5 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_5 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 2048 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 2048, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_6 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_6 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 4096 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 4096, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_7 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_7 ); - new_line; - - puts( - "TA1 - rtems_region_get_segment - wait on 8192 byte segment from region 1" - ); - rtems_region_get_segment( - Region_id[ 1 ], - 8192, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &address_8 - ); - directive_failed( status, "rtems_region_get_segment" ); - puts_nocr( "TA1 - got segment from region 1 - " ); - Put_address_from_area_1( address_8 ); - new_line; - -pause(); - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_3 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_3 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_3 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_4 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_4 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_4 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_1 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_1 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_1 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_2 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_2 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_2 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_7 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_7 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_7 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_6 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_6 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_6 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_8 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_8 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_8 = 0; - - puts_nocr( - "TA1 - rtems_region_return_segment - return segment to region 1 - " - ); - Put_address_from_area_1( address_5 ); - status = rtems_region_return_segment( Region_id[ 1 ], address_5 ); - directive_failed( status, "rtems_region_return_segment" ); - new_line; - address_5 = 0; - - puts( "TA1 - rtems_region_delete - walks heap if debug enabled" ); - rtems_region_delete(Region_id[ 1 ]); - - puts( "*** END OF TEST 25 ***" ); - exit( 0 ); -} diff --git a/testsuites/sptests/spfatal/fatal.c b/testsuites/sptests/spfatal/fatal.c deleted file mode 100644 index 3b2228bffd..0000000000 --- a/testsuites/sptests/spfatal/fatal.c +++ /dev/null @@ -1,134 +0,0 @@ -/* Fatal Error Test - * - * NOTE: - * - * This test actually modifies the Configuration table and restarts - * the executive. It is very carefully constructed to do this and - * uses the Configuration very carefully. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -#include - -char Workspace[ 64 * 1024 ] CPU_STRUCTURE_ALIGNMENT; - -typedef enum { - FATAL_WORKSPACE_OF_ZERO, - FATAL_NULL_WORKSPACE, - FATAL_WORKSPACE_TOO_SMALL, - FATAL_TASK_CREATE, - FATAL_TASK_START -} Fatal_errors_t; - -#define FATAL_LAST FATAL_TASK_START - -volatile Fatal_errors_t Case_in_switch; - -rtems_status_code Expected_Errors[] = { - RTEMS_UNSATISFIED, - RTEMS_INVALID_ADDRESS, - RTEMS_UNSATISFIED, - RTEMS_INVALID_PRIORITY, - RTEMS_TASK_EXITTED -}; - -rtems_status_code Error_Happened[ FATAL_LAST + 1]; - -jmp_buf Restart_Context; - -/* - * We depend on this being zeroed during initialization. This - * occurs automatically because this is part of the BSS. - */ - -rtems_unsigned32 First_Time_Through; - -void Process_case(); - -rtems_extension Fatal_extension( - rtems_unsigned32 error -) -{ - int index; - - Error_Happened[ Case_in_switch ] = error; - - if ( First_Time_Through == 0 ) { - Case_in_switch = FATAL_WORKSPACE_OF_ZERO; - First_Time_Through = 1; - setjmp( Restart_Context ); - } else if ( Case_in_switch == FATAL_LAST ) { - - /* - * Depending on the C library we use, we cannot get the - * task exitted error so do not check for it. - */ - - puts( "*** TEST FATAL ***" ); - for ( index=0 ; index< FATAL_LAST ; index++ ) - put_error( Error_Happened[ index ], Expected_Errors[ index ] ); - puts( "NOT TESTING FATAL ERROR WHEN TASK EXITS -- C LIBRARY CATCHES THIS" ); - puts( "*** END OF TEST FATAL ***" ); - - /* - * returns to the default fatal error handler instead of - * calling rtems_shutdown_executive - */ - return; - - } else { - - longjmp( Restart_Context, 1 ); - } - - Process_case(); -} - - - -void Process_case() -{ - switch ( Case_in_switch ) { - case FATAL_WORKSPACE_OF_ZERO: - New_Configuration = BSP_Configuration; - New_Configuration.work_space_start = NULL; - Case_in_switch = FATAL_NULL_WORKSPACE; - break; - - case FATAL_NULL_WORKSPACE: - New_Configuration.work_space_start = Workspace; - New_Configuration.work_space_size = 256; - Case_in_switch = FATAL_WORKSPACE_TOO_SMALL; - break; - - case FATAL_WORKSPACE_TOO_SMALL: - Initialization_tasks[ 0 ].initial_priority = RTEMS_CURRENT_PRIORITY; - New_Configuration.work_space_size = sizeof( Workspace ); - Case_in_switch = FATAL_TASK_CREATE; - break; - - case FATAL_TASK_CREATE: - Initialization_tasks[ 0 ].initial_priority = 1; - Initialization_tasks[ 0 ].entry_point = NULL; - Case_in_switch = FATAL_TASK_START; - break; - - case FATAL_TASK_START: - /* this extension exits the test */ - Initialization_tasks[ 0 ].entry_point = Init; - break; - } - rtems_initialize_executive( &New_Configuration, &Cpu_table ); -} - diff --git a/testsuites/sptests/spfatal/init.c b/testsuites/sptests/spfatal/init.c deleted file mode 100644 index a50c6101f5..0000000000 --- a/testsuites/sptests/spfatal/init.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 1, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/sptests/spfatal/puterr.c b/testsuites/sptests/spfatal/puterr.c deleted file mode 100644 index f7d79e5f34..0000000000 --- a/testsuites/sptests/spfatal/puterr.c +++ /dev/null @@ -1,68 +0,0 @@ -/* put_error - * - * This routine verifies that the given error is the expected error. - * - * Input parameters: - * error - actual error code - * expected - expected error code - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -char *Errors[] = { - "RTEMS_SUCCESSFUL", /* successful completion */ - "RTEMS_TASK_EXITTED", /* returned from a task */ - "RTEMS_MP_NOT_CONFIGURED", /* multiprocessing not configured */ - "RTEMS_INVALID_NAME", /* invalid object name */ - "RTEMS_INVALID_ID", /* invalid object id */ - "RTEMS_TOO_MANY", /* too many */ - "RTEMS_TIMEOUT", /* timed out waiting */ - "RTEMS_OBJECT_WAS_DELETED", /* object was deleted while waiting */ - "RTEMS_INVALID_SIZE", /* specified size was invalid */ - "RTEMS_INVALID_ADDRESS", /* address specified is invalid */ - "RTEMS_INVALID_NUMBER", /* number was invalid */ - "RTEMS_NOT_DEFINED", /* item has not been initialized */ - "RTEMS_RESOURCE_IN_USE", /* resources still outstanding */ - "RTEMS_UNSATISFIED", /* request not satisfied */ - "RTEMS_INCORRECT_STATE", /* task is in wrong state */ - "RTEMS_ALREADY_SUSPENDED", /* task already in state */ - "RTEMS_ILLEGAL_ON_SELF", /* illegal operation on calling task */ - "RTEMS_ILLEGAL_ON_REMOTE_OBJECT", /* illegal operation for remote object */ - "RTEMS_CALLED_FROM_ISR", /* called from ISR */ - "RTEMS_INVALID_PRIORITY", /* invalid task priority */ - "RTEMS_INVALID_CLOCK", /* invalid date/time */ - "RTEMS_INVALID_NODE", /* invalid node id */ - "RTEMS_NOT_OWNER_OF_RESOURCE", /* not owner of resource */ - "RTEMS_NOT_CONFIGURED", /* directive not configured */ - "RTEMS_NOT_IMPLEMENTED" /* directive not implemented */ -}; - -/* Task states */ - -void put_error( - rtems_unsigned32 error, - rtems_status_code expected -) -{ - - if ( error <= RTEMS_NOT_IMPLEMENTED ) - printf( "EXPECTED FATAL - error code is correctly %s\n", Errors[ error ] ); - else - printf( "ERROR - out of range error code is %d\n", error ); - - if ( error != expected ) { - printf( "ERROR - did not get expected code of %d\n", expected ); - } -} diff --git a/testsuites/sptests/spfatal/spfatal.doc b/testsuites/sptests/spfatal/spfatal.doc deleted file mode 100644 index 501f278670..0000000000 --- a/testsuites/sptests/spfatal/spfatal.doc +++ /dev/null @@ -1,28 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives and concepts tested by this test set. - -test set name: testfatal - -directives: none - -concepts: - - a. Verifies that the proper error is reported by k_fatal when a task - exits. - - b. Verifies that the task exitted extension works correctly. - - c. Verifies that the fatal error extension works corectly. - diff --git a/testsuites/sptests/spfatal/spfatal.scn b/testsuites/sptests/spfatal/spfatal.scn deleted file mode 100644 index ecb9f63597..0000000000 --- a/testsuites/sptests/spfatal/spfatal.scn +++ /dev/null @@ -1,8 +0,0 @@ -*** TEST FATAL *** -EXPECTED FATAL - error code is correctly RTEMS_UNSATISFIED -EXPECTED FATAL - error code is correctly RTEMS_INVALID_ADDRESS -EXPECTED FATAL - error code is correctly RTEMS_UNSATISFIED -EXPECTED FATAL - error code is correctly RTEMS_INVALID_PRIORITY -EXPECTED FATAL - error code is correctly RTEMS_TASK_EXITTED -NOT TESTING FATAL ERROR WHEN TASK EXITS -- C LIBRARY CATCHES THIS -*** END OF TEST FATAL *** diff --git a/testsuites/sptests/spfatal/system.h b/testsuites/sptests/spfatal/system.h deleted file mode 100644 index aa2c6d17e4..0000000000 --- a/testsuites/sptests/spfatal/system.h +++ /dev/null @@ -1,30 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "tmacros.h" - -/* Miscellaneous */ - -#define EXTERN extern /* external definition */ - -/* macros */ - -/* structures */ - -#include "gvar.h" - -/* end of include file */ diff --git a/testsuites/sptests/spfatal/task1.c b/testsuites/sptests/spfatal/task1.c deleted file mode 100644 index d06d25e690..0000000000 --- a/testsuites/sptests/spfatal/task1.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the task manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - puts( "\n\n*** TEST FATAL ***" ); - puts( "TA1 - exitting task" ); -} diff --git a/testsuites/sptests/spsize/getint.c b/testsuites/sptests/spsize/getint.c deleted file mode 100644 index 43d1f695c9..0000000000 --- a/testsuites/sptests/spsize/getint.c +++ /dev/null @@ -1,32 +0,0 @@ -/* getint - * - * This routine reads and returns an integer. - * It assumes decimal. - * - * Input parameters: NONE - * - * Output parameters: - * returns - number read - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include -#include - -int getint( void ) -{ - char buff[16]; - - gets(buff); - return atoi(buff); -} diff --git a/testsuites/sptests/spsize/init.c b/testsuites/sptests/spsize/init.c deleted file mode 100644 index e15e7b40fb..0000000000 --- a/testsuites/sptests/spsize/init.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "apps.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Test_task(); -void size_rtems( int mode ); - -rtems_task Init( - rtems_task_argument argument -) -{ - int choice; - - setvbuf(stdout, 0, _IONBF, 0); - - do { - puts( "\n*** RTEMS SIZE PROGRAM ***" ); - printf( "\n\nPlease select program mode:\n" ); - printf( " 1) Print Formulas\n" ); - printf( " 2) Determine Workspace Size\n" ); - printf( " 3) Exit\n" ); - printf( "Enter number of choice (1,2,3) : " ); - - choice = getint(); - switch( choice ) { - case 1: size_rtems( 1 ); break; - case 2: size_rtems( 0 ); break; - case 3: exit( 0 ); - default: continue; - } - } while ( FOREVER ); -} diff --git a/testsuites/sptests/spsize/size.c b/testsuites/sptests/spsize/size.c deleted file mode 100644 index 52404272fd..0000000000 --- a/testsuites/sptests/spsize/size.c +++ /dev/null @@ -1,601 +0,0 @@ -/* main - * - * This program is run to determine the data space and work space - * requirements of the current version of RTEMS. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* These are always defined by the executive. - * - * #include - * #include - * #include - */ -#define HEAP_OVHD 16 /* wasted heap space per task stack */ -#define NAME_PTR_SIZE 8 /* size of name and pointer table entries */ -#define READYCHAINS_SIZE \ - ((RTEMS_MAXIMUM_PRIORITY + 1) * sizeof(Chain_Control )) - -#define PER_TASK \ - (sizeof (Thread_Control) + NAME_PTR_SIZE + HEAP_OVHD) -#define PER_SEMAPHORE \ - (sizeof (Semaphore_Control) + NAME_PTR_SIZE) -#define PER_TIMER \ - (sizeof (Timer_Control) + NAME_PTR_SIZE) -#define PER_MSGQ \ - (sizeof (Message_queue_Control) + NAME_PTR_SIZE) -#define PER_MSG \ - (sizeof (Message_queue_Buffer_control)) -#define PER_REGN \ - (sizeof (Region_Control) + NAME_PTR_SIZE) -#define PER_PART \ - (sizeof (Partition_Control) + NAME_PTR_SIZE) -#define PER_PERIOD \ - (sizeof (Rate_monotonic_Control) + NAME_PTR_SIZE) -#define PER_PORT \ - (sizeof (Dual_ported_memory_Control) + NAME_PTR_SIZE) -#define PER_EXTENSION \ - (sizeof (Extension_Control) + NAME_PTR_SIZE) - -#define PER_DRV (0) -#define PER_FPTASK (CONTEXT_FP_SIZE) -#define PER_GOBTBL (sizeof (Chain_Control)*4) -#define PER_NODE PER_GOBTBL -#define PER_GOBJECT (sizeof (Objects_MP_Control)) -#define PER_PROXY (sizeof (Thread_Proxy_control)) - -#if (CPU_ALL_TASKS_ARE_FP == TRUE) -#define SYSTEM_INITIALIZATION_FP (sizeof( Context_Control_fp )) -#else -#define SYSTEM_INITIALIZATION_FP 0 -#endif - -#if (CPU_IDLE_TASK_IS_FP == TRUE) -#define SYSTEM_IDLE_FP (sizeof( Context_Control_fp )) -#else -#define SYSTEM_IDLE_FP 0 -#endif - -#define SYSTEM_TASKS \ - (INTERNAL_THREADS_IDLE_THREAD_STACK_SIZE + \ - INTERNAL_THREADS_SYSTEM_INITIALIZATION_THREAD_STACK_SIZE + \ - (2*sizeof(Thread_Control))) + \ - SYSTEM_INITIALIZATION_FP + \ - SYSTEM_IDLE_FP - -#define rtems_unsigned32 unsigned32 - -rtems_unsigned32 sys_req; - -/* to avoid warnings */ -int puts(); -int printf(); -int getint(); -#undef getchar -int getchar(); -void help_size(); -void print_formula(); - -void size_rtems( - int mode -) -{ -int uninitialized = 0; -int initialized = 0; - -/* - * The following data is allocated for each Manager: - * - * + Per Manager Object Information - * - local pointer table - * - local name table - * - the object's control blocks - * - global name chains - * - * The following is the data allocate from the RTEMS Workspace Area. - * The order indicates the order in which RTEMS allocates it. - * - * + Object MP - * - Global Object CB's - * + Thread - * - Ready Chain - * + Thread MP - * - Proxies Chain - * + Interrupt Manager - * - Interrupt Stack - * + Timer Manager - * - per Manager Object Data - * + Extension Manager - * - per Manager Object Data - * + Message Queue Manager - * - per Manager Object Data - * - Message Buffers - * + Semaphore Manager - * - per Manager Object Data - * + Partition Manager - * - per Manager Object Data - * + Region Manager - * - per Manager Object Data - * + Dual Ported Memory Manager - * - per Manager Object Data - * + Rate Monotonic Manager - * - per Manager Object Data - * + Internal Threads Handler - * - SYSI Thread TCB - * - IDLE Thread TCB - * - SYSI Thread stack - * - SYSI Thread FP area (if CPU requires this) - * - IDLE Thread stack - * - IDLE Thread FP area (if CPU requires this) - * - * This does not take into account any CPU dependent alignment requirements. - * - * The following calculates the overhead needed by RTEMS from the - * Workspace Area. - */ -sys_req = SYSTEM_TASKS + /* SYSI and IDLE */ - NAME_PTR_SIZE + /* Task Overhead */ - READYCHAINS_SIZE + /* Ready Chains */ - NAME_PTR_SIZE + /* Timer Overhead */ - NAME_PTR_SIZE + /* Semaphore Overhead */ - NAME_PTR_SIZE + /* Message Queue Overhead */ - NAME_PTR_SIZE + /* Region Overhead */ - NAME_PTR_SIZE + /* Partition Overhead */ - NAME_PTR_SIZE + /* Dual-Ported Memory Overhead */ - NAME_PTR_SIZE + /* Rate Monotonic Overhead */ - NAME_PTR_SIZE + /* Extension Overhead */ - PER_NODE; /* Extra Gobject Table */ - -uninitialized = -/*address.h*/ 0 + - -/*asr.h*/ 0 + - -/*attr.h*/ 0 + - -/*bitfield.h*/ 0 + - -/*chain.h*/ 0 + - -/*clock.h*/ 0 + - -/*config.h*/ (sizeof _Configuration_Table) + - (sizeof _Configuration_MP_table) + - (sizeof _Configuration_MPCI_table) + - -/*context.h*/ (sizeof _Context_Switch_necessary) + - -/*copyrt.h*/ 0 + - -/*dpmem.h*/ (sizeof _Dual_ported_memory_Information) + - -/*event.h*/ (sizeof _Event_Sync) + - -/*eventmp.h*/ 0 + - -/*eventset.h*/ 0 + - -/*extension.h*/ (sizeof _Extension_Information) + - -/*fatal.h*/ 0 + - -/*heap.h*/ 0 + - -/*init.h*/ 0 + - -/*inthrdmp.h*/ 0 + - -/*intr.h*/ 0 + - -/*intthrd.h*/ (sizeof _Internal_threads_System_initialization_thread) + - (sizeof _Internal_threads_Idle_thread) + - (sizeof _Internal_threads_MP_Receive_server_entry) + - -/*io.h*/ (sizeof _IO_Number_of_drivers) + - (sizeof _IO_Driver_address_table) + - -/*isr.h*/ (sizeof _ISR_Nest_level) + - (sizeof _ISR_Vector_table) + - (sizeof _ISR_Signals_to_thread_executing) + - -/*message.h*/ (sizeof _Message_queue_Inactive_messages) + - (sizeof _Message_queue_Information) + - -/*modes.h*/ 0 + - -/*mp.h*/ 0 + - -/*mpci.h*/ (sizeof _MPCI_Remote_blocked_threads) + - -/*mppkt.h*/ 0 + - -/*mptables.h*/ 0 + - -/*msgmp.h*/ 0 + - -/*object.h*/ (sizeof _Objects_Local_node) + - -/*objectmp.h*/ (sizeof _Objects_MP_Inactive_global_objects) + - -/*options.h*/ 0 + - -/*part.h*/ (sizeof _Partition_Information) + - -/*partmp.h*/ 0 + - -/*priority.h*/ (sizeof _Priority_Major_bit_map) + - (sizeof _Priority_Bit_map) + - -/*ratemon.h*/ (sizeof _Rate_monotonic_Information) + - -/*region.h*/ (sizeof _Region_Information) + - -/*regionmp.h*/ 0 + - -/*rtems.h*/ /* Not applicable */ - -/*sem.h*/ (sizeof _Semaphore_Information) + - -/*semmp.h*/ 0 + - -/*signal.h*/ 0 + - -/*signalmp.h*/ 0 + - -/*stack.h*/ 0 + - -/*states.h*/ 0 + - -/*status.h*/ 0 + - -/*system.h*/ (sizeof _CPU_Table) + - -/*sysstate.h*/ (sizeof _System_state_Current) + - -/*taskmp.h*/ 0 + - -/*tasks.h*/ 0 + - -/*thread.h*/ (sizeof _Thread_Dispatch_disable_level) + - (sizeof _Thread_Ticks_remaining_in_timeslice) + - (sizeof _Thread_Ticks_per_timeslice) + - (sizeof _Thread_Ready_chain) + - (sizeof _Thread_Executing) + - (sizeof _Thread_Heir) + - (sizeof _Thread_Allocated_fp) + - (sizeof _Thread_Information) + - (sizeof _Thread_BSP_context) + - -/*threadmp.h*/ (sizeof _Thread_MP_Receive) + - (sizeof _Thread_MP_Active_proxies) + - (sizeof _Thread_MP_Inactive_proxies) + - -/*threadq.h*/ 0 + - -/*timer.h*/ (sizeof _Timer_Information) + - -/*tod.h*/ (sizeof _TOD_Current) + - (sizeof _TOD_Seconds_since_epoch) + - (sizeof _TOD_Ticks_since_boot) + - (sizeof _TOD_Microseconds_per_tick) + - (sizeof _TOD_Ticks_per_second) + - (sizeof _TOD_Seconds_watchdog) + - -/*tqdata.h*/ 0 + - -/*types.h*/ 0 + - -/*userext.h*/ (sizeof _User_extensions_Initial) + - (sizeof _User_extensions_List) + - -/*watchdog.h*/ (sizeof _Watchdog_Ticks_chain) + - (sizeof _Watchdog_Seconds_chain) + - (sizeof _Watchdog_Sync) + - -/*wkspace.h*/ (sizeof _Workspace_Area); - -uninitialized = 0; - -#ifdef i386 - -/* cpu.h */ -uninitialized += (sizeof _CPU_Null_fp_context) + - (sizeof _CPU_Interrupt_stack_low) + - (sizeof _CPU_Interrupt_stack_high); - -#endif - -#ifdef i960 - -/* cpu.h */ -uninitialized += (sizeof _CPU_Interrupt_stack_low) + - (sizeof _CPU_Interrupt_stack_high); - -#endif - -#ifdef hppa1_1 - -/* cpu.h */ -uninitialized += (sizeof _CPU_Null_fp_context) + - (sizeof _CPU_Default_gr27) + - (sizeof _CPU_Interrupt_stack_low) + - (sizeof _CPU_Interrupt_stack_high); -#endif - -#ifdef m68k - -/* cpu.h */ -uninitialized += (sizeof _CPU_Interrupt_stack_low) + - (sizeof _CPU_Interrupt_stack_high); - -#endif - -#ifdef no_cpu - -/* cpu.h */ -uninitialized += (sizeof _CPU_Null_fp_context) + - (sizeof _CPU_Interrupt_stack_low) + - (sizeof _CPU_Interrupt_stack_high) + - (sizeof _CPU_Thread_dispatch_pointer); - -#endif - -initialized += -/*copyrt.h*/ (strlen(_Copyright_Notice)+1) + - -/*sptables.h*/ (sizeof _Configuration_Default_multiprocessing_table) + - (strlen(_RTEMS_version)+1) + - (sizeof _Entry_points) + - - -/*tod.h*/ (sizeof _TOD_Days_per_month) + - (sizeof _TOD_Days_to_date) + - (sizeof _TOD_Days_since_last_leap_year); - -puts( "" ); -#ifdef i960CA - print_formula(); -#else - if ( mode == 0 ) help_size(); - else print_formula(); -#endif - -printf( "\n" ); -printf( "RTEMS uninitialized data consumes %d bytes\n", uninitialized ); -printf( "RTEMS intialized data consumes %d bytes\n", initialized ); - -} - -void help_size() -{ -int c = '\0'; -int break_loop; -int total_size; -int task_stacks; -int interrupt_stack; -int maximum_tasks, size_tasks; -int maximum_sems, size_sems; -int maximum_timers, size_timers; -int maximum_msgqs, size_msgqs; -int maximum_msgs, size_msgs; -int maximum_regns, size_regns; -int maximum_parts, size_parts; -int maximum_ports, size_ports; -int maximum_periods, size_periods; -int maximum_extensions, size_extensions; -int maximum_drvs, size_drvs; -int maximum_fps, size_fps; -int maximum_nodes, size_nodes; -int maximum_gobjs, size_gobjs; -int maximum_proxies, size_proxies; - -total_size = sys_req; /* Fixed Overhead */ -printf( "What is maximum_tasks? " ); -maximum_tasks = getint(); -size_tasks = PER_TASK * maximum_tasks; -total_size += size_tasks; - -printf( "What is maximum_semaphores? " ); -maximum_sems = getint(); -size_sems = PER_SEMAPHORE * maximum_sems; -total_size += size_sems; - -printf( "What is maximum_timers? " ); -maximum_timers = getint(); -size_timers = PER_TIMER * maximum_timers; -total_size += size_timers; - -printf( "What is maximum_message_queues? " ); -maximum_msgqs = getint(); -size_msgqs = PER_MSGQ * maximum_msgqs; -total_size += size_msgqs; - -printf( "What is maximum_messages? " ); -maximum_msgs = getint(); -size_msgs = PER_MSG * maximum_msgs; -total_size += size_msgs; - -printf( "What is maximum_regions? " ); -maximum_regns = getint(); -size_regns = PER_REGN * maximum_regns; -total_size += size_regns; - -printf( "What is maximum_partitions? " ); -maximum_parts = getint(); -size_parts = PER_PART * maximum_parts; -total_size += size_parts; - -printf( "What is maximum_ports? " ); -maximum_ports = getint(); -size_ports = PER_PORT * maximum_ports; -total_size += size_ports; - -printf( "What is maximum_periods? " ); -maximum_periods = getint(); -size_periods = PER_PORT * maximum_periods; -total_size += size_periods; - -printf( "What is maximum_extensions? " ); -maximum_extensions = getint(); -size_extensions = PER_EXTENSION * maximum_extensions; -total_size += size_extensions; - -printf( "What is number_of_device_drivers? " ); -maximum_drvs = getint(); -size_drvs = PER_DRV * maximum_drvs; -total_size += size_drvs; - -printf( "What will be total stack requirement for all tasks? " ); -task_stacks = getint(); -total_size += task_stacks; - -printf( "What is the size of the interrupt stack? " ); -interrupt_stack = getint(); -total_size += interrupt_stack; - -printf( "How many tasks will be created with the FP flag? " ); -maximum_fps = getint(); -size_fps = PER_FPTASK * maximum_fps; -total_size += size_fps; - -printf( "Is this a single processor system? " ); -for ( break_loop=0 ; !break_loop; c = getchar() ) { - switch ( c ) { - case 'Y': case 'y': - case 'N': case 'n': - break_loop = 1; - break; - } -} -printf( "%c\n", c ); -if ( c == 'n' || c == 'N' ) { - printf( "What is maximum_nodes? " ); - maximum_nodes = getint(); - size_nodes = PER_NODE * maximum_nodes; - total_size += size_nodes; - printf( "What is maximum_global_objects? " ); - maximum_gobjs = getint(); - size_gobjs = PER_GOBJECT * maximum_gobjs; - total_size += size_gobjs; - printf( "What is maximum_proxies? " ); - maximum_proxies = getint(); - size_proxies = PER_PROXY * maximum_proxies; - total_size += size_proxies; -} else { - maximum_nodes = 0; - size_nodes = PER_NODE * 0; - maximum_gobjs = 0; - size_gobjs = PER_GOBJECT * 0; - maximum_proxies = 0; - size_proxies = PER_PROXY * 0; -} - -printf( "\n\n" ); -printf( " ************** EXECUTIVE WORK SPACE REQUIRED **************\n" ); -printf( " Tasks - %03d * %03d = %d\n", - maximum_tasks, PER_TASK, size_tasks ); -printf( " Semaphores - %03d * %03d = %d\n", - maximum_sems, PER_SEMAPHORE, size_sems ); -printf( " Timers - %03d * %03d = %d\n", - maximum_timers, PER_TIMER, size_timers ); -printf( " Msg Queues - %03d * %03d = %d\n", - maximum_msgqs, PER_MSGQ, size_msgqs ); -printf( " Messages - %03d * %03d = %d\n", - maximum_msgs, PER_MSG, size_msgs ); -printf( " Regions - %03d * %03d = %d\n", - maximum_regns, PER_REGN, size_regns); -printf( " Partitions - %03d * %03d = %d\n", - maximum_parts, PER_PART, size_parts ); -printf( " Periods - %03d * %03d = %d\n", - maximum_periods, PER_PERIOD, size_periods ); -printf( " Extensions - %03d * %03d = %d\n", - maximum_extensions, PER_EXTENSION, size_extensions ); -printf( " Device Drivers - %03d * %03d = %d\n", - maximum_drvs, PER_DRV, size_drvs ); - -printf( " System Requirements - %04d = %d\n", - sys_req, sys_req ); - -printf( " Floating Point Tasks - %03d * %03d = %d\n", - maximum_fps, PER_FPTASK, size_fps ); -printf( " Application Task Stacks - = %d\n", - task_stacks ); -printf( " Interrupt Stacks - = %d\n", - task_stacks ); -printf( " \n" ); -printf( " Global object tables - %03d * %03d = %d\n", - maximum_nodes, PER_NODE, size_nodes ); -printf( " Global objects - %03d * %03d = %d\n", - maximum_gobjs, PER_GOBJECT, size_gobjs ); -printf( " Proxies - %03d * %03d = %d\n", - maximum_proxies, PER_PROXY, size_proxies ); -printf( "\n\n" ); -printf( " TOTAL = %d bytes\n", - total_size ); -} - -void print_formula() -{ -printf( " ************** EXECUTIVE WORK SPACE FORMULA **************\n" ); -printf( " Tasks - maximum_tasks * %d\n", PER_TASK ); -printf( " Timers - maximum_timers * %d\n", PER_TIMER ); -printf( " Semaphores - maximum_semaphores * %d\n", PER_SEMAPHORE); -printf( " Message Queues - maximum_message_queues * %d\n", PER_MSGQ ); -printf( " Messages - maximum_messages * %d\n", PER_MSG ); -printf( " Regions - maximum_regions * %d\n", PER_REGN ); -printf( " Partitions - maximum_partitions * %d\n", PER_PART ); -printf( " Ports - maximum_ports * %d\n", PER_PORT ); -printf( " Periods - maximum_periods * %d\n", PER_PORT ); -printf( " Extensions - maximum_extensions * %d\n", PER_EXTENSION ); -printf( " Device Drivers - number_of_device_drivers * %d\n", PER_DRV); -printf( " System Requirements - %d\n", sys_req ); -printf( " Floating Point Tasks - FPMASK Tasks * %d\n", CONTEXT_FP_SIZE ); -printf( " User's Tasks' Stacks -\n" ); -printf( " Interrupt Stack -\n" ); -printf( " \n" ); -printf( " Global object tables - maximum_nodes * %d\n", PER_NODE ); -printf( " Global objects - maximum_global_objects * %d\n", PER_GOBJECT ); -printf( " Proxies - maximum_proxies * %d\n", PER_PROXY ); -} diff --git a/testsuites/support/include/tmacros.h b/testsuites/support/include/tmacros.h deleted file mode 100644 index 8a5fad37c8..0000000000 --- a/testsuites/support/include/tmacros.h +++ /dev/null @@ -1,116 +0,0 @@ -/* tmacros.h - * - * This include file contains macros which are useful in the RTEMS - * test suites. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __TMACROS_h -#define __TMACROS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include "bsp.h" -#include "stdio.h" -#include "stdlib.h" -#include "libcsupport.h" - -#define FOREVER 1 /* infinite loop */ - -#define directive_failed( dirstat, failmsg ) \ - fatal_directive_status( dirstat, RTEMS_SUCCESSFUL, failmsg ) - -#define fatal_directive_status( stat, desired, msg ) \ - { \ - if ( (stat) != (desired) ) { \ - printf( "\n%s FAILED -- expected (%d) got (%d)\n", \ - (msg), (desired), (stat) ); \ - exit( stat ); \ - } \ - } - -#define sprint_time(str,s1,tb,s2) \ - sprintf( (str), "%s%02d:%02d:%02d %02d/%02d/%04d%s", \ - s1, (tb)->hour, (tb)->minute, (tb)->second, \ - (tb)->month, (tb)->day, (tb)->year, s2 ); - -#define print_time(s1,tb,s2) \ - printf( "%s%02d:%02d:%02d %02d/%02d/%04d%s", \ - s1, (tb)->hour, (tb)->minute, (tb)->second, \ - (tb)->month, (tb)->day, (tb)->year, s2 ); - -#define put_dot( c ) putchar( c ); fflush( stdout ) - -#define new_line puts( "" ) - -#define puts_nocr printf - -#define pause() \ - do { \ - char buffer[ 80 ]; \ - printf( " " ); fflush( stdout ); \ - gets( buffer ); \ - puts( "" ); \ - } while ( 0 ) - -#define pause_and_screen_number( _screen ) \ - do { \ - char buffer[ 80 ]; \ - printf( " ", (_screen) ); fflush( stdout ); \ - gets( buffer ); \ - puts( "" ); \ - } while ( 0 ) - -#define put_name( name, crlf ) \ -{ rtems_unsigned32 c0, c1, c2, c3; \ - c0 = (name >> 24) & 0xff; \ - c1 = (name >> 16) & 0xff; \ - c2 = (name >> 8) & 0xff; \ - c3 = name & 0xff; \ - putchar( (char)c0 ); \ - if ( c1 ) putchar( (char)c1 ); \ - if ( c2 ) putchar( (char)c2 ); \ - if ( c3 ) putchar( (char)c3 ); \ - if ( crlf ) \ - putchar( '\n' ); \ -} - -#define put_buffer( _buffer ) XYZ( _buffer ) - -#define build_time( TB, MON, DAY, YR, HR, MIN, SEC, TK ) \ - { (TB)->year = YR; \ - (TB)->month = MON; \ - (TB)->day = DAY; \ - (TB)->hour = HR; \ - (TB)->minute = MIN; \ - (TB)->second = SEC; \ - (TB)->ticks = TK; } - -#define task_number( tid ) \ - ( rtems_get_index( tid ) - BSP_Configuration.number_of_initialization_tasks ) - -static inline rtems_unsigned32 get_ticks_per_second( void ) -{ - rtems_interval ticks_per_second; - (void) rtems_clock_get( RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticks_per_second ); - return ticks_per_second; -} - -#define TICKS_PER_SECOND get_ticks_per_second() - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/testsuites/tmtests/README b/testsuites/tmtests/README deleted file mode 100644 index c27617d5a3..0000000000 --- a/testsuites/tmtests/README +++ /dev/null @@ -1,21 +0,0 @@ -# -# $Id$ -# - -This directory contains the RTEMS Timing Test Suite. -The tests in this directory are used to measure the execution -time of RTEMS directive and some critical internal functions. -The results of these test are reported in the Fact Sheets -and Supplental Manuals. - -These tests attempt to benchmark RTEMS as the user would. They measure -the execution time for a directive (under various circumstances) -from the time RTEMS is entered until it is executed. Where possible, -the time is the average of at least 100 invocations of the directive. - -The accuracy of the times reported by these benchmarks is very dependent -on the resolution of the timer being used. It is also important to -insure that all sources of hardware interrupts are disabled during -execution of the tests. This insures that the directive time reported -does not include any interrupt time. - diff --git a/testsuites/tmtests/include/timesys.h b/testsuites/tmtests/include/timesys.h deleted file mode 100644 index 3b61d7b42d..0000000000 --- a/testsuites/tmtests/include/timesys.h +++ /dev/null @@ -1,30 +0,0 @@ -/* timesystem.h - * - * This include file contains information that is included in every - * function in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -/* constants */ - -#define OPERATION_COUNT 100 -#define IT_COUNT 100 - -/* Miscellaneous */ - -#define FOREVER 1 /* infinite loop */ -#define EXTERN extern /* external definition */ - -/* structures */ - -/* end of include file */ diff --git a/testsuites/tmtests/tm01/system.h b/testsuites/tmtests/tm01/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm01/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm01/task1.c b/testsuites/tmtests/tm01/task1.c deleted file mode 100644 index 2463722320..0000000000 --- a/testsuites/tmtests/tm01/task1.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_task Test_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 1 ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); - Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' ); - Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' ); - - status = rtems_task_create( - Task_name[ 1 ], - 128, - 4096, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); - -} - -rtems_task Test_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 semaphore_obtain_time; - rtems_unsigned32 semaphore_release_time; - rtems_unsigned32 semaphore_obtain_no_wait_time; - rtems_unsigned32 semaphore_obtain_loop_time; - rtems_unsigned32 semaphore_release_loop_time; - rtems_unsigned32 index; - rtems_unsigned32 iterations; - rtems_name name; - rtems_id smid; - rtems_status_code status; - - name = rtems_build_name( 'S', 'M', '1', ' ' ); - - semaphore_obtain_time = 0; - semaphore_release_time = 0; - semaphore_obtain_no_wait_time = 0; - semaphore_obtain_loop_time = 0; - semaphore_release_loop_time = 0; - - - /* Time one invocation of rtems_semaphore_create */ - - Timer_initialize(); - (void) rtems_semaphore_create( - name, - OPERATION_COUNT, - RTEMS_DEFAULT_MODES, - &smid - ); - end_time = Read_timer(); - put_time( - "rtems_semaphore_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_SEMAPHORE_CREATE - ); - - /* Time one invocation of rtems_semaphore_delete */ - - Timer_initialize(); - (void) rtems_semaphore_delete( smid ); - end_time = Read_timer(); - put_time( - "rtems_semaphore_delete", - end_time, - 1, - 0, - CALLING_OVERHEAD_SEMAPHORE_CREATE - ); - - status = rtems_semaphore_create( - name, - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &smid - ); - - for ( iterations=OPERATION_COUNT ; iterations ; iterations-- ) { - - Timer_initialize(); - for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) - (void) Empty_function(); - end_time = Read_timer(); - - semaphore_obtain_loop_time += end_time; - semaphore_release_loop_time += end_time; - - /* rtems_semaphore_obtain (available) */ - - Timer_initialize(); - for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) - (void) rtems_semaphore_obtain( - smid, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - end_time = Read_timer(); - - semaphore_obtain_time += end_time; - - /* rtems_semaphore_release */ - - Timer_initialize(); - for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) - (void) rtems_semaphore_release( smid ); - end_time = Read_timer(); - - semaphore_release_time += end_time; - - /* semaphore obtain (RTEMS_NO_WAIT) */ - Timer_initialize(); - for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) - rtems_semaphore_obtain( smid, RTEMS_NO_WAIT, RTEMS_NO_TIMEOUT ); - semaphore_obtain_no_wait_time += Read_timer(); - - Timer_initialize(); - for ( index = 1 ; index<=OPERATION_COUNT ; index++ ) - rtems_semaphore_release( smid ); - end_time = Read_timer(); - - semaphore_release_time += end_time; - } - - put_time( - "rtems_semaphore_obtain", - semaphore_obtain_time, - OPERATION_COUNT * OPERATION_COUNT, - semaphore_obtain_loop_time, - CALLING_OVERHEAD_SEMAPHORE_OBTAIN - ); - - put_time( - "rtems_semaphore_obtain (RTEMS_NO_WAIT)", - semaphore_obtain_no_wait_time, - OPERATION_COUNT * OPERATION_COUNT, - semaphore_obtain_loop_time, - CALLING_OVERHEAD_SEMAPHORE_OBTAIN - ); - - put_time( - "rtems_semaphore_release", - semaphore_release_time, - OPERATION_COUNT * OPERATION_COUNT * 2, - semaphore_release_loop_time * 2, - CALLING_OVERHEAD_SEMAPHORE_RELEASE - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm01/tm01.doc b/testsuites/tmtests/tm01/tm01.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm01/tm01.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm02/system.h b/testsuites/tmtests/tm02/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm02/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm02/task1.c b/testsuites/tmtests/tm02/task1.c deleted file mode 100644 index e86ed6af65..0000000000 --- a/testsuites/tmtests/tm02/task1.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id High_id; -rtems_id Low_id; -rtems_id Semaphore_id; - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 2 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete" ); -} - -void test_init() -{ - rtems_status_code status; - rtems_unsigned32 index; - rtems_task_priority priority; - - priority = 5; - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &High_id - ); - directive_failed( status, "rtems_task_create of high task" ); - - priority++; - - status = rtems_task_start( High_id, High_task, 0 ); - directive_failed( status, "rtems_task_start of high task" ); - - for ( index=2 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'M', 'I', 'D', ' ' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Low_id - ); - directive_failed( status, "rtems_task_create middle" ); - - priority++; - - status = rtems_task_start( Low_id, Middle_tasks, 0 ); - directive_failed( status, "rtems_task_start middle" ); - } - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - priority, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Low_id - ); - directive_failed( status, "rtems_task_create low" ); - - status = rtems_task_start( Low_id, Low_task, 0 ); - directive_failed( status, "rtems_task_start low" ); - - status = rtems_semaphore_create( - rtems_build_name( 'S', 'M', '1', ' '), - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id - ); - directive_failed( status, "rtems_semaphore_create of SM1" ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - - Timer_initialize(); /* start blocking rtems_semaphore_obtain time */ - status = rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - end_time = Read_timer(); - - put_time( - "rtems_semaphore_obtain (blocking)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_SEMAPHORE_OBTAIN - ); - exit( 0 ); -} diff --git a/testsuites/tmtests/tm02/tm02.doc b/testsuites/tmtests/tm02/tm02.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm02/tm02.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm03/system.h b/testsuites/tmtests/tm03/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm03/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm03/task1.c b/testsuites/tmtests/tm03/task1.c deleted file mode 100644 index 0ee82005d7..0000000000 --- a/testsuites/tmtests/tm03/task1.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Semaphore_id; -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id task_id; - - puts( "\n\n*** TIME TEST 3 ***" ); - status = rtems_task_create( - rtems_build_name( 'T', 'A', '1', ' ' ), - 252, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create of test_init" ); - - status = rtems_task_start( task_id, test_init, 0 ); - directive_failed( status, "rtems_task_start of test_init" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 index; - rtems_id task_id; - rtems_task_priority priority; - - priority = 250; - - status = rtems_semaphore_create( - rtems_build_name( 'S', 'M', '1', '\0'), - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id - ); - directive_failed( status, "rtems_semaphore_create of SM1" ); - - for ( index = 2 ; index <= OPERATION_COUNT ; index ++ ) { - rtems_task_create( - rtems_build_name( 'M', 'I', 'D', ' ' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create middle" ); - - priority--; - - rtems_task_start( task_id, Middle_tasks, 0 ); - directive_failed( status, "rtems_task_start middle" ); - } - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create of high task" ); - - status = rtems_task_start( task_id, High_task, 0 ); - directive_failed( status, "rtems_task_start of high task" ); - - Timer_initialize(); /* start the timer */ - status = rtems_semaphore_release( Semaphore_id ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - status = rtems_semaphore_release( Semaphore_id ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - end_time = Read_timer(); - - put_time( - "rtems_semaphore_release (preemptive)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_SEMAPHORE_RELEASE - ); - exit( 0 ); -} diff --git a/testsuites/tmtests/tm03/tm03.doc b/testsuites/tmtests/tm03/tm03.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm03/tm03.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm04/system.h b/testsuites/tmtests/tm04/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm04/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm04/task1.c b/testsuites/tmtests/tm04/task1.c deleted file mode 100644 index 0014d02dd3..0000000000 --- a/testsuites/tmtests/tm04/task1.c +++ /dev/null @@ -1,387 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Semaphore_id; -rtems_id Task_id[OPERATION_COUNT+1]; -rtems_unsigned32 task_count; -rtems_id Highest_id; - -rtems_task Low_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Restart_task( - rtems_task_argument argument -); - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 4 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_status_code status; - rtems_unsigned32 index; - - task_count = OPERATION_COUNT; - - for ( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 10, - 1024, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - status = rtems_task_start( Task_id[ index ], Low_tasks, 0 ); - directive_failed( status, "rtems_task_start loop" ); - } - - status = rtems_semaphore_create( - rtems_build_name( 'S', 'M', '1', ' ' ), - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id - ); - directive_failed( status, "rtems_semaphore_create of SM1" ); -} - -rtems_task Highest_task( - rtems_task_argument argument -) -{ - rtems_task_priority old_priority; - rtems_status_code status; - - if ( argument == 1 ) { - - end_time = Read_timer(); - - put_time( - "rtems_task_restart (blocked, preempt)", - end_time, - 1, - 0, - CALLING_OVERHEAD_TASK_RESTART - ); - - status = rtems_task_set_priority( - RTEMS_CURRENT_PRIORITY, - 254, - &old_priority - ); - directive_failed( status, "rtems_task_set_priority" ); - - } else if ( argument == 2 ) { - - end_time = Read_timer(); - - put_time( - "rtems_task_restart (ready, preempt)", - end_time, - 1, - 0, - CALLING_OVERHEAD_TASK_RESTART - ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); - - } else - (void) rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 index; - rtems_name name; - rtems_task_priority old_priority; - - Timer_initialize(); - (void) rtems_task_restart( Highest_id, 1 ); - /* preempted by Higher_task */ - - Timer_initialize(); - (void) rtems_task_restart( Highest_id, 2 ); - /* preempted by Higher_task */ - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - rtems_semaphore_release( Semaphore_id ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_release (readying)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_SEMAPHORE_RELEASE - ); - - name = rtems_build_name( 'T', 'I', 'M', 'E' ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_delete( Task_id[index] ); - directive_failed( status, "rtems_task_delete" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - rtems_task_create( - name, - 10, - 1024, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - end_time = Read_timer(); - - put_time( - "rtems_task_create", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_CREATE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - rtems_task_start( Task_id[ index ], Low_tasks, 0 ); - - end_time = Read_timer(); - - put_time( - "rtems_task_start", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_START - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_delete( Task_id[ index ] ); - directive_failed( status, "rtems_task_delete" ); - } - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - name, - 250, - 1024, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( Task_id[ index ], Restart_task, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - - status = rtems_task_suspend( Task_id[ index ] ); - directive_failed( status, "rtems_task_suspend LOOP" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_restart( Task_id[ index ], 0 ); - end_time = Read_timer(); - - put_time( - "rtems_task_restart (suspended)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_RESTART - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_suspend( Task_id[ index ] ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_delete( Task_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_task_delete (suspended)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_DELETE - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - name, - 250, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( Task_id[ index ], Restart_task, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_restart( Task_id[ index ], 1 ); - end_time = Read_timer(); - - put_time( - "rtems_task_restart (ready)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_RESTART - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_set_priority( Task_id[ index ], 5, &old_priority ); - directive_failed( status, "rtems_task_set_priority loop" ); - } - - /* yield processor -- tasks block */ - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_restart( Task_id[ index ], 1 ); - end_time = Read_timer(); - - put_time( - "rtems_task_restart (blocked, no preempt)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_RESTART - ); - - /* yield processor -- tasks block */ - status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - directive_failed( status, "rtems_task_wake_after" ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_delete( Task_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_task_delete (blocked)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_DELETE - ); - - exit( 0 ); -} - -rtems_task Low_tasks( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - task_count--; - - if ( task_count == 0 ) { - status = rtems_task_create( - rtems_build_name( 'H', 'I', ' ', ' ' ), - 5, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create HI" ); - - status = rtems_task_start( id, High_task, 0 ); - directive_failed( status, "rtems_task_start HI" ); - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - 3, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Highest_id - ); - directive_failed( status, "rtems_task_create HIGH" ); - - status = rtems_task_start( Highest_id, Highest_task, 0 ); - directive_failed( status, "rtems_task_start HIGH" ); - - } - (void) rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} - -rtems_task Restart_task( - rtems_task_argument argument -) -{ - if ( argument == 1 ) - (void) rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} diff --git a/testsuites/tmtests/tm04/tm04.doc b/testsuites/tmtests/tm04/tm04.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm04/tm04.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm05/system.h b/testsuites/tmtests/tm05/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm05/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm05/task1.c b/testsuites/tmtests/tm05/task1.c deleted file mode 100644 index 624a87114a..0000000000 --- a/testsuites/tmtests/tm05/task1.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Task_id[OPERATION_COUNT+1]; -rtems_unsigned32 Task_index; - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 5 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_status_code status; - rtems_task_entry task_entry; - rtems_task_priority priority; - rtems_unsigned32 index; - - priority = 250; - - for( index = 0; index <= OPERATION_COUNT ; index++ ) { - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - priority--; - - if ( index==0 ) task_entry = Low_task; - else if ( index==OPERATION_COUNT ) task_entry = High_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( Task_id[ index ], task_entry, 0 ); - directive_failed( status, "rtems_task_start loop" ); - } -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - Timer_initialize(); - - (void) rtems_task_suspend( RTEMS_SELF ); - - end_time = Read_timer(); - - put_time( - "rtems_task_resume (causing preempt)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_RESUME - ); - - exit( 0 ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - (void) rtems_task_suspend( RTEMS_SELF ); - - Task_index++; - (void) rtems_task_resume( Task_id[ Task_index ] ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - - end_time = Read_timer(); - - put_time( - "rtems_task_resume self", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_SUSPEND - ); - - Task_index = 1; - Timer_initialize(); - (void) rtems_task_resume( Task_id[ Task_index ] ); -} diff --git a/testsuites/tmtests/tm05/tm05.doc b/testsuites/tmtests/tm05/tm05.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm05/tm05.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm06/system.h b/testsuites/tmtests/tm06/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm06/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm06/task1.c b/testsuites/tmtests/tm06/task1.c deleted file mode 100644 index c6a6af6c63..0000000000 --- a/testsuites/tmtests/tm06/task1.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Task_id[ OPERATION_COUNT + 1 ]; - -rtems_unsigned32 Task_restarted; - -rtems_task null_task( - rtems_task_argument argument -); - -rtems_task Task_1( - rtems_task_argument argument -); - -void test_init( void ); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 6 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init( void ) -{ - rtems_status_code status; - rtems_id id; - - Task_restarted = OPERATION_COUNT; - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( id, Task_1, 0 ); - directive_failed( status, "rtems_task_start" ); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 index; - - if ( Task_restarted == OPERATION_COUNT ) - Timer_initialize(); - - Task_restarted--; - - if ( Task_restarted != 0 ) - (void) rtems_task_restart( RTEMS_SELF, 0 ); - - end_time = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - put_time( - "rtems_task_restart self", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_RESTART - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - status = rtems_task_start( Task_id[ index ], null_task, 0 ); - directive_failed( status, "rtems_task_start loop" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_suspend( Task_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_task_suspend (no preempt)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_SUSPEND - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_resume( Task_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_task_resume (no preempt)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_RESUME - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_delete( Task_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_task_delete (others)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_RESUME - ); - - exit( 0 ); -} - -rtems_task null_task( - rtems_task_argument argument -) -{ - while ( FOREVER ) - ; -} diff --git a/testsuites/tmtests/tm06/tm06.doc b/testsuites/tmtests/tm06/tm06.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm06/tm06.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm07/system.h b/testsuites/tmtests/tm07/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm07/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm07/task1.c b/testsuites/tmtests/tm07/task1.c deleted file mode 100644 index fcd545bbc4..0000000000 --- a/testsuites/tmtests/tm07/task1.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Task_id[OPERATION_COUNT+1], task_index; - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 7 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_status_code status; - rtems_task_priority priority; - rtems_task_entry task_entry; - rtems_unsigned32 index; - - priority = 250; - - for( index=0 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[index] - ); - directive_failed( status, "rtems_task_create" ); - priority--; - - if ( index == 0 ) task_entry = Low_task; - else if ( index == OPERATION_COUNT ) task_entry = High_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( Task_id[index], task_entry, 0 ); - directive_failed( status, "rtems_task_start" ); - } -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - if ( argument != 0 ) { - end_time = Read_timer(); - - put_time( - "rtems_task_restart suspended/preempt", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_RESTART - ); - } else - (void) rtems_task_suspend( RTEMS_SELF ); - - exit( 0 ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - task_index++; - - if ( argument != 0 ) - (void) rtems_task_restart( Task_id[ task_index ], 0xffffffff ); - else - (void) rtems_task_suspend( RTEMS_SELF ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - task_index = 1; - - Timer_initialize(); - (void) rtems_task_restart( Task_id[ task_index ], 0xffffffff ); -} diff --git a/testsuites/tmtests/tm07/tm07.doc b/testsuites/tmtests/tm07/tm07.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm07/tm07.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm08/system.h b/testsuites/tmtests/tm08/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm08/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm08/task1.c b/testsuites/tmtests/tm08/task1.c deleted file mode 100644 index 36312ff4b7..0000000000 --- a/testsuites/tmtests/tm08/task1.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Test_task_id; - -rtems_task test_task( - rtems_task_argument argument -); -rtems_task test_task1( - rtems_task_argument argument -); -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 8 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_status_code status; - - status = rtems_task_create( - 1, - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Test_task_id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( Test_task_id, test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_create( - 1, - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Test_task_id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( Test_task_id, test_task1, 0 ); - directive_failed( status, "rtems_task_start" ); -} - -rtems_task test_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 index; - rtems_task_priority old_priority; - rtems_time_of_day time; - rtems_unsigned32 old_note; - rtems_unsigned32 old_mode; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_set_priority( - Test_task_id, - RTEMS_CURRENT_PRIORITY, - &old_priority - ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_priority current priority", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_SET_PRIORITY - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_set_priority( Test_task_id, 253, &old_priority ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_priority no preempt", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_SET_PRIORITY - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_mode( - RTEMS_CURRENT_MODE, - RTEMS_CURRENT_MODE, - &old_mode - ); - end_time = Read_timer(); - - put_time( - "rtems_task_mode (current)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_MODE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - (void) rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(1), - RTEMS_INTERRUPT_MASK, - &old_mode - ); - (void) rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(0), - RTEMS_INTERRUPT_MASK, - &old_mode - ); - } - end_time = Read_timer(); - - put_time( - "rtems_task_mode (no reschedule)", - end_time, - OPERATION_COUNT * 2, - overhead, - CALLING_OVERHEAD_TASK_MODE - ); - - Timer_initialize(); /* must be one host */ - (void) rtems_task_mode( RTEMS_NO_ASR, RTEMS_ASR_MASK, &old_mode ); - end_time = Read_timer(); - - put_time( - "rtems_task_mode (reschedule)", - end_time, - 1, - 0, - CALLING_OVERHEAD_TASK_MODE - ); - - status = rtems_task_mode( RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &old_mode ); - directive_failed( status, "rtems_task_mode" ); - - status = rtems_task_set_priority( Test_task_id, 1, &old_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - /* preempted by test_task1 */ - Timer_initialize(); - (void) rtems_task_mode( RTEMS_PREEMPT, RTEMS_PREEMPT_MASK, &old_mode ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_set_note( Test_task_id, 8, 10 ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_note", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_SET_NOTE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_get_note( Test_task_id, 8, &old_note ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_note", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_GET_NOTE - ); - - build_time( &time, 1, 1, 1988, 0, 0, 0, 0 ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_clock_set( &time ); - end_time = Read_timer(); - - put_time( - "rtems_clock_set", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_CLOCK_SET - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - end_time = Read_timer(); - - put_time( - "rtems_clock_get", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_CLOCK_GET - ); - - exit( 0 ); -} - -rtems_task test_task1( - rtems_task_argument argument -) -{ - end_time = Read_timer(); - - put_time( - "rtems_task_mode (preemptive)", - end_time, - 1, - 0, - CALLING_OVERHEAD_TASK_MODE - ); - - (void) rtems_task_suspend( RTEMS_SELF ); -} diff --git a/testsuites/tmtests/tm08/tm08.doc b/testsuites/tmtests/tm08/tm08.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm08/tm08.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm09/system.h b/testsuites/tmtests/tm09/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm09/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm09/task1.c b/testsuites/tmtests/tm09/task1.c deleted file mode 100644 index 9126ee8a1d..0000000000 --- a/testsuites/tmtests/tm09/task1.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -rtems_task Test_task( - rtems_task_argument argument -); -void queue_test(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 9 ***" ); - - status = rtems_task_create( - 1, - 128, - 4096, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Test_task ( - rtems_task_argument argument -) -{ - Timer_initialize(); - rtems_message_queue_create( - 1, - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE - ); - - queue_test(); - - Timer_initialize(); - rtems_message_queue_delete( Queue_id ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_delete", - end_time, - 1, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE - ); - - exit( 0 ); -} - -void queue_test() -{ - rtems_unsigned32 send_loop_time; - rtems_unsigned32 urgent_loop_time; - rtems_unsigned32 receive_loop_time; - rtems_unsigned32 send_time; - rtems_unsigned32 urgent_time; - rtems_unsigned32 receive_time; - rtems_unsigned32 empty_flush_time; - rtems_unsigned32 flush_time; - rtems_unsigned32 empty_flush_count; - rtems_unsigned32 flush_count; - rtems_unsigned32 index; - rtems_unsigned32 iterations; - long buffer[4]; - rtems_status_code status; - - send_loop_time = 0; - urgent_loop_time = 0; - receive_loop_time = 0; - send_time = 0; - urgent_time = 0; - receive_time = 0; - empty_flush_time = 0; - flush_time = 0; - flush_count = 0; - empty_flush_count = 0; - - for ( iterations = 1 ; iterations <= OPERATION_COUNT ; iterations++ ) { - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - send_loop_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - urgent_loop_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - receive_loop_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_send( Queue_id, (long (*)[4])buffer ); - send_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - receive_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_urgent( Queue_id, (long (*)[4])buffer ); - urgent_time += Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - receive_time += Read_timer(); - - Timer_initialize(); - rtems_message_queue_flush( Queue_id, &empty_flush_count ); - empty_flush_time += Read_timer(); - - /* send one message to flush */ - status = rtems_message_queue_send( - Queue_id, - (long (*)[4])buffer - ); - directive_failed( status, "rtems_message_queue_send" ); - - Timer_initialize(); - rtems_message_queue_flush( Queue_id, &flush_count ); - flush_time += Read_timer(); - } - - put_time( - "rtems_message_queue_send (no tasks waiting)", - send_time, - OPERATION_COUNT * OPERATION_COUNT, - send_loop_time, - CALLING_OVERHEAD_MESSAGE_QUEUE_SEND - ); - - put_time( - "rtems_message_queue_urgent (no tasks waiting)", - urgent_time, - OPERATION_COUNT * OPERATION_COUNT, - urgent_loop_time, - CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT - ); - - put_time( - "rtems_message_queue_receive (messages available)", - receive_time, - OPERATION_COUNT * OPERATION_COUNT * 2, - receive_loop_time * 2, - CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE - ); - - put_time( - "rtems_message_queue_flush (empty queue)", - empty_flush_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH - ); - - put_time( - "rtems_message_queue_flush (messages flushed)", - flush_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH - ); - -} diff --git a/testsuites/tmtests/tm09/tm09.doc b/testsuites/tmtests/tm09/tm09.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm09/tm09.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm10/system.h b/testsuites/tmtests/tm10/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm10/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm10/task1.c b/testsuites/tmtests/tm10/task1.c deleted file mode 100644 index 788c2cd1f7..0000000000 --- a/testsuites/tmtests/tm10/task1.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; -long Buffer[4]; - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 10 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_unsigned32 index; - rtems_task_entry task_entry; - rtems_status_code status; - rtems_task_priority priority; - rtems_id task_id; - - priority = 5; - - for( index = 0; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - priority++; - - if ( index==0 ) task_entry = High_task; - else if ( index==OPERATION_COUNT ) task_entry = Low_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( task_id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - status = rtems_message_queue_create( - 1, - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_receive (RTEMS_NO_WAIT)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE - ); - -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - Timer_initialize(); - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} - - -rtems_task Low_task( - rtems_task_argument argument -) -{ - end_time = Read_timer(); - - put_time( - "rtems_message_queue_receive (blocking)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm10/tm10.doc b/testsuites/tmtests/tm10/tm10.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm10/tm10.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm11/system.h b/testsuites/tmtests/tm11/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm11/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm11/task1.c b/testsuites/tmtests/tm11/task1.c deleted file mode 100644 index 9bf45442dc..0000000000 --- a/testsuites/tmtests/tm11/task1.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -long Buffer[4]; - -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - - -void Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id id; - - puts( "\n\n*** TIME TEST 11 ***" ); - - status = rtems_task_create( - 1, - 251, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( id, test_init, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_task_entry task_entry; - rtems_task_priority priority; - rtems_id task_id; - rtems_status_code status; - -/* As each task is started, it preempts this task and - * performs a blocking rtems_message_queue_receive. Upon completion of - * this loop all created tasks are blocked. - */ - - status = rtems_message_queue_create( - rtems_build_name( 'M', 'Q', '1', ' ' ), - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - priority = 250; - - for( index = 0; index < OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - priority--; - - if ( index==OPERATION_COUNT-1 ) task_entry = High_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( task_id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - Timer_initialize(); - (void) rtems_message_queue_send( Queue_id, (long (*)[4]) Buffer ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - (void) rtems_message_queue_send( Queue_id, (long (*)[4]) Buffer ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - end_time = Read_timer(); - - put_time( - "rtems_message_queue_send (preemptive)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_SEND - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm11/tm11.doc b/testsuites/tmtests/tm11/tm11.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm11/tm11.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm12/system.h b/testsuites/tmtests/tm12/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm12/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm12/task1.c b/testsuites/tmtests/tm12/task1.c deleted file mode 100644 index 8735cc601f..0000000000 --- a/testsuites/tmtests/tm12/task1.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -long Buffer[4]; - -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Low_tasks( - rtems_task_argument argument -); - - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id task_id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 12 ***" ); - - status = rtems_task_create( - 1, - 251, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( task_id, test_init, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_task_entry task_entry; - rtems_task_priority priority; - rtems_id task_id; - rtems_status_code status; - - - status = rtems_message_queue_create( - rtems_build_name( 'M', 'Q', '1', ' ' ), - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - priority = 250; - - for( index = 0; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - priority--; - - if ( index==OPERATION_COUNT ) task_entry = High_task; - else task_entry = Low_tasks; - - status = rtems_task_start( task_id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_send( Queue_id, (long (*)[4]) Buffer ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_send (readying)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_MESSAGE_QUEUE_SEND - ); - - exit( 0 ); -} - -rtems_task Low_tasks( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} diff --git a/testsuites/tmtests/tm12/tm12.doc b/testsuites/tmtests/tm12/tm12.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm12/tm12.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm13/system.h b/testsuites/tmtests/tm13/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm13/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm13/task1.c b/testsuites/tmtests/tm13/task1.c deleted file mode 100644 index 28ff2bf149..0000000000 --- a/testsuites/tmtests/tm13/task1.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -long Buffer[4]; - -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -void Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id id; - - puts( "\n\n*** TIME TEST 13 ***" ); - - status = rtems_task_create( - 1, - 251, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( id, test_init, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_task_entry task_entry; - rtems_task_priority priority; - rtems_id task_id; - rtems_status_code status; - -/* As each task is started, it preempts this task and - * performs a blocking rtems_message_queue_receive. Upon completion of - * this loop all created tasks are blocked. - */ - - status = rtems_message_queue_create( - rtems_build_name( 'M', 'Q', '1', ' ' ), - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - priority = 250; - - for( index = 0; index < OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - priority--; - - if ( index==OPERATION_COUNT-1 ) task_entry = High_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( task_id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - Timer_initialize(); - (void) rtems_message_queue_urgent( Queue_id, (long (*)[4]) Buffer ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - (void) rtems_message_queue_urgent( Queue_id, (long (*)[4]) Buffer ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - end_time = Read_timer(); - - put_time( - "rtems_message_queue_urgent (preemptive)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm13/tm13.doc b/testsuites/tmtests/tm13/tm13.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm13/tm13.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm14/system.h b/testsuites/tmtests/tm14/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm14/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm14/task1.c b/testsuites/tmtests/tm14/task1.c deleted file mode 100644 index 3020fa66e9..0000000000 --- a/testsuites/tmtests/tm14/task1.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -long Buffer[4]; - -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Low_tasks( - rtems_task_argument argument -); - - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id task_id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 14 ***" ); - - status = rtems_task_create( - 1, - 251, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( task_id, test_init, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_task_entry task_entry; - rtems_task_priority priority; - rtems_id task_id; - rtems_status_code status; - - - status = rtems_message_queue_create( - rtems_build_name( 'M', 'Q', '1', ' ' ), - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - priority = 250; - - for( index = 0; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - priority--; - - if ( index==OPERATION_COUNT ) task_entry = High_task; - else task_entry = Low_tasks; - - status = rtems_task_start( task_id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_urgent( Queue_id, (long (*)[4]) Buffer ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_urgent (readying)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT - ); - - exit( 0 ); -} - -rtems_task Low_tasks( - rtems_task_argument argument -) -{ - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); -} diff --git a/testsuites/tmtests/tm14/tm14.doc b/testsuites/tmtests/tm14/tm14.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm14/tm14.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm15/system.h b/testsuites/tmtests/tm15/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm15/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm15/task1.c b/testsuites/tmtests/tm15/task1.c deleted file mode 100644 index 05fb29461b..0000000000 --- a/testsuites/tmtests/tm15/task1.c +++ /dev/null @@ -1,222 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned32 time_set, eventout; - -rtems_task High_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 15 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_id id; - rtems_unsigned32 index; - rtems_event_set event_out; - rtems_status_code status; - - time_set = FALSE; - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - 10, - 1024, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create LOW" ); - - status = rtems_task_start( id, Low_task, 0 ); - directive_failed( status, "rtems_task_start LOW" ); - - for ( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - 5, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( Task_id[ index ], High_tasks, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - { - (void) rtems_event_receive( - RTEMS_PENDING_EVENTS, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - } - - end_time = Read_timer(); - - put_time( - "rtems_event_receive (current)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_EVENT_RECEIVE - ); - - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - { - (void) rtems_event_receive( - RTEMS_ALL_EVENTS, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &event_out - ); - } - end_time = Read_timer(); - - put_time( - "rtems_event_receive (RTEMS_NO_WAIT)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_EVENT_RECEIVE - ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_event_set event_out; - - end_time = Read_timer(); - - put_time( - "rtems_event_receive (blocking)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_EVENT_RECEIVE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_event_send( RTEMS_SELF, RTEMS_EVENT_16 ); - end_time = Read_timer(); - - put_time( - "rtems_event_send (non-blocking)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_EVENT_SEND - ); - - Timer_initialize(); - (void) rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - end_time = Read_timer(); - - put_time( - "rtems_event_receive (available)", - end_time, - 1, - 0, - CALLING_OVERHEAD_EVENT_RECEIVE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_event_send( Task_id[ index ], RTEMS_EVENT_16 ); - end_time = Read_timer(); - - put_time( - "rtems_event_send (readying)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_EVENT_SEND - ); - - exit( 0 ); -} - -rtems_task High_tasks( - rtems_task_argument argument -) -{ - rtems_status_code status; - - if ( time_set ) - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - else { - time_set = 1; - Timer_initialize(); /* start blocking rtems_event_receive time */ - status = rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &eventout - ); - } -} diff --git a/testsuites/tmtests/tm15/tm15.doc b/testsuites/tmtests/tm15/tm15.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm15/tm15.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm16/system.h b/testsuites/tmtests/tm16/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm16/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm16/task1.c b/testsuites/tmtests/tm16/task1.c deleted file mode 100644 index a837c72014..0000000000 --- a/testsuites/tmtests/tm16/task1.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned32 Task_count; - -rtems_task test_init( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 16 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'E', 'S', 'T' ), - 251, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create of test_init" ); - - status = rtems_task_start( id, test_init, 0 ); - directive_failed( status, "rtems_task_start of test_init" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task test_init( - rtems_task_argument argument -) -{ - rtems_task_priority priority; - rtems_status_code status; - rtems_unsigned32 index; - rtems_task_entry task_entry; - -/* As each task is started, it preempts this task and - * performs a blocking rtems_event_receive. Upon completion of - * this loop all created tasks are blocked. - */ - - priority = 250; - - for( index = 0 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'M', 'I', 'D', ' ' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create LOOP" ); - - if ( index == OPERATION_COUNT ) task_entry = High_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( Task_id[ index ], task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - - priority--; - } - - Task_count = 0; - - Timer_initialize(); - (void) rtems_event_send( Task_id[ Task_count ], RTEMS_EVENT_16 ); - /* preempts task */ -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - rtems_event_set event_out; - - (void) rtems_event_receive( /* task blocks */ - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - - Task_count++; - - (void) rtems_event_send( /* preempts task */ - Task_id[ Task_count ], - RTEMS_EVENT_16 - ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_event_set event_out; - - (void) rtems_event_receive( /* task blocks */ - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &event_out - ); - - end_time = Read_timer(); - - put_time( - "rtems_event_send (preemptive)", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_EVENT_SEND - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm16/tm16.doc b/testsuites/tmtests/tm16/tm16.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm16/tm16.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm17/system.h b/testsuites/tmtests/tm17/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm17/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm17/task1.c b/testsuites/tmtests/tm17/task1.c deleted file mode 100644 index fbf658799b..0000000000 --- a/testsuites/tmtests/tm17/task1.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned32 Task_count; -rtems_task_priority Task_priority; - -rtems_task First_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Last_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_task_entry task_entry; - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 17 ***" ); - - Task_priority = 254; - - for( index = 0; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - Task_priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - - if ( index == OPERATION_COUNT ) task_entry = Last_task; - else if ( index == 0 ) task_entry = First_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( Task_id[ index ], task_entry, 0 ); - directive_failed( status, "rtems_task_start loop" ); - } - - Task_count = 1; - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task First_task( - rtems_task_argument argument -) -{ - rtems_task_priority previous_priority; - - Timer_initialize(); - - Task_priority--; - Task_count++; - - (void) rtems_task_set_priority( - Task_id[ Task_count ], - Task_priority, - &previous_priority - ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - rtems_task_priority previous_priority; - - Task_priority--; - Task_count++; - - (void) rtems_task_set_priority( - Task_id[ Task_count ], - Task_priority, - &previous_priority - ); -} - -rtems_task Last_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - - end_time = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - put_time( - "rtems_task_set_priority (preemptive)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_SET_PRIORITY - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm17/tm17.doc b/testsuites/tmtests/tm17/tm17.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm17/tm17.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm18/system.h b/testsuites/tmtests/tm18/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm18/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm18/task1.c b/testsuites/tmtests/tm18/task1.c deleted file mode 100644 index c5b529f988..0000000000 --- a/testsuites/tmtests/tm18/task1.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned32 taskcount; -rtems_task_priority taskpri; - -rtems_task First_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task Last_task( - rtems_task_argument argument -); - - -void test_init(); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 18 ***" ); - - test_init(); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void test_init() -{ - rtems_id id; - rtems_task_entry task_entry; - rtems_unsigned32 index; - rtems_status_code status; - - for ( index = 0 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create loop" ); - - if ( index == OPERATION_COUNT ) task_entry = Last_task; - else if ( index == 0 ) task_entry = First_task; - else task_entry = Middle_tasks; - - - status = rtems_task_start( id, task_entry, 0 ); - directive_failed( status, "rtems_task_start loop" ); - } - -} - -rtems_task First_task( - rtems_task_argument argument -) -{ - Timer_initialize(); - - (void) rtems_task_delete( RTEMS_SELF ); -} - -rtems_task Middle_tasks( - rtems_task_argument argument -) -{ - (void) rtems_task_delete( RTEMS_SELF ); -} - -rtems_task Last_task( - rtems_task_argument argument -) -{ - end_time = Read_timer(); - - put_time( - "rtems_task_delete self", - end_time, - OPERATION_COUNT, - 0, - CALLING_OVERHEAD_TASK_DELETE - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm18/tm18.doc b/testsuites/tmtests/tm18/tm18.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm18/tm18.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm19/system.h b/testsuites/tmtests/tm19/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm19/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm19/task1.c b/testsuites/tmtests/tm19/task1.c deleted file mode 100644 index 7c491b7572..0000000000 --- a/testsuites/tmtests/tm19/task1.c +++ /dev/null @@ -1,212 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_asr Process_asr_for_pass_1( - rtems_signal_set signals -); - -rtems_asr Process_asr_for_pass_2( - rtems_signal_set signals -); - -rtems_task Task_1( - rtems_task_argument argument -); - -rtems_task Task_2( - rtems_task_argument argument -); - -rtems_task Task_3( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 19 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TASK1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TASK1" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 127, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TASK2" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TASK2" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 126, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TASK3" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TASK3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_asr Process_asr_for_pass_1( - rtems_signal_set signals -) -{ - end_time = Read_timer(); - - put_time( - "rtems_signal_send (self)", - end_time, - 1, - 0, - CALLING_OVERHEAD_SIGNAL_SEND - ); - - puts( "SIGNAL_ENTER (non-preemptive) na" ); - - Timer_initialize(); -} - -rtems_asr Process_asr_for_pass_2( - rtems_signal_set signals -) -{ - rtems_status_code status; - - puts( "SIGNAL_ENTER (preemptive) na" ); - - status = rtems_task_resume( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_resume" ); - - Timer_initialize(); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - - Timer_initialize(); - (void) rtems_signal_catch( Process_asr_for_pass_1, RTEMS_DEFAULT_MODES ); - end_time = Read_timer(); - - put_time( - "rtems_signal_catch", - end_time, - 1, - 0, - CALLING_OVERHEAD_SIGNAL_CATCH - ); - - Timer_initialize(); - rtems_signal_send( Task_id[ 2 ], 1 ); - end_time = Read_timer(); - - put_time( - "rtems_signal_send (non-preemptive)", - end_time, - 1, - 0, - CALLING_OVERHEAD_SIGNAL_SEND - ); - - Timer_initialize(); - (void) rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_1 ); - - /* end time is done is RTEMS_ASR */ - - end_time = Read_timer(); - - put_time( - "SIGNAL_RETURN (non-preemptive)", - end_time, - 1, - 0, - 0 - ); - - status = rtems_signal_catch( Process_asr_for_pass_2, RTEMS_NO_PREEMPT ); - directive_failed( status, "rtems_signal_catch" ); - - Timer_initialize(); - (void) rtems_signal_send( RTEMS_SELF, RTEMS_SIGNAL_1 ); -} - -rtems_asr Process_asr_for_task_2( - rtems_signal_set signals -) -{ - ; -} - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - status = rtems_signal_catch( Process_asr_for_task_2, RTEMS_DEFAULT_MODES ); - directive_failed( status, "rtems_signal_catch" ); - - (void) rtems_task_suspend( RTEMS_SELF ); -} - -rtems_task Task_3( - rtems_task_argument argument -) -{ - (void) rtems_task_suspend( RTEMS_SELF ); - - end_time = Read_timer(); - - put_time( - "SIGNAL_RETURN (preemptive)", - end_time, - 1, - 0, - 0 - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm19/tm19.doc b/testsuites/tmtests/tm19/tm19.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm19/tm19.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm20/system.h b/testsuites/tmtests/tm20/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm20/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm20/task1.c b/testsuites/tmtests/tm20/task1.c deleted file mode 100644 index 6cfcb3d0c1..0000000000 --- a/testsuites/tmtests/tm20/task1.c +++ /dev/null @@ -1,467 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_device_major_number _STUB_major = 0; - -rtems_id Region_id; -rtems_name Region_name; -rtems_unsigned8 Region_area[ 2048 ] CPU_STRUCTURE_ALIGNMENT; - -rtems_id Partition_id; -rtems_name Partition_name; -rtems_unsigned8 Partition_area[ 2048 ] CPU_STRUCTURE_ALIGNMENT; - -void *Buffer_address_1; -void *Buffer_address_2; -void *Buffer_address_3; -void *Buffer_address_4; - -rtems_unsigned32 buffer_count; - -void *Buffer_addresses[ OPERATION_COUNT+1 ]; - -rtems_task Task_1( - rtems_task_argument argument -); - -rtems_task Task_2( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 20 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', '1' ), - 128, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TASK1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TASK1" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', '2' ), - 129, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TASK2" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TASK2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_mode previous_mode; - rtems_task_priority previous_priority; - rtems_unsigned32 return_value; - rtems_status_code status; - - Partition_name = rtems_build_name( 'P', 'A', 'R', 'T' ); - - Timer_initialize(); - rtems_partition_create( - Partition_name, - Partition_area, - 2048, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &Partition_id - ); - end_time = Read_timer(); - - put_time( - "rtems_partition_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_PARTITION_CREATE - ); - - Region_name = rtems_build_name( 'R', 'E', 'G', 'N' ); - - Timer_initialize(); - rtems_region_create( - Region_name, - Region_area, - 2048, - 16, - RTEMS_DEFAULT_ATTRIBUTES, - &Region_id - ); - end_time = Read_timer(); - - put_time( - "rtems_region_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_CREATE - ); - - Timer_initialize(); - (void) rtems_partition_get_buffer( Partition_id, &Buffer_address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_partition_get_buffer (available)", - end_time, - 1, - 0, - CALLING_OVERHEAD_PARTITION_GET_BUFFER - ); - - buffer_count = 0; - while ( FOREVER ) { - - status = rtems_partition_get_buffer( - Partition_id, - &Buffer_addresses[ buffer_count ] - ); - - if ( status == RTEMS_UNSATISFIED ) break; - - buffer_count++; - } - - Timer_initialize(); - (void) rtems_partition_get_buffer( Partition_id, &Buffer_address_2 ); - end_time = Read_timer(); - - put_time( - "rtems_partition_get_buffer (not available)", - end_time, - 1, - 0, - CALLING_OVERHEAD_PARTITION_GET_BUFFER - ); - - Timer_initialize(); - (void) rtems_partition_return_buffer( Partition_id, Buffer_address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_partition_return_buffer", - end_time, - 1, - 0, - CALLING_OVERHEAD_PARTITION_RETURN_BUFFER - ); - - for ( index = 0 ; index < buffer_count ; index++ ) { - - status = rtems_partition_return_buffer( - Partition_id, - Buffer_addresses[ index ] - ); - directive_failed( status, "rtems_partition_return_buffer" ); - - } - - Timer_initialize(); - (void) rtems_partition_delete( Partition_id ); - end_time = Read_timer(); - - put_time( - "rtems_partition_delete", - end_time, - 1, - 0, - CALLING_OVERHEAD_PARTITION_DELETE - ); - - status = rtems_region_get_segment( - Region_id, - 400, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_2 - ); - directive_failed( status, "region_get_semgent" ); - - Timer_initialize(); - (void) rtems_region_get_segment( - Region_id, - 400, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_3 - ); - end_time = Read_timer(); - - put_time( - "rtems_region_get_segment (available)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_GET_SEGMENT - ); - - Timer_initialize(); - (void) rtems_region_get_segment( - Region_id, - 1998, - RTEMS_NO_WAIT, - RTEMS_NO_TIMEOUT, - &Buffer_address_4 - ); - end_time = Read_timer(); - - put_time( - "rtems_region_get_segment (RTEMS_NO_WAIT)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_GET_SEGMENT - ); - - status = rtems_region_return_segment( Region_id, Buffer_address_3 ); - directive_failed( status, "rtems_region_return_segment" ); - - Timer_initialize(); - (void) rtems_region_return_segment( Region_id, Buffer_address_2 ); - end_time = Read_timer(); - - put_time( - "rtems_region_return_segment (no tasks waiting)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_RETURN_SEGMENT - ); - - status = rtems_region_get_segment( - Region_id, - 400, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_1 - ); - directive_failed( status, "rtems_region_get_segment" ); - - Timer_initialize(); - (void) rtems_region_get_segment( - Region_id, - 1998, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_2 - ); - - /* execute Task_2 */ - - end_time = Read_timer(); - - put_time( - "rtems_region_return_segment (preempt)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_RETURN_SEGMENT - ); - - status = rtems_region_return_segment( Region_id, Buffer_address_2 ); - directive_failed( status, "rtems_region_return_segment" ); - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - - status = rtems_task_set_priority( RTEMS_SELF, 254, &previous_priority ); - directive_failed( status, "rtems_task_set_priority" ); - - status = rtems_region_get_segment( - Region_id, - 400, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_1 - ); - directive_failed( status, "rtems_region_return_segment" ); - - status = rtems_region_get_segment( - Region_id, - 1998, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT, - &Buffer_address_2 - ); - directive_failed( status, "rtems_region_get_segment" ); - - /* execute Task_2 */ - - status = rtems_region_return_segment( Region_id, Buffer_address_2 ); - directive_failed( status, "rtems_region_return_segment" ); - - Timer_initialize(); - (void) rtems_region_delete( Region_id ); - end_time = Read_timer(); - - put_time( - "rtems_region_delete", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_DELETE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_initialize( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_initialize", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_INITIALIZE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_open( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_open", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_OPEN - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_close( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_close", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_CLOSE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_read( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_read", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_READ - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_write( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_write", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_WRITE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_io_control( 0, 0, NULL, &return_value ); - end_time = Read_timer(); - - put_time( - "rtems_io_control", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_IO_CONTROL - ); - - exit( 0 ); -} - -rtems_task Task_2( - rtems_task_argument argument -) -{ - rtems_status_code status; - - end_time = Read_timer(); - - put_time( - "rtems_region_get_segment (blocking)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_GET_SEGMENT - ); - - Timer_initialize(); - (void) rtems_region_return_segment( Region_id, Buffer_address_1 ); - - /* preempt back to Task_1 */ - - Timer_initialize(); - (void) rtems_region_return_segment( Region_id, Buffer_address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_region_return_segment (ready -- return)", - end_time, - 1, - 0, - CALLING_OVERHEAD_REGION_RETURN_SEGMENT - ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/tmtests/tm20/tm20.doc b/testsuites/tmtests/tm20/tm20.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm20/tm20.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm21/system.h b/testsuites/tmtests/tm21/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm21/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm21/task1.c b/testsuites/tmtests/tm21/task1.c deleted file mode 100644 index 0f31e08485..0000000000 --- a/testsuites/tmtests/tm21/task1.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned8 Region_area[ 2048 ] CPU_STRUCTURE_ALIGNMENT; -rtems_unsigned8 Partition_area[ 2048 ] CPU_STRUCTURE_ALIGNMENT; - -rtems_task Task_1( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 21 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 250, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create of TASK1" ); - - status = rtems_task_start( id, Task_1, 0 ); - directive_failed( status, "rtems_task_start of TASK1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_id id; - rtems_status_code status; - - for( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create ( - index, - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_message_queue_create( - index, - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_message_queue_create" ); - - status = rtems_semaphore_create( - index, - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_semaphore_create" ); - - status = rtems_region_create( - index, - Region_area, - 2048, - 16, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_region_create" ); - - status = rtems_partition_create( - index, - Partition_area, - 2048, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_partition_create" ); - - status = rtems_port_create( - index, - Partition_area, - Region_area, - 0xff, - &id - ); - directive_failed( status, "rtems_port_create" ); - - status = rtems_timer_create( index, &id ); - directive_failed( status, "rtems_timer_create" ); - - status = rtems_rate_monotonic_create( index, &id ); - directive_failed( status, "rtems_rate_monotonic_create" ); - } - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_ident( index, RTEMS_SEARCH_ALL_NODES, &id ); - end_time = Read_timer(); - - put_time( - "rtems_task_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_ident( index, RTEMS_SEARCH_ALL_NODES, &id ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_semaphore_ident( index, RTEMS_SEARCH_ALL_NODES, &id ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_SEMAPHORE_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_partition_ident( index, RTEMS_SEARCH_ALL_NODES, &id ); - end_time = Read_timer(); - - put_time( - "rtems_partition_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_PARTITION_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_region_ident( index, &id ); - end_time = Read_timer(); - - put_time( - "rtems_region_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_REGION_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_port_ident( index, &id ); - end_time = Read_timer(); - - put_time( - "rtems_port_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_PORT_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_timer_ident( index, &id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TIMER_IDENT - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_rate_monotonic_ident( index, &id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_ident", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_RATE_MONOTONIC_IDENT - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm21/tm21.doc b/testsuites/tmtests/tm21/tm21.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm21/tm21.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm22/system.h b/testsuites/tmtests/tm22/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm22/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm22/task1.c b/testsuites/tmtests/tm22/task1.c deleted file mode 100644 index 450466ea54..0000000000 --- a/testsuites/tmtests/tm22/task1.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Queue_id; - -long Buffer[4]; - -rtems_task Low_task( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Preempt_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 22 ***" ); - - status = rtems_message_queue_create( - rtems_build_name( 'M', 'Q', '1', ' '), - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Queue_id - ); - directive_failed( status, "rtems_message_queue_create" ); - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - 10, - 2048, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( id, Low_task, 0 ); - directive_failed( status, "rtems_task_start LOW" ); - - status = rtems_task_create( - 1, - 11, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create RTEMS_PREEMPT" ); - - status = rtems_task_start( id, Preempt_task, 0 ); - directive_failed( status, "rtems_task_start RTEMS_PREEMPT" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - rtems_status_code status; - - Timer_initialize(); - (void) rtems_message_queue_broadcast( - Queue_id, - (long (*)[4]) Buffer, - &count - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_broadcast (readying)", - end_time, - 1, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST - ); - - status = rtems_task_suspend(RTEMS_SELF); - directive_failed( status, "rtems_task_suspend" ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_unsigned32 index; - rtems_unsigned32 count; - rtems_status_code status; - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - 5, - 2048, - RTEMS_NO_PREEMPT, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( id, High_task, 0 ); - directive_failed( status, "rtems_task_start HIGH" ); - - status = rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - directive_failed( status, "message_queu_receive" ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_message_queue_broadcast( - Queue_id, - (long (*)[4]) Buffer, - &count - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_broadcast (no waiting tasks)", - end_time, - OPERATION_COUNT, - 1, - CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST - ); - - (void) rtems_message_queue_receive( - Queue_id, - (long (*)[4]) Buffer, - RTEMS_DEFAULT_OPTIONS, - RTEMS_NO_TIMEOUT - ); - - /* should go to Preempt_task here */ - - end_time = Read_timer(); - - put_time( - "rtems_message_queue_broadcast (preempt)", - end_time, - 1, - 0, - CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST - ); - - exit( 0 ); -} - -rtems_task Preempt_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 count; - - Timer_initialize(); - (void) rtems_message_queue_broadcast( - Queue_id, - (long (*)[4]) Buffer, - &count - ); - - /* should be preempted by low task */ -} diff --git a/testsuites/tmtests/tm22/tm22.doc b/testsuites/tmtests/tm22/tm22.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm22/tm22.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm23/system.h b/testsuites/tmtests/tm23/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm23/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm23/task1.c b/testsuites/tmtests/tm23/task1.c deleted file mode 100644 index 8b3e6dbccc..0000000000 --- a/testsuites/tmtests/tm23/task1.c +++ /dev/null @@ -1,302 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Timer_id[ OPERATION_COUNT+1 ]; - -rtems_time_of_day time_of_day; - -void null_delay( - rtems_id ignored_id, - void *ignored_address -); - -rtems_task Low_task( - rtems_task_argument argument -); - -rtems_task Middle_tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - - -rtems_task Init( - rtems_task_argument argument -) -{ - - rtems_task_priority priority; - rtems_unsigned32 index; - rtems_id id; - rtems_task_entry task_entry; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 23 ***" ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - priority = 5; - - for( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - priority, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - if ( index == 1 ) task_entry = High_task; - else if ( index == OPERATION_COUNT ) task_entry = Low_task; - else task_entry = Middle_tasks; - - status = rtems_task_start( id, task_entry, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - - priority++; - } - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -void null_delay( - rtems_id ignored_id, - void *ignored_address -) -{ -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_status_code status; - int i; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_timer_create( index, &Timer_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_timer_create", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TIMER_CREATE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_timer_fire_after( Timer_id[ index ], 500, null_delay, NULL ); - end_time = Read_timer(); - - put_time( - "rtems_timer_fire_after (inactive)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TIMER_FIRE_AFTER - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_timer_fire_after( Timer_id[ index ], 500, null_delay, NULL ); - end_time = Read_timer(); - - put_time( - "rtems_timer_fire_after (active)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TIMER_FIRE_AFTER - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_timer_cancel( Timer_id[ index ] ); - end_time = Read_timer(); - - put_time( - "rtems_timer_cancel (active)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TIMER_CANCEL - ); - - for ( Timer_initialize(), i=0 ; i - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm24/task1.c b/testsuites/tmtests/tm24/task1.c deleted file mode 100644 index 160116ca16..0000000000 --- a/testsuites/tmtests/tm24/task1.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned32 Task_count; - -rtems_task Tasks( - rtems_task_argument argument -); - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 24 ***" ); - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - 10, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create HIGH" ); - - status = rtems_task_start( id, High_task, 0 ); - directive_failed( status, "rtems_task_create HIGH" ); - - for ( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'R', 'E', 'S', 'T' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( id, Tasks, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_unsigned32 index; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - end_time = Read_timer(); - - put_time( - "rtems_task_wake_after (no context switch)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_WAKE_AFTER - ); - - Task_count = 0; - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Tasks( - rtems_task_argument argument -) -{ - Task_count++; - - if ( Task_count == 1 ) - Timer_initialize(); - else if ( Task_count == OPERATION_COUNT ) { - end_time = Read_timer(); - - put_time( - "rtems_task_wake_after (context switch)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_TASK_WAKE_AFTER - ); - - exit( 0 ); - } - (void) rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); -} diff --git a/testsuites/tmtests/tm24/tm24.doc b/testsuites/tmtests/tm24/tm24.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm24/tm24.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm25/system.h b/testsuites/tmtests/tm25/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm25/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm25/task1.c b/testsuites/tmtests/tm25/task1.c deleted file mode 100644 index 1959b668e3..0000000000 --- a/testsuites/tmtests/tm25/task1.c +++ /dev/null @@ -1,108 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Semaphore_id; - -rtems_task High_tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id task_id; - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 25 ***" ); - - status = rtems_semaphore_create( - rtems_build_name( 'S', 'M', '1', ' ') , - 0, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id - ); - directive_failed( status, "rtems_semaphore_create of SM1" ); - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOW" ); - - status = rtems_task_start( task_id, Low_task, 0 ); - directive_failed( status, "rtems_task_start LOW" ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( task_id, High_tasks, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task High_tasks( - rtems_task_argument argument -) -{ - (void) rtems_semaphore_obtain( - Semaphore_id, - RTEMS_DEFAULT_OPTIONS, - 0xffffffff - ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - Timer_initialize(); - (void) rtems_clock_tick(); - end_time = Read_timer(); - - put_time( - "rtems_clock_tick", - end_time, - 1, - 0, - CALLING_OVERHEAD_CLOCK_TICK - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm25/tm25.doc b/testsuites/tmtests/tm25/tm25.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm25/tm25.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm26/fptest.h b/testsuites/tmtests/tm26/fptest.h deleted file mode 100644 index 39b8438ef9..0000000000 --- a/testsuites/tmtests/tm26/fptest.h +++ /dev/null @@ -1,165 +0,0 @@ -/* fptest.h - * - * This include file contains the CPU dependent implementation - * of the following routines needed to test RTEMS floating - * point support: - * FP_load( &context ) - * FP_check( &context ) - * - * FP_load - loads the specified floating point context - * FP_check - checks the specified floating point context - * - * NOTE: These routines are VERY CPU dependent and are thus - * located in in the CPU dependent include file - * fptest.h. These routines form the core of the - * floating point context switch test. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#ifndef __FPTEST_h -#define __FPTEST_h - -#include - -#ifndef CPU_HARDWARE_FP -#error "This CPU does not have CPU_HARDWARE_FP defined" -#endif - -#if ( CPU_HARDWARE_FP == FALSE ) - -#define FP_DECLARE -#define FP_LOAD( _factor ) -#define FP_CHECK( _factor ) 0 - -#else - -#define FP_DECLARE \ - double fp01 = 1.0; \ - double fp02 = 2.0; \ - double fp03 = 3.0; \ - double fp04 = 4.0; \ - double fp05 = 5.0; \ - double fp06 = 6.0; \ - double fp07 = 7.0; \ - double fp08 = 8.0; \ - double fp09 = 9.0; \ - double fp10 = 10.0; \ - double fp11 = 11.0; \ - double fp12 = 12.0; \ - double fp13 = 13.0; \ - double fp14 = 14.0; \ - double fp15 = 15.0; \ - double fp16 = 16.0; \ - double fp17 = 17.0; \ - double fp18 = 18.0; \ - double fp19 = 19.0; \ - double fp20 = 20.0; \ - double fp21 = 21.0; \ - double fp22 = 22.0; \ - double fp23 = 23.0; \ - double fp24 = 24.0; \ - double fp25 = 25.0; \ - double fp26 = 26.0; \ - double fp27 = 27.0; \ - double fp28 = 28.0; \ - double fp29 = 29.0; \ - double fp30 = 30.0; \ - double fp31 = 31.0; \ - double fp32 = 32.0 - -#define FP_LOAD( _factor ) \ - do { \ - fp01 += _factor; \ - fp02 += _factor; \ - fp03 += _factor; \ - fp04 += _factor; \ - fp05 += _factor; \ - fp06 += _factor; \ - fp07 += _factor; \ - fp08 += _factor; \ - fp09 += _factor; \ - fp10 += _factor; \ - fp11 += _factor; \ - fp12 += _factor; \ - fp13 += _factor; \ - fp14 += _factor; \ - fp15 += _factor; \ - fp16 += _factor; \ - fp17 += _factor; \ - fp18 += _factor; \ - fp19 += _factor; \ - fp20 += _factor; \ - fp21 += _factor; \ - fp22 += _factor; \ - fp23 += _factor; \ - fp24 += _factor; \ - fp25 += _factor; \ - fp26 += _factor; \ - fp27 += _factor; \ - fp28 += _factor; \ - fp29 += _factor; \ - fp30 += _factor; \ - fp31 += _factor; \ - fp32 += _factor; \ - } while (0) - -#define EPSILON (0.0005) -#define FPABS(d) (((d) < 0.0) ? -(d) : (d)) -#define FPNEQ(a,b) (FPABS((a)-(b)) > EPSILON) - -#define FP_CHECK_ONE( _v, _base, _factor ) \ - if ( FPNEQ( (_v), ((_base) + (_factor)) ) ) { \ - printf("%d: " #_v " wrong -- (%g not %g)\n", \ - task_index, (_v), (_base + _factor)); \ - } - - -#define FP_CHECK( _factor ) \ - do { \ - FP_CHECK_ONE( fp01, 1.0, (_factor) ); \ - FP_CHECK_ONE( fp02, 2.0, (_factor) ); \ - FP_CHECK_ONE( fp03, 3.0, (_factor) ); \ - FP_CHECK_ONE( fp04, 4.0, (_factor) ); \ - FP_CHECK_ONE( fp05, 5.0, (_factor) ); \ - FP_CHECK_ONE( fp06, 6.0, (_factor) ); \ - FP_CHECK_ONE( fp07, 7.0, (_factor) ); \ - FP_CHECK_ONE( fp08, 8.0, (_factor) ); \ - FP_CHECK_ONE( fp09, 9.0, (_factor) ); \ - FP_CHECK_ONE( fp10, 10.0, (_factor) ); \ - FP_CHECK_ONE( fp11, 11.0, (_factor) ); \ - FP_CHECK_ONE( fp12, 12.0, (_factor) ); \ - FP_CHECK_ONE( fp13, 13.0, (_factor) ); \ - FP_CHECK_ONE( fp14, 14.0, (_factor) ); \ - FP_CHECK_ONE( fp15, 15.0, (_factor) ); \ - FP_CHECK_ONE( fp16, 16.0, (_factor) ); \ - FP_CHECK_ONE( fp17, 17.0, (_factor) ); \ - FP_CHECK_ONE( fp18, 18.0, (_factor) ); \ - FP_CHECK_ONE( fp19, 19.0, (_factor) ); \ - FP_CHECK_ONE( fp20, 20.0, (_factor) ); \ - FP_CHECK_ONE( fp21, 21.0, (_factor) ); \ - FP_CHECK_ONE( fp22, 22.0, (_factor) ); \ - FP_CHECK_ONE( fp23, 23.0, (_factor) ); \ - FP_CHECK_ONE( fp24, 24.0, (_factor) ); \ - FP_CHECK_ONE( fp25, 25.0, (_factor) ); \ - FP_CHECK_ONE( fp26, 26.0, (_factor) ); \ - FP_CHECK_ONE( fp27, 27.0, (_factor) ); \ - FP_CHECK_ONE( fp28, 28.0, (_factor) ); \ - FP_CHECK_ONE( fp29, 29.0, (_factor) ); \ - FP_CHECK_ONE( fp30, 30.0, (_factor) ); \ - FP_CHECK_ONE( fp31, 31.0, (_factor) ); \ - FP_CHECK_ONE( fp32, 32.0, (_factor) ); \ - } while (0) - -#endif - -#endif diff --git a/testsuites/tmtests/tm26/system.h b/testsuites/tmtests/tm26/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm26/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm26/task1.c b/testsuites/tmtests/tm26/task1.c deleted file mode 100644 index b3544741bc..0000000000 --- a/testsuites/tmtests/tm26/task1.c +++ /dev/null @@ -1,470 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include -#include "system.h" -#include "fptest.h" -#include "coverhd.h" -#include "tmacros.h" -#include "timesys.h" - -#undef EXTERN -#define EXTERN -#include "gvar.h" -#include "conftbl.h" -#undef EXTERN -#define EXTERN extern - -/* TEST DATA */ -rtems_id Semaphore_id; - -Objects_Locations location; /* uses internal RTEMS type */ - -Thread_Control *Middle_tcb; /* uses internal RTEMS type */ - -rtems_task High_task( - rtems_task_argument argument -); - -rtems_task Middle_task( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -rtems_task Floating_point_task_1( - rtems_task_argument argument -); - -rtems_task Floating_point_task_2( - rtems_task_argument argument -); - -void complete_test( void ); - -rtems_task null_task( - rtems_task_argument argument -) -{ -} - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_id task_id; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 26 ***" ); - - status = rtems_task_create( - rtems_build_name( 'F', 'P', '1', ' ' ), - 201, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &task_id - ); - directive_failed( status, "rtems_task_create of FP1" ); - - status = rtems_task_start( task_id, Floating_point_task_1, 0 ); - directive_failed( status, "rtems_task_start of FP1" ); - - status = rtems_task_create( - rtems_build_name( 'F', 'P', '2', ' ' ), - 202, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_FLOATING_POINT, - &task_id - ); - directive_failed( status, "rtems_task_create of FP2" ); - - status = rtems_task_start( task_id, Floating_point_task_2, 0 ); - directive_failed( status, "rtems_task_start of FP2" ); - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - 200, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create of LOW" ); - - status = rtems_task_start( task_id, Low_task, 0 ); - directive_failed( status, "rtems_task_start of LOW" ); - - status = rtems_task_create( - rtems_build_name( 'M', 'I', 'D', ' ' ), - 128, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create of MIDDLE" ); - - status = rtems_task_start( task_id, Middle_task, 0 ); - directive_failed( status, "rtems_task_start of MIDDLE" ); - - status = rtems_task_create( - rtems_build_name( 'H', 'I', 'G', 'H' ), - 5, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create of HIGH" ); - - status = rtems_task_start( task_id, High_task, 0 ); - directive_failed( status, "rtems_task_start of HIGH" ); - - status = rtems_semaphore_create( - rtems_build_name( 'S', 'E', 'M', '1' ), - OPERATION_COUNT, - RTEMS_DEFAULT_ATTRIBUTES, - &Semaphore_id - ); - directive_failed( status, "rtems_semaphore_create" ); - - for ( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'N', 'U', 'L', 'L' ), - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( task_id, null_task, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task High_task( - rtems_task_argument argument -) -{ - Timer_initialize(); - _Thread_Disable_dispatch(); - end_time = Read_timer(); - - put_time( - "THREAD_DISABLE_DISPATCH", - end_time, - 1, - 0, - 0 - ); - - - Timer_initialize(); - _Thread_Enable_dispatch(); - end_time = Read_timer(); - - put_time( - "THREAD_ENABLE_DISPATCH", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - _Thread_Set_state( _Thread_Executing, STATES_SUSPENDED ); - end_time = Read_timer(); - - put_time( - "THREAD_SET_STATE", - end_time, - 1, - 0, - 0 - ); - - _Context_Switch_necessary = TRUE; - - Timer_initialize(); - _Thread_Dispatch(); /* dispatches Middle_task */ -} - -rtems_task Middle_task( - rtems_task_argument argument -) -{ - end_time = Read_timer(); - - put_time( - "THREAD_DISPATCH (NO FP)", - end_time, - 1, - 0, - 0 - ); - - _Thread_Set_state( _Thread_Executing, STATES_SUSPENDED ); - - Middle_tcb = _Thread_Executing; - - _Thread_Executing = - (Thread_Control *) _Thread_Ready_chain[200].first; - - /* do not force context switch */ - - _Context_Switch_necessary = FALSE; - - Timer_initialize(); - _Context_Switch( &Middle_tcb->Registers, &_Thread_Executing->Registers ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - Thread_Control *executing; - - end_time = Read_timer(); - - put_time( - "CONTEXT_SWITCH (NO FP)", - end_time, - 1, - 0, - 0 - ); - - executing = _Thread_Executing; - - _Thread_Executing = - (Thread_Control *) _Thread_Ready_chain[201].first; - - /* do not force context switch */ - - _Context_Switch_necessary = FALSE; - - Timer_initialize(); - _Context_Restore_fp( &_Thread_Executing->fp_context ); - _Context_Switch( &executing->Registers, &_Thread_Executing->Registers ); -} - -rtems_task Floating_point_task_1( - rtems_task_argument argument -) -{ - Thread_Control *executing; - FP_DECLARE; - - end_time = Read_timer(); - - put_time( - "CONTEXT_SWITCH (restore 1st FP)", - end_time, - 1, - 0, - 0 - ); - - executing = _Thread_Executing; - - _Thread_Executing = - (Thread_Control *) _Thread_Ready_chain[202].first; - - /* do not force context switch */ - - _Context_Switch_necessary = FALSE; - - Timer_initialize(); - _Context_Save_fp( &executing->fp_context ); - _Context_Restore_fp( &_Thread_Executing->fp_context ); - _Context_Switch( &executing->Registers, &_Thread_Executing->Registers ); - /* switch to Floating_point_task_2 */ - - end_time = Read_timer(); - - put_time( - "CONTEXT_SWITCH (used->init FP)", - end_time, - 1, - 0, - 0 - ); - - FP_LOAD( 1.0 ); - - executing = _Thread_Executing; - - _Thread_Executing = - (Thread_Control *) _Thread_Ready_chain[202].first; - - /* do not force context switch */ - - _Context_Switch_necessary = FALSE; - - Timer_initialize(); - _Context_Save_fp( &executing->fp_context ); - _Context_Restore_fp( &_Thread_Executing->fp_context ); - _Context_Switch( &executing->Registers, &_Thread_Executing->Registers ); - /* switch to Floating_point_task_2 */ -} - -rtems_task Floating_point_task_2( - rtems_task_argument argument -) -{ - Thread_Control *executing; - FP_DECLARE; - - end_time = Read_timer(); - - put_time( - "CONTEXT_SWITCH (init->init FP)", - end_time, - 1, - 0, - 0 - ); - - executing = _Thread_Executing; - - _Thread_Executing = - (Thread_Control *) _Thread_Ready_chain[201].first; - - FP_LOAD( 1.0 ); - - /* do not force context switch */ - - _Context_Switch_necessary = FALSE; - - Timer_initialize(); - _Context_Save_fp( &executing->fp_context ); - _Context_Restore_fp( &_Thread_Executing->fp_context ); - _Context_Switch( &executing->Registers, &_Thread_Executing->Registers ); - /* switch to Floating_point_task_1 */ - - end_time = Read_timer(); - - put_time( - "CONTEXT_SWITCH (used->used FP)", - end_time, - 1, - 0, - 0 - ); - - complete_test(); -} - -void complete_test( void ) -{ - rtems_unsigned32 index; - rtems_id task_id; - - Timer_initialize(); - _Thread_Resume( Middle_tcb ); - end_time = Read_timer(); - - put_time( - "THREAD_RESUME", - end_time, - 1, - 0, - 0 - ); - - _Thread_Set_state( Middle_tcb, STATES_WAITING_FOR_MESSAGE ); - - Timer_initialize(); - _Thread_Unblock( Middle_tcb ); - end_time = Read_timer(); - - put_time( - "THREAD_UNBLOCK", - end_time, - 1, - 0, - 0 - ); - - _Thread_Set_state( Middle_tcb, STATES_WAITING_FOR_MESSAGE ); - - Timer_initialize(); - _Thread_Ready( Middle_tcb ); - end_time = Read_timer(); - - put_time( - "THREAD_READY", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - task_id = Middle_tcb->Object.id; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) _Thread_Get( task_id, &location ); - end_time = Read_timer(); - - put_time( - "THREAD_GET", - end_time, - OPERATION_COUNT, - 0, - 0 - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) _Semaphore_Get( Semaphore_id, &location ); - end_time = Read_timer(); - - put_time( - "SEMAPHORE_GET", - end_time, - OPERATION_COUNT, - 0, - 0 - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) _Thread_Get( 0x3, &location ); - end_time = Read_timer(); - - put_time( - "THREAD_GET invalid id", - end_time, - OPERATION_COUNT, - 0, - 0 - ); - exit( 0 ); -} - diff --git a/testsuites/tmtests/tm26/tm26.doc b/testsuites/tmtests/tm26/tm26.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm26/tm26.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm27/system.h b/testsuites/tmtests/tm27/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm27/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm27/task1.c b/testsuites/tmtests/tm27/task1.c deleted file mode 100644 index edd657b40c..0000000000 --- a/testsuites/tmtests/tm27/task1.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -#include - -rtems_task Task_1( - rtems_task_argument argument -); - -rtems_task Task_2( - rtems_task_argument argument -); - -volatile rtems_unsigned32 Interrupt_occurred; -volatile rtems_unsigned32 Interrupt_enter_time, Interrupt_enter_nested_time; -volatile rtems_unsigned32 Interrupt_return_time, Interrupt_return_nested_time; -rtems_unsigned32 Interrupt_nest; - -rtems_isr Isr_handler( - rtems_vector_number vector -); - -/* - * INTERNAL RTEMS VARIABLES!!! - */ - -extern rtems_unsigned32 _Thread_Dispatch_disable_level; -extern rtems_unsigned32 _Context_Switch_necessary; -extern Chain_Control *_Thread_Ready_chain; -extern rtems_tcb *_Thread_Heir; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 27 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'A', '1', ' ' ), - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create Task_1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start Task_1" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'A', '2', ' ' ), - 254, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of Task_2" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of Task_2" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - _Thread_Dispatch_disable_level = 1; - - Interrupt_nest = 1; - - Install_tm27_vector( Isr_handler ); - - Interrupt_occurred = 0; - Timer_initialize(); - Cause_tm27_intr(); - /* goes to Isr_handler */ - -#if (MUST_WAIT_FOR_INTERRUPT == 1) - while ( Interrupt_occurred == 0 ); -#endif - Interrupt_return_time = Read_timer(); - - put_time( - "INTERRUPT_ENTER (nested interrupt)", - Interrupt_enter_nested_time, - 1, - 0, - 0 - ); - - put_time( - "INTERRUPT_RETURN (nested interrupt)", - Interrupt_return_nested_time, - 1, - 0, - 0 - ); - - Interrupt_nest = 0; - - _Thread_Dispatch_disable_level = 0; - - Interrupt_occurred = 0; - Timer_initialize(); - Cause_tm27_intr(); - /* goes to Isr_handler */ - -#if (MUST_WAIT_FOR_INTERRUPT == 1) - while ( Interrupt_occurred == 0 ); -#endif - Interrupt_return_time = Read_timer(); - - put_time( - "INTERRUPT_ENTER (no preempt)", - Interrupt_enter_time, - 1, - 0, - 0 - ); - - put_time( - "INTERRUPT_RETURN (no preempt)", - Interrupt_return_time, - 1, - 0, - 0 - ); - - _Thread_Dispatch_disable_level = 0; - - _Thread_Heir = (rtems_tcb *) _Thread_Ready_chain[254].last; - - _Context_Switch_necessary = 1; - - Interrupt_occurred = 0; - Timer_initialize(); - Cause_tm27_intr(); - /* goes to Isr_handler */ -} - -rtems_task Task_2( - rtems_task_argument argument -) -{ -#if (MUST_WAIT_FOR_INTERRUPT == 1) - while ( Interrupt_occurred == 0 ); -#endif - end_time = Read_timer(); - - put_time( - "INTERRUPT_ENTER (preempt)", - Interrupt_enter_time, - 1, - 0, - 0 - ); - - put_time( - "INTERRUPT_RETURN (preempt)", - end_time, - 1, - 0, - 0 - ); - - exit( 0 ); -} - -/* The Isr_handler() and Isr_handler_inner() routines are structured - * so that there will be as little entry overhead as possible included - * in the interrupt entry time. - */ - -void Isr_handler_inner( void ); - -rtems_isr Isr_handler( - rtems_vector_number vector -) -{ - end_time = Read_timer(); - - Interrupt_occurred = 1; - Isr_handler_inner(); -} - -void Isr_handler_inner( void ) -{ - - /*enable_tracing();*/ - Clear_tm27_intr(); - switch ( Interrupt_nest ) { - case 0: - Interrupt_enter_time = end_time; - break; - case 1: - Interrupt_enter_time = end_time; - Interrupt_nest = 2; - Interrupt_occurred = 0; - Lower_tm27_intr(); - Timer_initialize(); - Cause_tm27_intr(); - /* goes to a nested copy of Isr_handler */ -#if (MUST_WAIT_FOR_INTERRUPT == 1) - while ( Interrupt_occurred == 0 ); -#endif - Interrupt_return_nested_time = Read_timer(); - break; - case 2: - Interrupt_enter_nested_time = end_time; - break; - } - - Timer_initialize(); -} diff --git a/testsuites/tmtests/tm27/tm27.doc b/testsuites/tmtests/tm27/tm27.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm27/tm27.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm28/system.h b/testsuites/tmtests/tm28/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm28/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm28/task1.c b/testsuites/tmtests/tm28/task1.c deleted file mode 100644 index c6af6fb03f..0000000000 --- a/testsuites/tmtests/tm28/task1.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_id Port_id; - -rtems_unsigned8 Internal_area[ 256 ]; -rtems_unsigned8 External_area[ 256 ]; - -rtems_task Test_task( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - - puts( "\n\n*** TIME TEST 28 ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'I', 'M', 'E' ), - 128, - 4096, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create" ); - - status = rtems_task_start( Task_id[ 1 ], Test_task, 0 ); - directive_failed( status, "rtems_task_start" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Test_task ( - rtems_task_argument argument -) -{ - rtems_name name; - rtems_unsigned32 index; - void *converted; - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - name = rtems_build_name( 'P', 'O', 'R', 'T' ), - - Timer_initialize(); - rtems_port_create( - name, - Internal_area, - External_area, - 0xff, - &Port_id - ); - end_time = Read_timer(); - - put_time( - "rtems_port_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_PORT_CREATE - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_port_external_to_internal( - Port_id, - &External_area[ 0xf ], - &converted - ); - end_time = Read_timer(); - - put_time( - "rtems_port_external_to_internal", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL - ); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_port_internal_to_external( - Port_id, - &Internal_area[ 0xf ], - &converted - ); - end_time = Read_timer(); - - put_time( - "rtems_port_internal_to_external", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL - ); - - Timer_initialize(); - rtems_port_delete( Port_id ); - end_time = Read_timer(); - - put_time( - "rtems_port_delete", - end_time, - 1, - 0, - CALLING_OVERHEAD_PORT_DELETE - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm28/tm28.doc b/testsuites/tmtests/tm28/tm28.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm28/tm28.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tm29/system.h b/testsuites/tmtests/tm29/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tm29/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tm29/task1.c b/testsuites/tmtests/tm29/task1.c deleted file mode 100644 index a38e9567c8..0000000000 --- a/testsuites/tmtests/tm29/task1.c +++ /dev/null @@ -1,207 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_name Period_name; - -rtems_task Tasks( - rtems_task_argument argument -); - -rtems_task Low_task( - rtems_task_argument argument -); - -rtems_unsigned32 Task_count; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** TIME TEST 29 ***" ); - - Period_name = rtems_build_name( 'P', 'R', 'D', ' ' ); - - Timer_initialize(); - (void) rtems_rate_monotonic_create( Period_name, &id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_create", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_CREATE - ); - - Timer_initialize(); - (void) rtems_rate_monotonic_period( id, 10 ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_period (initial)", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD - ); - - Timer_initialize(); - (void) rtems_rate_monotonic_period( id, RTEMS_PERIOD_STATUS ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_period (STATUS)", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD - ); - - Timer_initialize(); - (void) rtems_rate_monotonic_cancel( id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_cancel", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL - ); - - Timer_initialize(); - (void) rtems_rate_monotonic_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_delete (cancelled)", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_DELETE - ); - - status = rtems_rate_monotonic_create( Period_name, &id ); - directive_failed( status, "rtems_rate_monotonic_create" ); - - status = rtems_rate_monotonic_period( id, 10 ); - directive_failed( status, "rtems_rate_monotonic_period" ); - - Timer_initialize(); - rtems_rate_monotonic_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_delete (active)", - end_time, - 1, - 0, - CALLING_OVERHEAD_RATE_MONOTONIC_DELETE - ); - - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) { - status = rtems_task_create( - rtems_build_name( 'T', 'E', 'S', 'T' ), - 128, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create LOOP" ); - - status = rtems_task_start( id, Tasks, 0 ); - directive_failed( status, "rtems_task_start LOOP" ); - } - - status = rtems_task_create( - rtems_build_name( 'L', 'O', 'W', ' ' ), - 200, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create LOW" ); - - status = rtems_task_start( id, Low_task, 0 ); - directive_failed( status, "rtems_task_start LOW" ); - - Task_count = 0; - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Tasks( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - status = rtems_rate_monotonic_create( 1, &id ); - directive_failed( status, "rtems_rate_monotonic_create" ); - - status = rtems_rate_monotonic_period( id, 100 ); - directive_failed( status, "rtems_rate_monotonic_period" ); - - /* - * Give up the processor to allow all tasks to actually - * create and start their period timer before the benchmark - * timer is initialized. - */ - - (void) rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); - - Task_count++; - - if ( Task_count == 1 ) - Timer_initialize(); - - (void) rtems_rate_monotonic_period( id, 100 ); -} - -rtems_task Low_task( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - - end_time = Read_timer(); - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) Empty_function(); - overhead = Read_timer(); - - put_time( - "rtems_rate_monotonic_period (blocking)", - end_time, - OPERATION_COUNT, - overhead, - CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD - ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tm29/tm29.doc b/testsuites/tmtests/tm29/tm29.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tm29/tm29.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/testsuites/tmtests/tmck/system.h b/testsuites/tmtests/tmck/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tmck/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tmck/task1.c b/testsuites/tmtests/tmck/task1.c deleted file mode 100644 index c151475505..0000000000 --- a/testsuites/tmtests/tmck/task1.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -#define MAXIMUM_DISTRIBUTION 10000 - -#undef OPERATION_COUNT -#define OPERATION_COUNT 100000 - -int Distribution[ MAXIMUM_DISTRIBUTION + 1 ]; - -rtems_task Task_1( - rtems_task_argument argument -); - -void check_read_timer( void ); - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_id id; - rtems_status_code status; - - /* - * Tell the Timer Driver what we are doing - */ - - Set_find_average_overhead( 1 ); - - puts( "\n\n*** TIME CHECKER ***" ); - - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ), - - status = rtems_task_create( - 1, - 5, - 1024, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( id, Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - - check_read_timer(); -pause(); - - Timer_initialize(); - end_time = Read_timer(); - - put_time( - "NULL timer stopped at", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - for ( index = 1 ; index <= 1000 ; index++ ) - (void) Empty_function(); - end_time = Read_timer(); - - put_time( - "LOOP (1000) timer stopped at", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - for ( index = 1 ; index <= 10000 ; index++ ) - (void) Empty_function(); - end_time = Read_timer(); - - put_time( - "LOOP (10000) timer stopped at", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - for ( index = 1 ; index <= 50000 ; index++ ) - (void) Empty_function(); - end_time = Read_timer(); - - put_time( - "LOOP (50000) timer stopped at", - end_time, - 1, - 0, - 0 - ); - - Timer_initialize(); - for ( index = 1 ; index <= 100000 ; index++ ) - (void) Empty_function(); - end_time = Read_timer(); - - put_time( - "LOOP (100000) timer stopped at", - end_time, - 1, - 0, - 0 - ); - - exit( 0 ); -} - -void check_read_timer() -{ - rtems_unsigned32 index; - rtems_unsigned32 time; - - for ( index = 1 ; index <= MAXIMUM_DISTRIBUTION ; index++ ) - Distribution[ index ] = 0; - - for ( index = 1 ; index <= OPERATION_COUNT ; index++ ) { - Timer_initialize(); - end_time = Read_timer(); - if ( end_time > MAXIMUM_DISTRIBUTION ) { - /* - * Under UNIX a simple process swap takes longer than we - * consider valid for our testing purposes. - */ - printf( "TOO LONG (%d) at %d!!!\n", end_time, index ); -#if defined(unix) - index--; - continue; -#else - exit( 1 ); -#endif - } - else - Distribution[ end_time ]++; - } - - printf( "Units may not be in microseconds for this test!!!\n" ); - time = 0; - for ( index = 0 ; index <= MAXIMUM_DISTRIBUTION ; index++ ) { - time += (Distribution[ index ] * index); - if ( Distribution[ index ] != 0 ) - printf( "%d %d\n", index, Distribution[ index ] ); - } - printf( "Total time = %d\n", time ); - printf( "Average time = %d\n", time / OPERATION_COUNT ); -} diff --git a/testsuites/tmtests/tmck/tmck.doc b/testsuites/tmtests/tmck/tmck.doc deleted file mode 100644 index 9ef6a57d99..0000000000 --- a/testsuites/tmtests/tmck/tmck.doc +++ /dev/null @@ -1,20 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - -This file describes the directives timed by this test. - -benchmark name: timecheck - -This becnchmark is used to calibrate the timer. It is only used to -when initial timing begins on a particular processor board. - diff --git a/testsuites/tmtests/tmoverhd/dumrtems.h b/testsuites/tmtests/tmoverhd/dumrtems.h deleted file mode 100644 index d0492c1014..0000000000 --- a/testsuites/tmtests/tmoverhd/dumrtems.h +++ /dev/null @@ -1,255 +0,0 @@ -/* dumrtems.h - * - * This include file contains phony macros to map - * executive calls to Empty_directive(). - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __DUMRTEMS_h -#define __DUMRTEMS_h - -/* RTEMS call redefinition macros */ - -#undef rtems_signal_catch -#undef rtems_signal_send -#undef rtems_io_close -#undef rtems_io_control -#undef rtems_io_initialize -#undef rtems_io_open -#undef rtems_io_read -#undef rtems_io_write -#undef rtems_port_internal_to_external -#undef rtems_port_external_to_internal -#undef rtems_port_create -#undef rtems_port_delete -#undef rtems_port_ident -#undef rtems_event_receive -#undef rtems_event_send -#undef rtems_initialize_executive -#undef rtems_shutdown_executive -#undef rtems_interrupt_catch -#undef rtems_partition_create -#undef rtems_partition_delete -#undef rtems_partition_get_buffer -#undef rtems_partition_ident -#undef rtems_partition_return_buffer -#undef rtems_message_queue_broadcast -#undef rtems_message_queue_create -#undef rtems_message_queue_delete -#undef rtems_message_queue_flush -#undef rtems_message_queue_ident -#undef rtems_message_queue_receive -#undef rtems_message_queue_send -#undef rtems_message_queue_urgent -#undef rtems_region_create -#undef rtems_region_delete -#undef rtems_region_get_segment -#undef rtems_region_ident -#undef rtems_region_return_segment -#undef rtems_semaphore_create -#undef rtems_semaphore_delete -#undef rtems_semaphore_ident -#undef rtems_semaphore_obtain -#undef rtems_semaphore_release -#undef rtems_task_create -#undef rtems_task_delete -#undef rtems_task_get_note -#undef rtems_task_ident -#undef rtems_task_mode -#undef rtems_task_restart -#undef rtems_task_resume -#undef rtems_task_set_note -#undef rtems_task_set_priority -#undef rtems_task_start -#undef rtems_task_suspend -#undef rtems_clock_get -#undef rtems_clock_set -#undef rtems_clock_tick -#undef rtems_task_wake_after -#undef rtems_task_wake_when -#undef rtems_fatal_error_occurred -#undef rtems_rate_monotonic_create -#undef rtems_rate_monotonic_ident -#undef rtems_rate_monotonic_delete -#undef rtems_rate_monotonic_cancel -#undef rtems_rate_monotonic_period -#undef rtems_multiprocessing_announce -#undef rtems_timer_create -#undef rtems_timer_ident -#undef rtems_timer_delete -#undef rtems_timer_cancel -#undef rtems_timer_fire_after -#undef rtems_timer_fire_when -#undef rtems_timer_reset - -#define rtems_signal_catch( asraddr, mode ) \ - Empty_directive( asraddr, mode ) -#define rtems_signal_send( tid, signal ) \ - Empty_directive( tid, signal ) - -#define rtems_io_close( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) -#define rtems_io_control( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) -#define rtems_io_initialize( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) -#define rtems_io_open( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) -#define rtems_io_read( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) -#define rtems_io_write( major, minor, argp, rval ) \ - Empty_directive( major, minor, argp, rval ) - -#define rtems_port_internal_to_external( dpid, internal, external ) \ - Empty_directive( dpid, internal, external ) -#define rtems_port_external_to_internal( dpid, external, internal ) \ - Empty_directive( dpid, external, internal ) -#define rtems_port_create( name, intaddr, extaddr, length, dpid ) \ - Empty_directive( name, intaddr, extaddr, length, dpid ) -#define rtems_port_delete( dpid ) \ - Empty_directive( dpid ) -#define rtems_port_ident( name, dpid ) \ - Empty_directive( name, dpid ) - -#define rtems_event_receive( eventin, options, timeout, eventout ) \ - Empty_directive( eventin, options, timeout, eventout ) -#define rtems_event_send( tid, event ) \ - Empty_directive( tid, event ) - -#define rtems_initialize_executive( conftbl, cputbl ) \ - Empty_directive( conftbl, cputbl ) -#define rtems_shutdown_executive( the_error ) \ - Empty_directive( the_error ) - -#define rtems_interrupt_catch( israddr, vector, oldisr ) \ - Empty_directive( israddr, vector, oldisr ) - -#define rtems_partition_create( name, paddr, length, bsize, attr, ptid ) \ - Empty_directive( name, paddr, length, bsize, attr, ptid ) -#define rtems_partition_delete( ptid ) \ - Empty_directive( ptid ) -#define rtems_partition_get_buffer( ptid, bufaddr ) \ - Empty_directive( ptid, bufaddr ) -#define rtems_partition_ident( name, node, ptid ) \ - Empty_directive( name, node, ptid ) -#define rtems_partition_return_buffer( ptid, bufaddr ) \ - Empty_directive( ptid, bufaddr ) - -#define rtems_message_queue_broadcast( qid, buffer, count ) \ - Empty_directive( qid, buffer, count ) -#define rtems_message_queue_create( name, count, attr, qid ) \ - Empty_directive( name, count, attr, qid ) -#define rtems_message_queue_delete( qid ) \ - Empty_directive( qid ) -#define rtems_message_queue_flush( qid, count ) \ - Empty_directive( qid, count ) -#define rtems_message_queue_ident( name, node, qid ) \ - Empty_directive( name, node, qid ) -#define rtems_message_queue_receive( qid, buffer, options, timeout ) \ - Empty_directive( qid, buffer, options, timeout ) -#define rtems_message_queue_send( qid, buffer ) \ - Empty_directive( qid, buffer ) -#define rtems_message_queue_urgent( qid, buffer ) \ - Empty_directive( qid, buffer ) - -#define rtems_region_create( name, paddr, length, pagesize, attr, rnid ) \ - Empty_directive( name, paddr, length, pagesize, attr, rnid ) -#define rtems_region_delete( rnid ) \ - Empty_directive( rnid ) -#define rtems_region_get_segment( rnid, size, options, timeout, segaddr ) \ - Empty_directive( rnid, size, options, timeout, segaddr ) -#define rtems_region_ident( name, rnid ) \ - Empty_directive( name, rnid ) -#define rtems_region_return_segment( rnid, segaddr ) \ - Empty_directive( rnid, segaddr ) - -#define rtems_semaphore_create( name, count, attr, smid ) \ - Empty_directive( name, count, attr, smid ) -#define rtems_semaphore_delete( smid ) \ - Empty_directive( smid ) -#define rtems_semaphore_ident( name, node, smid ) \ - Empty_directive( name, node, smid ) -#define rtems_semaphore_obtain( smid, options, timeout ) \ - Empty_directive( smid, options, timeout ) -#define rtems_semaphore_release( smid ) \ - Empty_directive( smid ) - -#define rtems_task_create( name, priority, stack_size, mode, attr, tid ) \ - Empty_directive( name, priority, stack_size, mode, attr, tid ) -#define rtems_task_delete( tid ) \ - Empty_directive( tid ) -#define rtems_task_get_note( tid, notepad, note ) \ - Empty_directive( tid, notepad, note ) -#define rtems_task_ident( name, node, tid ) \ - Empty_directive( name, node, tid ) -#define rtems_task_mode( mode, mask, pmode ) \ - Empty_directive( mode, mask, pmode ) -#define rtems_task_restart( tid, arg ) \ - Empty_directive( tid, arg ) -#define rtems_task_resume( tid ) \ - Empty_directive( tid ) -#define rtems_task_set_note( tid, notepad, note ) \ - Empty_directive( tid, notepad, note ) -#define rtems_task_set_priority( tid, priority, ppriority ) \ - Empty_directive( tid, priority, ppriority ) -#define rtems_task_start( tid, saddr, arg ) \ - Empty_directive( tid, saddr, arg ) -#define rtems_task_suspend( tid ) \ - Empty_directive( tid ) - -#define rtems_clock_get( options, time ) \ - Empty_directive( options, time ) -#define rtems_clock_set( time ) \ - Empty_directive( time ) -#define rtems_clock_tick() \ - Empty_directive() -#define rtems_task_wake_after( ticks ) \ - Empty_directive( ticks ) -#define rtems_task_wake_when( time ) \ - Empty_directive( time ) - -#define rtems_fatal_error_occurred( errcode ) \ - Empty_directive( errcode ) - -#define rtems_rate_monotonic_create( name, id ) \ - Empty_directive( name, id ) -#define rtems_rate_monotonic_ident( name, id ) \ - Empty_directive( name, id ) -#define rtems_rate_monotonic_delete( id ) \ - Empty_directive( id ) -#define rtems_rate_monotonic_cancel( id ) \ - Empty_directive( id ) -#define rtems_rate_monotonic_period( id, period ) \ - Empty_directive( id, period ) - -#define rtems_multiprocessing_announce() \ - Empty_directive() - -#define rtems_timer_create( name, tmid ) \ - Empty_directive( name, tmid ) -#define rtems_timer_delete( tmid ) \ - Empty_directive( tmid ) -#define rtems_timer_cancel( tmid ) \ - Empty_directive( tmid ) -#define rtems_timer_ident( name, tmid ) \ - Empty_directive( name, tmid ) -#define rtems_timer_fire_after( tmid, ticks, routine, user_data ) \ - Empty_directive( tmid, ticks, routine, user_data ) -#define rtems_timer_fire_when( tmid, time, routine, user_data ) \ - Empty_directive( tmid, time, routine, user_data ) -#define rtems_timer_reset( tmid ) \ - Empty_directive( tmid ) - -rtems_status_code Empty_directive(); - -#endif -/* end of include file */ diff --git a/testsuites/tmtests/tmoverhd/empty.c b/testsuites/tmtests/tmoverhd/empty.c deleted file mode 100644 index dcfa33d1ed..0000000000 --- a/testsuites/tmtests/tmoverhd/empty.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" - -rtems_timer_service_routine Timer_handler( - rtems_id argument -) -{ -} - -rtems_asr Isr_handler( - rtems_signal_set signals -) -{ -} - -rtems_asr Asr_handler( - rtems_signal_set signals -) -{ -} - -rtems_task task_func() {} - -void null_func() {} - -rtems_status_code Empty_directive() -{ - return( RTEMS_SUCCESSFUL ); -} diff --git a/testsuites/tmtests/tmoverhd/system.h b/testsuites/tmtests/tmoverhd/system.h deleted file mode 100644 index 9133506e7f..0000000000 --- a/testsuites/tmtests/tmoverhd/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* system.h - * - * This include file is used by all tests in the Time Suite. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - - -#include - -#include "coverhd.h" -#include "tmacros.h" - -#include "timesys.h" -#include "timegvar.h" diff --git a/testsuites/tmtests/tmoverhd/testtask.c b/testsuites/tmtests/tmoverhd/testtask.c deleted file mode 100644 index 0586f39a35..0000000000 --- a/testsuites/tmtests/tmoverhd/testtask.c +++ /dev/null @@ -1,1279 +0,0 @@ -/* - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include "system.h" -#undef EXTERN -#define EXTERN -#include "conftbl.h" -#include "gvar.h" - -rtems_unsigned8 Memory_area[ 2048 ]; -rtems_unsigned8 Internal_port_area[ 256 ]; -rtems_unsigned8 External_port_area[ 256 ]; - -rtems_task Task_1( - rtems_task_argument argument -); - -rtems_task Init( - rtems_task_argument argument -) -{ rtems_id id; - rtems_status_code status; - - Set_find_average_overhead( TRUE ); - - puts( "\n\n*** TIME TEST overhead ***" ); - - status = rtems_task_create( - rtems_build_name( 'T', 'A', '1', ' ' ), - 254, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( id, Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - -/* comment out the following include to verify type are correct */ -#include "dumrtems.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_name name; - rtems_unsigned32 index; - rtems_cpu_table cpu_table; - rtems_id id; - rtems_task_priority in_priority; - rtems_task_priority out_priority; - rtems_mode in_mode; - rtems_mode mask; - rtems_mode out_mode; - rtems_unsigned32 note; - rtems_time_of_day time; - rtems_interval timeout; - rtems_signal_set signals; - void *address_1; - rtems_event_set events; - long buffer[ 4 ]; - rtems_unsigned32 count; - rtems_device_major_number major; - rtems_device_minor_number minor; - rtems_unsigned32 io_result; - rtems_unsigned32 error; - rtems_clock_get_options options; - - name = rtems_build_name( 'N', 'A', 'M', 'E' ); - in_priority = 250; - in_mode = RTEMS_NO_PREEMPT; - mask = RTEMS_PREEMPT_MASK; - note = 8; - timeout = 100; - signals = RTEMS_SIGNAL_1 | RTEMS_SIGNAL_3; - major = 10; - minor = 0; - error = 100; - options = 0; - -/* rtems_initialize_executive */ - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_initialize_executive( &BSP_Configuration, &cpu_table ); - end_time = Read_timer(); - - put_time( - "rtems_initialize_executive", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_shutdown_executive */ - - Timer_initialize(); - for ( index=1 ; index <= OPERATION_COUNT ; index++ ) - (void) rtems_shutdown_executive( error ); - end_time = Read_timer(); - - put_time( - "rtems_shutdown_executive", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_create( - name, - in_priority, - 2048, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_task_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_ident( name, RTEMS_SEARCH_ALL_NODES, id ); - end_time = Read_timer(); - - put_time( - "rtems_task_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_start */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_start( id, Task_1, 0 ); - end_time = Read_timer(); - - put_time( - "rtems_task_start", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_restart */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_restart( id, 0 ); - end_time = Read_timer(); - - put_time( - "rtems_task_restart", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_task_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_suspend */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_suspend( id ); - end_time = Read_timer(); - - put_time( - "rtems_task_suspend", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_resume */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_resume( id ); - end_time = Read_timer(); - - put_time( - "rtems_task_resume", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_set_priority */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_set_priority( id, in_priority, &out_priority ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_priority", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_mode */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_mode( in_mode, mask, &out_mode ); - end_time = Read_timer(); - - put_time( - "rtems_task_mode", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_get_note */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_get_note( id, 1, note ); - end_time = Read_timer(); - - put_time( - "rtems_task_get_note", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_set_note */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_set_note( id, 1, note ); - end_time = Read_timer(); - - put_time( - "rtems_task_set_note", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_wake_when */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_wake_when( time ); - end_time = Read_timer(); - - put_time( - "rtems_task_wake_when", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_task_wake_after */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_task_wake_after( timeout ); - end_time = Read_timer(); - - put_time( - "rtems_task_wake_after", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_interrupt_catch */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_interrupt_catch( Isr_handler, 5, address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_interrupt_catch", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_clock_get */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_clock_get( options, time ); - end_time = Read_timer(); - - put_time( - "rtems_clock_get", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_clock_set */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_clock_set( time ); - end_time = Read_timer(); - - put_time( - "rtems_clock_set", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_clock_tick */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_clock_tick(); - end_time = Read_timer(); - - put_time( - "rtems_clock_tick", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -pause(); - -/* rtems_timer_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_create( name, &id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_ident( name, id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_fire_after */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_fire_after( - id, - timeout, - Timer_handler, - NULL - ); - end_time = Read_timer(); - - put_time( - "rtems_timer_fire_after", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_fire_when */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_fire_when( - id, - time, - Timer_handler, - NULL - ); - end_time = Read_timer(); - - put_time( - "rtems_timer_fire_when", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_reset */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_reset( id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_reset", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_timer_cancel */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_timer_cancel( id ); - end_time = Read_timer(); - - put_time( - "rtems_timer_cancel", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_semaphore_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_semaphore_create( - name, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_semaphore_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_semaphore_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_semaphore_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_semaphore_ident( name, RTEMS_SEARCH_ALL_NODES, id ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_semaphore_obtain */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_semaphore_obtain( id, RTEMS_DEFAULT_OPTIONS, timeout ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_obtain", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_semaphore_release */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_semaphore_release( id ); - end_time = Read_timer(); - - put_time( - "rtems_semaphore_release", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_create( - name, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_ident( - name, - RTEMS_SEARCH_ALL_NODES, - id - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_send */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_send( id, (long (*)[4])buffer ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_send", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_urgent */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_urgent( id, (long (*)[4])buffer ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_urgent", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_broadcast */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_broadcast( - id, - (long (*)[4])buffer, - &count - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_broadcast", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_receive */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_receive( - id, - (long (*)[4])buffer, - RTEMS_DEFAULT_OPTIONS, - timeout - ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_receive", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_message_queue_flush */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_message_queue_flush( id, &count ); - end_time = Read_timer(); - - put_time( - "rtems_message_queue_flush", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -pause(); - -/* rtems_event_send */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_event_send( id, events ); - end_time = Read_timer(); - - put_time( - "rtems_event_send", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_event_receive */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_event_receive( - RTEMS_EVENT_16, - RTEMS_DEFAULT_OPTIONS, - timeout, - &events - ); - end_time = Read_timer(); - - put_time( - "rtems_event_receive", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_signal_catch */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_signal_catch( Asr_handler, RTEMS_DEFAULT_MODES ); - end_time = Read_timer(); - - put_time( - "rtems_signal_catch", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_signal_send */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_signal_send( id, signals ); - end_time = Read_timer(); - - put_time( - "rtems_signal_send", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_partition_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_partition_create( - name, - Memory_area, - 2048, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_partition_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_partition_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_partition_ident( name, RTEMS_SEARCH_ALL_NODES, id ); - end_time = Read_timer(); - - put_time( - "rtems_partition_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_partition_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_partition_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_partition_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_partition_get_buffer */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_partition_get_buffer( id, address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_partition_get_buffer", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_partition_return_buffer */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_partition_return_buffer( id, address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_partition_return_buffer", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_region_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_region_create( - name, - Memory_area, - 2048, - 128, - RTEMS_DEFAULT_ATTRIBUTES, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_region_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_region_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_region_ident( name, id ); - end_time = Read_timer(); - - put_time( - "rtems_region_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_region_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_region_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_region_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_region_get_segment */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_region_get_segment( - id, - 243, - RTEMS_DEFAULT_OPTIONS, - timeout, - &address_1 - ); - end_time = Read_timer(); - - put_time( - "rtems_region_get_segment", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_region_return_segment */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_region_return_segment( id, address_1 ); - end_time = Read_timer(); - - put_time( - "rtems_region_return_segment", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_port_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_port_create( - name, - Internal_port_area, - External_port_area, - 0xff, - &id - ); - end_time = Read_timer(); - - put_time( - "rtems_port_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_port_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_port_ident( name, id ); - end_time = Read_timer(); - - put_time( - "rtems_port_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_port_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_port_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_port_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_port_external_to_internal */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_port_external_to_internal( - id, - &External_port_area[ 7 ], - address_1 - ); - end_time = Read_timer(); - - put_time( - "rtems_port_external_to_internal", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_port_internal_to_external */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_port_internal_to_external( - id, - &Internal_port_area[ 7 ], - address_1 - ); - end_time = Read_timer(); - - put_time( - "rtems_port_internal_to_external", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -pause(); - -/* rtems_io_initialize */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_initialize( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_initialize", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_io_open */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_open( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_open", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_io_close */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_close( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_close", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_io_read */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_read( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_read", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_io_write */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_write( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_write", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_io_control */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_io_control( - major, - minor, - address_1, - &io_result - ); - end_time = Read_timer(); - - put_time( - "rtems_io_control", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_fatal_error_occurred */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_fatal_error_occurred( error ); - end_time = Read_timer(); - - put_time( - "rtems_fatal_error_occurred", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_rate_monotonic_create */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_rate_monotonic_create( name, &id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_create", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_rate_monotonic_ident */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_rate_monotonic_ident( name, id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_ident", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_rate_monotonic_delete */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_rate_monotonic_delete( id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_delete", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_rate_monotonic_cancel */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_rate_monotonic_cancel( id ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_cancel", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_rate_monotonic_period */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_rate_monotonic_period( id, timeout ); - end_time = Read_timer(); - - put_time( - "rtems_rate_monotonic_period", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - -/* rtems_multiprocessing_announce */ - - Timer_initialize(); - for ( index = 1 ; index <= OPERATION_COUNT ; index ++ ) - (void) rtems_multiprocessing_announce(); - end_time = Read_timer(); - - put_time( - "rtems_multiprocessing_announce", - end_time, - OPERATION_COUNT, - overhead, - 0 - ); - - puts( "*** END OF TIME OVERHEAD ***\n" ); - - exit( 0 ); -} diff --git a/testsuites/tmtests/tmoverhd/tmoverhd.doc b/testsuites/tmtests/tmoverhd/tmoverhd.doc deleted file mode 100644 index 0de40191c6..0000000000 --- a/testsuites/tmtests/tmoverhd/tmoverhd.doc +++ /dev/null @@ -1,13 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. -# On-Line Applications Research Corporation (OAR). -# All rights assigned to U.S. Government, 1994. -# -# This material may be reproduced by or for the U.S. Government pursuant -# to the copyright license under the clause at DFARS 252.227-7013. This -# notice must appear in all copies of this file and its derivatives. -# - - diff --git a/tools/build/README b/tools/build/README deleted file mode 100644 index 0436fc958d..0000000000 --- a/tools/build/README +++ /dev/null @@ -1,32 +0,0 @@ -# -# $Id$ -# - -Misc. support tools for RTEMS workspaces. -More will be added later as they are converted from Teamware -to CVS. - -install-if-change - Smart install script that also can append suffixes as it - installs (suffixes used for debug and profile variants). - Requires bash or ksh. - -rcs-clean - deletes all files from the current directory that can be - re-created from RCS. Careful to not delete locked files. - May be used by 'gmake clobber' - -lock-directory -unlock-directory - traverse a directory structure making it unwritable. - Useful to keep people from accidentally overwriting - "released" trees if they get confused about which - module they have loaded. - -rtems-glom - glom together all the rtems libraries in order to simplify - the link line used by applications. - Produces rtems.rel. - Not used by the RTEMS src tree at all. - Strictly optional. - diff --git a/tools/build/cklength.c b/tools/build/cklength.c deleted file mode 100644 index 48801e1559..0000000000 --- a/tools/build/cklength.c +++ /dev/null @@ -1,364 +0,0 @@ -/* - * cklength - check the length of lines in a file - * - * This program check to see if the files passed to it on the command line - * contain a line which exceeds the maximum allowable length. The default - * maximum line length is 80. - * - * usage: cklength [ -v ] [ arg ... ] files... - * -l length -- maximum line length - * -v -- verbose - * - * $Id$ - * $Log$ - */ - -#define GETOPTARGS "l:nNv" - -char *USAGE = "\ -usage: cklength [ -v ] [ arg ... ] files... \n\ - -l length -- maximum line length\n\ - -n -- report line numbers for offending lines\n\ - -N -- report line numbers and length for offending lines\n\ - -v -- verbose\n\ -\n\ -Print the name of files which have at least 1 line which exceeds the\n\ -maximum line length. The default maximum line length is 80.\n\ -"; - -#include -#include -#include -#include -#include -#include -#include -#include - -#define BUFFER_SIZE 512 - -#define SUCCESS 0 -#define FAILURE -1 -#define Failed(x) (((int) (x)) == FAILURE) -#define TRUE 1 -#define FALSE 0 -#define STREQ(a,b) (strcmp(a,b) == 0) -#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0])) - -/* - * Definitions for unsigned "ints"; especially for use in data structures - * that will be shared among (potentially) different cpu's (we punt on - * byte ordering problems tho) - */ - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * vars controlled by command line options - */ - -int verbose = FALSE; /* be verbose */ -int report_line_numbers = FALSE; /* report line numbers of offenders */ -int report_line_length = FALSE; /* report line length of offenders */ - -int line_length = 80; /* maximum allowable line length */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind, opterr; -extern int errno; - -char *progname; /* for error() */ - -int process(char *arg); -void error(int errn, ...); -long getparm(char *s, long min, long max, char *msg); - -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* fatal error ; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* fatal error ; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) -int Open(), Read(), Write(); - -int -main(int argc, char **argv, char **env) -{ - register int c; - int showusage = FALSE; /* usage error? */ - int rc = 0; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - opterr = 0; /* we'll report all errors */ - while ((c = getopt(argc, argv, GETOPTARGS)) != EOF) - switch (c) - { - case 'l': /* line length */ - line_length = atoi( optarg ); - if ( line_length < 0 || line_length > BUFFER_SIZE ) - error(ERR_FATAL, "(%d) is illegal line length\n",line_length); - break; - - case 'n': /* toggle report_line_numbers */ - report_line_numbers = ! report_line_numbers; - break; - - case 'N': /* toggle both reports */ - report_line_numbers = ! report_line_numbers; - report_line_length = ! report_line_length; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - /* - * traverse and process the arguments - */ - - for ( ; argv[optind]; optind++) - if (Failed(process(argv[optind]))) - rc = FAILURE; - - return rc; -} - - -/* - * process(arg) - */ - -int -process(char *arg) -{ - FILE *in; - char *bptr; - char buffer[ BUFFER_SIZE ]; - int line_number; - int length; - int count; - int rc = SUCCESS; /* succeed by default */ - - in = fopen( arg, "r" ); - if (!in) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - - count = 0; - - for ( line_number=1 ; ; line_number++ ) { - bptr = fgets( buffer, BUFFER_SIZE, in ); - if (!bptr) - break; - - /* - * Don't count the carriage return. - */ - - length = strlen( buffer ) - 1; - - if ( length <= line_length ) - continue; - - if ( count == 0 ) { - fprintf( stderr, "%s\n", arg ); - if ( !report_line_numbers ) - break; - } - - if ( verbose ) - fprintf( stderr, "TOO LONG:%d: %s\n", line_number, buffer ); - - if ( report_line_numbers ) { - if ( report_line_length ) - fprintf( stderr, "%d: %d\n" , line_number, length ); - else - fprintf( stderr, "%d\n" , line_number ); - } - - count++; - - } - - fclose( in ); - return rc; -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_FATAL bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - -long -getparm(char *s, - long min, - long max, - char *msg) -{ - long val; - - if ( ! strchr("0123456789-", *s)) - { - error(ERR_FATAL, "'%s' is not a number", s); - return min; - } - - val = strtol(s, (char **) NULL, 0); - if ((val < min) || (val > max)) - { - if (min == max) - error(ERR_FATAL, "%s can only be %ld", s, min); - else - error(ERR_FATAL, "%s must be between %ld and %ld", msg, min, max); - } - - return val; -} - - -/* - * Open() - * Perform open(2), returning the file descriptor. Prints - * error message if open fails. - */ - -int -Open(char *file, - int oflag, - int mode) -{ - int O_fd; - - if (Failed(O_fd = open(file, oflag, mode))) - error( - ERR_ERRNO | ERR_FATAL, - "open('%s', 0x%x, 0%o) failed", file, oflag, mode - ); - - return O_fd; -} - -/* - * Read() - * Perform read(2); prints error message if fails. - */ - -int -Read(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = read(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "read(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} - -/* - * Write() - * Perform write(2); prints error message if fails. - */ - -int -Write(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = write(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "write(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} diff --git a/tools/build/eolstrip.c b/tools/build/eolstrip.c deleted file mode 100644 index 0fa7af15d4..0000000000 --- a/tools/build/eolstrip.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - * eolstrip - strip white space from end of lines - * - * This program strips the white space from the end of every line in the - * specified program. - * - * usage: eolstrip [ -v ] [ arg ... ] files... - * -v -- verbose - * - * $Id$ - * $Log$ - */ - -#define GETOPTARGS "vt" - -char *USAGE = "\ -usage: cklength [ -v ] [ arg ... ] files... \n\ - -v -- verbose\n\ - -t -- test only .. DO NOT OVERWRITE FILE!!!\n\ -\n\ -Strip the white space from the end of every line on the list of files.\n\ -"; - -#include -#include -#include -#include -#include -#include -#include -#include - -#define BUFFER_SIZE 2048 -#define MAX_PATH 2048 - -#define SUCCESS 0 -#define FAILURE -1 -#define Failed(x) (((int) (x)) == FAILURE) -#define TRUE 1 -#define FALSE 0 -#define STREQ(a,b) (strcmp(a,b) == 0) -#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0])) - -/* - * Definitions for unsigned "ints"; especially for use in data structures - * that will be shared among (potentially) different cpu's (we punt on - * byte ordering problems tho) - */ - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * vars controlled by command line options - */ - -int verbose = FALSE; /* be verbose */ -int test_only = FALSE; /* test only */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind, opterr; -extern int errno; - -char *progname; /* for error() */ - -int process(char *arg); -void error(int errn, ...); -long getparm(char *s, long min, long max, char *msg); - -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* fatal error ; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* fatal error ; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) -int Open(), Read(), Write(); - -int -main(int argc, char **argv, char **env) -{ - register int c; - int showusage = FALSE; /* usage error? */ - int rc = 0; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - opterr = 0; /* we'll report all errors */ - while ((c = getopt(argc, argv, GETOPTARGS)) != EOF) - switch (c) - { - case 't': /* toggle test only mode */ - test_only = ! test_only; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - /* - * traverse and process the arguments - */ - - for ( ; argv[optind]; optind++) - if (Failed(process(argv[optind]))) - rc = FAILURE; - - return rc; -} - - -/* - * process(arg) - */ - -int -process(char *arg) -{ - FILE *in; - FILE *out = (FILE *) 0; - char outname[ MAX_PATH ]; - char *bptr; - char buffer[ BUFFER_SIZE ]; - int length; - int line_number; - int rc = SUCCESS; /* succeed by default */ - - in = fopen( arg, "r" ); - if (!in) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - - if ( !test_only ) { - sprintf( outname, "%s.eoltmp", arg ); - - out = fopen( outname, "w" ); - if (!out) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - } - - if ( verbose ) - fprintf( stderr, "Processing %s\n", arg ); - - for ( line_number=1 ; ; line_number++ ) { - bptr = fgets( buffer, BUFFER_SIZE, in ); - if (!bptr) - break; - - /* - * Don't count the carriage return. - */ - - length = strlen( buffer ) - 1; - - if ( buffer[ length ] != '\n' ) - error(ERR_ERRNO|ERR_FATAL, "Line %d too long in %s\n", line_number, arg); - - while ( isspace( buffer[ length ] ) ) - buffer[ length-- ] = '\0'; - - if ( test_only ) { - fprintf( stderr, "%s\n", arg ); - break; - } - - fprintf( out, "%s\n", buffer ); - } - - fclose( in ); - if ( !test_only ) { - fclose( out ); - rename( outname, arg ); - } - return rc; -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_FATAL bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - -long -getparm(char *s, - long min, - long max, - char *msg) -{ - long val; - - if ( ! strchr("0123456789-", *s)) - { - error(ERR_FATAL, "'%s' is not a number", s); - return min; - } - - val = strtol(s, (char **) NULL, 0); - if ((val < min) || (val > max)) - { - if (min == max) - error(ERR_FATAL, "%s can only be %ld", s, min); - else - error(ERR_FATAL, "%s must be between %ld and %ld", msg, min, max); - } - - return val; -} - - -/* - * Open() - * Perform open(2), returning the file descriptor. Prints - * error message if open fails. - */ - -int -Open(char *file, - int oflag, - int mode) -{ - int O_fd; - - if (Failed(O_fd = open(file, oflag, mode))) - error( - ERR_ERRNO | ERR_FATAL, - "open('%s', 0x%x, 0%o) failed", file, oflag, mode - ); - - return O_fd; -} - -/* - * Read() - * Perform read(2); prints error message if fails. - */ - -int -Read(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = read(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "read(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} - -/* - * Write() - * Perform write(2); prints error message if fails. - */ - -int -Write(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = write(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "write(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} diff --git a/tools/build/packhex.c b/tools/build/packhex.c deleted file mode 100644 index ddd010c4a9..0000000000 --- a/tools/build/packhex.c +++ /dev/null @@ -1,513 +0,0 @@ - -/***** P A C K H E X . C ************************************************ - * - * Packhex is a hex-file compaction utility. It attempts to concatenate - * hex records to produce more size-efficient packaging. - * - * Limitations: Input files must be correctly formatted. This utility - * is not robust enough to detect hex-record formatting - * errors. - * - * Published: 5/93 Embedded Systems magazine - * - * Compiler: Microsoft C 6.0 - * cl /F 1000 packhex.c - * - * - * $Id$ - * - **************************************************************************/ - - -/* #define SMALLER_RECORDS */ -#ifdef SMALLER_RECORDS -#define MAX_LEN_S1_RECS 128 -#define MAX_LEN_S2_RECS 128 -#define MAX_LEN_S3_RECS 128 -#else -#define MAX_LEN_S1_RECS 252 -#define MAX_LEN_S2_RECS 251 -#define MAX_LEN_S3_RECS 250 -#endif - - -/*--------------------------------- includes ---------------------------------*/ - -#include -#include -#include - -#if defined(__unix__) && !defined(EXIT_FAILURE) -#define EXIT_FAILURE -1 -#define EXIT_SUCCESS 0 -#endif - -/*--------------------------------- defines ----------------------------------*/ - -#define YES 1 -#define MAX_LINE_SIZE 600 -#define EOS '\0' - - -/*---------------------------------- macros ----------------------------------*/ - -/* Convert ASCII hexadecimal digit to value. */ - -#define HEX_DIGIT( C ) ( ( ( ( C ) > '9' ) ? ( C ) + 25 : ( C ) ) & 0xF ) - - -/*--------------------------------- typedefs ---------------------------------*/ - -typedef unsigned char Boolean; -typedef unsigned char Uchar; -typedef unsigned int Uint; -typedef unsigned long Ulong; - -typedef struct /* Functions and constant returning Hex-record vital stats. */ -{ - Boolean ( *is_data_record )( char * ); - Ulong ( *get_address )( char * ); - Uint ( *get_data_count )( char * ); - const Uint max_data_count; - char *( *get_data_start )( char * ); - void ( *put_data_record )( Uint, Ulong, char * ); -} Rec_vitals; - - -/*--------------------------- function prototypes ----------------------------*/ - -Rec_vitals * identify_first_data_record( char * ); -Ulong get_ndigit_hex( char *, int ); - - -/*----------------------------- Intel Hex format -----------------------------*/ - -/* - * Intel Hex data-record layout - * - * :aabbbbccd...dee - * - * : - header character - * aa - record data byte count, a 2-digit hex value - * bbbb - record address, a 4-digit hex value - * cc - record type, a 2-digit hex value: - * "00" is a data record - * "01" is an end-of-data record - * "02" is an extended-address record - * "03" is a start record - * d...d - data (always an even number of chars) - * ee - record checksum, a 2-digit hex value - * checksum = 2's complement - * [ (sum of bytes: aabbbbccd...d) modulo 256 ] - */ - - -Boolean is_intel_data_rec( char * rec_str ) -{ - return( ( rec_str[ 0 ] == ':' ) && ( rec_str[ 8 ] == '0' ) ); -} - -Uint get_intel_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 1, 2 ) ); -} - -Ulong get_intel_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 3, 4 ) ); -} - -char * get_intel_rec_data_start( char * rec_str ) -{ - return( rec_str + 9 ); -} - -void put_intel_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = count + ( address >> 8 & 0xff ) + ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - ":%02X%04lX00%s%02X\n", count, address, data_str, (~sum + 1) & 0xff - ); -} - - -Rec_vitals intel_hex = -{ - is_intel_data_rec, - get_intel_rec_address, - get_intel_rec_data_count, - 255, /* Maximum data bytes in a record. */ - get_intel_rec_data_start, - put_intel_data_rec -}; - - -/*------------------------- Motorola S1-record format ------------------------*/ - -/* - * Motorola S-record data-record layout - * - * Sabbc...cd...dee - * - * S - header character - * a - record type, a 1-digit value: - * "0" is a header record - * "1" is a 2-byte-address data record - * "2" is a 3-byte-address data record - * "3" is a 4-byte-address data record - * "7" is a 4-byte-address end-of-data record - * "8" is a 3-byte-address end-of-data record - * "9" is a 2-byte-address end-of-data record - * bb - record length in bytes, a 2-digit hex value - * (record length doesn't count the header/type - * chars and checksum byte) - * c...c - record address, a 4-, 6-, or 8-digit value, - * depending on record type - * d...d - data (always an even number of chars) - * ee - record checksum, a 2-digit hex value - * checksum = 1's complement - * [ (sum of all bytes: bbc..cd...d) modulo 256 ] - */ - -#define S1_COUNT_OFFSET 3 - - -Boolean is_moto_s1_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '1' ) ); -} - -Uint get_moto_s1_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S1_COUNT_OFFSET ); -} - -Ulong get_moto_s1_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 4 ) ); -} - -char * get_moto_s1_rec_data_start( char * rec_str ) -{ - return( rec_str + 8 ); -} - -void put_moto_s1_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S1_COUNT_OFFSET + count + - ( address >> 8 & 0xff ) + ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S1%02X%04lX%s%02X\n", - count + S1_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s1_rec = -{ - is_moto_s1_data_rec, - get_moto_s1_rec_address, - get_moto_s1_rec_data_count, - MAX_LEN_S1_RECS, /* Maximum data bytes in a record. */ - get_moto_s1_rec_data_start, - put_moto_s1_data_rec -}; - - -/*------------------------- Motorola S2-record format ------------------------*/ - -#define S2_COUNT_OFFSET 4 - -Boolean is_moto_s2_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '2' ) ); -} - -Uint get_moto_s2_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S2_COUNT_OFFSET ); -} - -Ulong get_moto_s2_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 6 ) ); -} - -char * get_moto_s2_rec_data_start( char * rec_str ) -{ - return( rec_str + 10 ); -} - -void put_moto_s2_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S2_COUNT_OFFSET + count + ( address >> 16 & 0xff ) + - ( address >> 8 & 0xff ) + - ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S2%02X%06lX%s%02X\n", - count + S2_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s2_rec = -{ - is_moto_s2_data_rec, - get_moto_s2_rec_address, - get_moto_s2_rec_data_count, - MAX_LEN_S2_RECS, /* Maximum data bytes in a record. */ - get_moto_s2_rec_data_start, - put_moto_s2_data_rec -}; - - -/*------------------------- Motorola S3-record format ------------------------*/ - -#define S3_COUNT_OFFSET 5 - -Boolean is_moto_s3_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '3' ) ); -} - -Uint get_moto_s3_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S3_COUNT_OFFSET ); -} - -Ulong get_moto_s3_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 8 ) ); -} - -char * get_moto_s3_rec_data_start( char * rec_str ) -{ - return( rec_str + 12 ); -} - -void put_moto_s3_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S3_COUNT_OFFSET + count + ( address >> 24 & 0xff ) + - ( address >> 16 & 0xff ) + - ( address >> 8 & 0xff ) + - ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S3%02X%08lX%s%02X\n", - count + S3_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s3_rec = -{ - is_moto_s3_data_rec, - get_moto_s3_rec_address, - get_moto_s3_rec_data_count, - MAX_LEN_S3_RECS, /* Maximum data bytes in a record. */ - get_moto_s3_rec_data_start, - put_moto_s3_data_rec -}; - - -/*-------------------- Put your favorite hex format here ---------------------*/ - -/* - * * * * The following is a template for an additional hex format: * * * - * - * - * Boolean is_X_data_rec( char * rec_str ) {} - * - * Uint get_X_rec_data_count( char * rec_str ) {} - * - * Ulong get_X_rec_address( char * rec_str ) {} - * - * char * get_X_rec_data_start( char * rec_str ) {} - * - * void put_X_data_rec( Uint count, Ulong address, char * data_str ) {} - * - * Rec_vitals X_rec = - * { - * is_X_data_rec, - * get_X_rec_address, - * get_X_rec_data_count, - * MAXIMUM DATA BYTES IN A RECORD, - * get_X_rec_data_start, - * put_X_data_rec - * }; - * - */ - -/*----------------------------------------------------------------------------*/ - - -/* - * Put address of additional Rec_vitals structures - * in this array, before the NULL entry. - */ - -Rec_vitals *formats[] = -{ - &intel_hex, - &motorola_s1_rec, - &motorola_s2_rec, - &motorola_s3_rec, - ( Rec_vitals * ) NULL -}; - - -/**** main ***************************************************************** -* -* -* Expects: Nothing (no command-line parameters). -* -* Returns: Exit status (EXIT_SUCCESS or EXIT_FAILURE). -* -* Reads hex records on the standard input and attempts to -* splice adjacent data fields together. Results appear on -* the standard output. -* -*******************************************************************************/ - -void main( void ) -{ - - char inbuff[ MAX_LINE_SIZE ], outbuff[ MAX_LINE_SIZE ]; - char *in_dptr, *out_dptr; - int d_total, d_count, d_excess, n; - Ulong in_rec_addr, out_rec_addr = 0; - Rec_vitals *rptr; - - - /* Sift through file until first hex record is identified. */ - if ( ( rptr = identify_first_data_record( inbuff ) ) == NULL ) - { - fputs( "No hex records found.\n", stderr ); - exit( EXIT_FAILURE ); - } - - - /* Attempt data-record splicing until end-of-file is reached. */ - d_total = 0; - do - { - if ( rptr->is_data_record( inbuff ) == YES ) - { /* Input record is a data record. */ - d_count = rptr->get_data_count( inbuff ); - in_rec_addr = rptr->get_address( inbuff ); - in_dptr = rptr->get_data_start( inbuff ); - - if ( d_total == 0 || in_rec_addr != out_rec_addr + d_total ) - { /* Begin a new output record. */ - if ( d_total != 0 ) - rptr->put_data_record( d_total, out_rec_addr, outbuff ); - out_dptr = outbuff; - n = d_total = d_count; - out_rec_addr = in_rec_addr; - } - else if - ( ( d_excess = d_total + d_count - rptr->max_data_count ) > 0 ) - { /* Output a maximum-length record, then start a new record. */ - strncat( outbuff, in_dptr, 2 * ( d_count - d_excess ) ); - rptr->put_data_record( - rptr->max_data_count, out_rec_addr, outbuff - ); - in_dptr += 2 * ( d_count - d_excess ); - out_dptr = outbuff; - n = d_total = d_excess; - out_rec_addr += rptr->max_data_count; - } - else - { /* Append input record's data field with accumulated data. */ - out_dptr = outbuff + ( 2 * d_total ); - d_total += n = d_count; - } - strncpy( out_dptr, in_dptr, 2 * n ); - out_dptr[ 2 * n ] = EOS; - } - else - { /* Not a data record; - * flush accumulated data then echo non-data record. - */ - if ( d_total != 0 ) - { - rptr->put_data_record( d_total, out_rec_addr, outbuff ); - d_total = 0; - } - puts( inbuff ); - } - } while ( gets( inbuff ) != NULL ); - - - exit( EXIT_SUCCESS ); - -} - - -/**** identify_first_data_record ******************************************* -* -* Expects: Pointer to hex-record line buffer. -* -* Returns: Pointer to hex-record structure (NULL if no match found). -* -* Reads the standard input, line by line, searching for a valid -* record header character. If a valid header is found, a pointer -* to the hex-record's type structure is returned, otherwise NULL. -* -* The input-stream pointer is left pointing to the first valid hex record. -* -*******************************************************************************/ - -Rec_vitals * identify_first_data_record( char * buff_ptr ) -{ - Rec_vitals ** ptr; - - while ( gets( buff_ptr ) != NULL ) - { - for ( ptr = formats ; *ptr != ( Rec_vitals * ) NULL ; ptr++ ) - if ( ( *ptr )->is_data_record( buff_ptr ) == YES ) - return( *ptr ); /* Successful return. */ - - puts( buff_ptr ); /* Echo non-hex-record line. */ - } - - return( ( Rec_vitals * ) NULL ); /* Unsuccessful return. */ -} - - -/**** get_ndigit_hex ******************************************************* -* -* Expects: Pointer to first ASCII hexadecimal digit, number of digits. -* -* Returns: Value of hexadecimal string as an unsigned long. -* -*******************************************************************************/ - -Ulong get_ndigit_hex( char * cptr, int digits ) -{ - Ulong value; - - for ( value = 0 ; --digits >= 0 ; cptr++ ) - value = ( value * 16L ) + HEX_DIGIT( *cptr ); - - return( value ); -} diff --git a/tools/build/scripts/README b/tools/build/scripts/README deleted file mode 100644 index 0436fc958d..0000000000 --- a/tools/build/scripts/README +++ /dev/null @@ -1,32 +0,0 @@ -# -# $Id$ -# - -Misc. support tools for RTEMS workspaces. -More will be added later as they are converted from Teamware -to CVS. - -install-if-change - Smart install script that also can append suffixes as it - installs (suffixes used for debug and profile variants). - Requires bash or ksh. - -rcs-clean - deletes all files from the current directory that can be - re-created from RCS. Careful to not delete locked files. - May be used by 'gmake clobber' - -lock-directory -unlock-directory - traverse a directory structure making it unwritable. - Useful to keep people from accidentally overwriting - "released" trees if they get confused about which - module they have loaded. - -rtems-glom - glom together all the rtems libraries in order to simplify - the link line used by applications. - Produces rtems.rel. - Not used by the RTEMS src tree at all. - Strictly optional. - diff --git a/tools/build/src/cklength.c b/tools/build/src/cklength.c deleted file mode 100644 index 48801e1559..0000000000 --- a/tools/build/src/cklength.c +++ /dev/null @@ -1,364 +0,0 @@ -/* - * cklength - check the length of lines in a file - * - * This program check to see if the files passed to it on the command line - * contain a line which exceeds the maximum allowable length. The default - * maximum line length is 80. - * - * usage: cklength [ -v ] [ arg ... ] files... - * -l length -- maximum line length - * -v -- verbose - * - * $Id$ - * $Log$ - */ - -#define GETOPTARGS "l:nNv" - -char *USAGE = "\ -usage: cklength [ -v ] [ arg ... ] files... \n\ - -l length -- maximum line length\n\ - -n -- report line numbers for offending lines\n\ - -N -- report line numbers and length for offending lines\n\ - -v -- verbose\n\ -\n\ -Print the name of files which have at least 1 line which exceeds the\n\ -maximum line length. The default maximum line length is 80.\n\ -"; - -#include -#include -#include -#include -#include -#include -#include -#include - -#define BUFFER_SIZE 512 - -#define SUCCESS 0 -#define FAILURE -1 -#define Failed(x) (((int) (x)) == FAILURE) -#define TRUE 1 -#define FALSE 0 -#define STREQ(a,b) (strcmp(a,b) == 0) -#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0])) - -/* - * Definitions for unsigned "ints"; especially for use in data structures - * that will be shared among (potentially) different cpu's (we punt on - * byte ordering problems tho) - */ - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * vars controlled by command line options - */ - -int verbose = FALSE; /* be verbose */ -int report_line_numbers = FALSE; /* report line numbers of offenders */ -int report_line_length = FALSE; /* report line length of offenders */ - -int line_length = 80; /* maximum allowable line length */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind, opterr; -extern int errno; - -char *progname; /* for error() */ - -int process(char *arg); -void error(int errn, ...); -long getparm(char *s, long min, long max, char *msg); - -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* fatal error ; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* fatal error ; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) -int Open(), Read(), Write(); - -int -main(int argc, char **argv, char **env) -{ - register int c; - int showusage = FALSE; /* usage error? */ - int rc = 0; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - opterr = 0; /* we'll report all errors */ - while ((c = getopt(argc, argv, GETOPTARGS)) != EOF) - switch (c) - { - case 'l': /* line length */ - line_length = atoi( optarg ); - if ( line_length < 0 || line_length > BUFFER_SIZE ) - error(ERR_FATAL, "(%d) is illegal line length\n",line_length); - break; - - case 'n': /* toggle report_line_numbers */ - report_line_numbers = ! report_line_numbers; - break; - - case 'N': /* toggle both reports */ - report_line_numbers = ! report_line_numbers; - report_line_length = ! report_line_length; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - /* - * traverse and process the arguments - */ - - for ( ; argv[optind]; optind++) - if (Failed(process(argv[optind]))) - rc = FAILURE; - - return rc; -} - - -/* - * process(arg) - */ - -int -process(char *arg) -{ - FILE *in; - char *bptr; - char buffer[ BUFFER_SIZE ]; - int line_number; - int length; - int count; - int rc = SUCCESS; /* succeed by default */ - - in = fopen( arg, "r" ); - if (!in) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - - count = 0; - - for ( line_number=1 ; ; line_number++ ) { - bptr = fgets( buffer, BUFFER_SIZE, in ); - if (!bptr) - break; - - /* - * Don't count the carriage return. - */ - - length = strlen( buffer ) - 1; - - if ( length <= line_length ) - continue; - - if ( count == 0 ) { - fprintf( stderr, "%s\n", arg ); - if ( !report_line_numbers ) - break; - } - - if ( verbose ) - fprintf( stderr, "TOO LONG:%d: %s\n", line_number, buffer ); - - if ( report_line_numbers ) { - if ( report_line_length ) - fprintf( stderr, "%d: %d\n" , line_number, length ); - else - fprintf( stderr, "%d\n" , line_number ); - } - - count++; - - } - - fclose( in ); - return rc; -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_FATAL bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - -long -getparm(char *s, - long min, - long max, - char *msg) -{ - long val; - - if ( ! strchr("0123456789-", *s)) - { - error(ERR_FATAL, "'%s' is not a number", s); - return min; - } - - val = strtol(s, (char **) NULL, 0); - if ((val < min) || (val > max)) - { - if (min == max) - error(ERR_FATAL, "%s can only be %ld", s, min); - else - error(ERR_FATAL, "%s must be between %ld and %ld", msg, min, max); - } - - return val; -} - - -/* - * Open() - * Perform open(2), returning the file descriptor. Prints - * error message if open fails. - */ - -int -Open(char *file, - int oflag, - int mode) -{ - int O_fd; - - if (Failed(O_fd = open(file, oflag, mode))) - error( - ERR_ERRNO | ERR_FATAL, - "open('%s', 0x%x, 0%o) failed", file, oflag, mode - ); - - return O_fd; -} - -/* - * Read() - * Perform read(2); prints error message if fails. - */ - -int -Read(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = read(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "read(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} - -/* - * Write() - * Perform write(2); prints error message if fails. - */ - -int -Write(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = write(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "write(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} diff --git a/tools/build/src/eolstrip.c b/tools/build/src/eolstrip.c deleted file mode 100644 index 0fa7af15d4..0000000000 --- a/tools/build/src/eolstrip.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - * eolstrip - strip white space from end of lines - * - * This program strips the white space from the end of every line in the - * specified program. - * - * usage: eolstrip [ -v ] [ arg ... ] files... - * -v -- verbose - * - * $Id$ - * $Log$ - */ - -#define GETOPTARGS "vt" - -char *USAGE = "\ -usage: cklength [ -v ] [ arg ... ] files... \n\ - -v -- verbose\n\ - -t -- test only .. DO NOT OVERWRITE FILE!!!\n\ -\n\ -Strip the white space from the end of every line on the list of files.\n\ -"; - -#include -#include -#include -#include -#include -#include -#include -#include - -#define BUFFER_SIZE 2048 -#define MAX_PATH 2048 - -#define SUCCESS 0 -#define FAILURE -1 -#define Failed(x) (((int) (x)) == FAILURE) -#define TRUE 1 -#define FALSE 0 -#define STREQ(a,b) (strcmp(a,b) == 0) -#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0])) - -/* - * Definitions for unsigned "ints"; especially for use in data structures - * that will be shared among (potentially) different cpu's (we punt on - * byte ordering problems tho) - */ - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * vars controlled by command line options - */ - -int verbose = FALSE; /* be verbose */ -int test_only = FALSE; /* test only */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind, opterr; -extern int errno; - -char *progname; /* for error() */ - -int process(char *arg); -void error(int errn, ...); -long getparm(char *s, long min, long max, char *msg); - -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* fatal error ; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* fatal error ; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) -int Open(), Read(), Write(); - -int -main(int argc, char **argv, char **env) -{ - register int c; - int showusage = FALSE; /* usage error? */ - int rc = 0; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - opterr = 0; /* we'll report all errors */ - while ((c = getopt(argc, argv, GETOPTARGS)) != EOF) - switch (c) - { - case 't': /* toggle test only mode */ - test_only = ! test_only; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - /* - * traverse and process the arguments - */ - - for ( ; argv[optind]; optind++) - if (Failed(process(argv[optind]))) - rc = FAILURE; - - return rc; -} - - -/* - * process(arg) - */ - -int -process(char *arg) -{ - FILE *in; - FILE *out = (FILE *) 0; - char outname[ MAX_PATH ]; - char *bptr; - char buffer[ BUFFER_SIZE ]; - int length; - int line_number; - int rc = SUCCESS; /* succeed by default */ - - in = fopen( arg, "r" ); - if (!in) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - - if ( !test_only ) { - sprintf( outname, "%s.eoltmp", arg ); - - out = fopen( outname, "w" ); - if (!out) - error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg ); - } - - if ( verbose ) - fprintf( stderr, "Processing %s\n", arg ); - - for ( line_number=1 ; ; line_number++ ) { - bptr = fgets( buffer, BUFFER_SIZE, in ); - if (!bptr) - break; - - /* - * Don't count the carriage return. - */ - - length = strlen( buffer ) - 1; - - if ( buffer[ length ] != '\n' ) - error(ERR_ERRNO|ERR_FATAL, "Line %d too long in %s\n", line_number, arg); - - while ( isspace( buffer[ length ] ) ) - buffer[ length-- ] = '\0'; - - if ( test_only ) { - fprintf( stderr, "%s\n", arg ); - break; - } - - fprintf( out, "%s\n", buffer ); - } - - fclose( in ); - if ( !test_only ) { - fclose( out ); - rename( outname, arg ); - } - return rc; -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_FATAL bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - -long -getparm(char *s, - long min, - long max, - char *msg) -{ - long val; - - if ( ! strchr("0123456789-", *s)) - { - error(ERR_FATAL, "'%s' is not a number", s); - return min; - } - - val = strtol(s, (char **) NULL, 0); - if ((val < min) || (val > max)) - { - if (min == max) - error(ERR_FATAL, "%s can only be %ld", s, min); - else - error(ERR_FATAL, "%s must be between %ld and %ld", msg, min, max); - } - - return val; -} - - -/* - * Open() - * Perform open(2), returning the file descriptor. Prints - * error message if open fails. - */ - -int -Open(char *file, - int oflag, - int mode) -{ - int O_fd; - - if (Failed(O_fd = open(file, oflag, mode))) - error( - ERR_ERRNO | ERR_FATAL, - "open('%s', 0x%x, 0%o) failed", file, oflag, mode - ); - - return O_fd; -} - -/* - * Read() - * Perform read(2); prints error message if fails. - */ - -int -Read(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = read(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "read(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} - -/* - * Write() - * Perform write(2); prints error message if fails. - */ - -int -Write(int file, - char *buffer, - unsigned int count) -{ - int nbytes; - - if (Failed(nbytes = write(file, buffer, count))) - error( - ERR_ERRNO | ERR_FATAL, - "write(%d, 0x%x, %d) failed", file, buffer, count - ); - - return nbytes; -} diff --git a/tools/build/src/packhex.c b/tools/build/src/packhex.c deleted file mode 100644 index ddd010c4a9..0000000000 --- a/tools/build/src/packhex.c +++ /dev/null @@ -1,513 +0,0 @@ - -/***** P A C K H E X . C ************************************************ - * - * Packhex is a hex-file compaction utility. It attempts to concatenate - * hex records to produce more size-efficient packaging. - * - * Limitations: Input files must be correctly formatted. This utility - * is not robust enough to detect hex-record formatting - * errors. - * - * Published: 5/93 Embedded Systems magazine - * - * Compiler: Microsoft C 6.0 - * cl /F 1000 packhex.c - * - * - * $Id$ - * - **************************************************************************/ - - -/* #define SMALLER_RECORDS */ -#ifdef SMALLER_RECORDS -#define MAX_LEN_S1_RECS 128 -#define MAX_LEN_S2_RECS 128 -#define MAX_LEN_S3_RECS 128 -#else -#define MAX_LEN_S1_RECS 252 -#define MAX_LEN_S2_RECS 251 -#define MAX_LEN_S3_RECS 250 -#endif - - -/*--------------------------------- includes ---------------------------------*/ - -#include -#include -#include - -#if defined(__unix__) && !defined(EXIT_FAILURE) -#define EXIT_FAILURE -1 -#define EXIT_SUCCESS 0 -#endif - -/*--------------------------------- defines ----------------------------------*/ - -#define YES 1 -#define MAX_LINE_SIZE 600 -#define EOS '\0' - - -/*---------------------------------- macros ----------------------------------*/ - -/* Convert ASCII hexadecimal digit to value. */ - -#define HEX_DIGIT( C ) ( ( ( ( C ) > '9' ) ? ( C ) + 25 : ( C ) ) & 0xF ) - - -/*--------------------------------- typedefs ---------------------------------*/ - -typedef unsigned char Boolean; -typedef unsigned char Uchar; -typedef unsigned int Uint; -typedef unsigned long Ulong; - -typedef struct /* Functions and constant returning Hex-record vital stats. */ -{ - Boolean ( *is_data_record )( char * ); - Ulong ( *get_address )( char * ); - Uint ( *get_data_count )( char * ); - const Uint max_data_count; - char *( *get_data_start )( char * ); - void ( *put_data_record )( Uint, Ulong, char * ); -} Rec_vitals; - - -/*--------------------------- function prototypes ----------------------------*/ - -Rec_vitals * identify_first_data_record( char * ); -Ulong get_ndigit_hex( char *, int ); - - -/*----------------------------- Intel Hex format -----------------------------*/ - -/* - * Intel Hex data-record layout - * - * :aabbbbccd...dee - * - * : - header character - * aa - record data byte count, a 2-digit hex value - * bbbb - record address, a 4-digit hex value - * cc - record type, a 2-digit hex value: - * "00" is a data record - * "01" is an end-of-data record - * "02" is an extended-address record - * "03" is a start record - * d...d - data (always an even number of chars) - * ee - record checksum, a 2-digit hex value - * checksum = 2's complement - * [ (sum of bytes: aabbbbccd...d) modulo 256 ] - */ - - -Boolean is_intel_data_rec( char * rec_str ) -{ - return( ( rec_str[ 0 ] == ':' ) && ( rec_str[ 8 ] == '0' ) ); -} - -Uint get_intel_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 1, 2 ) ); -} - -Ulong get_intel_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 3, 4 ) ); -} - -char * get_intel_rec_data_start( char * rec_str ) -{ - return( rec_str + 9 ); -} - -void put_intel_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = count + ( address >> 8 & 0xff ) + ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - ":%02X%04lX00%s%02X\n", count, address, data_str, (~sum + 1) & 0xff - ); -} - - -Rec_vitals intel_hex = -{ - is_intel_data_rec, - get_intel_rec_address, - get_intel_rec_data_count, - 255, /* Maximum data bytes in a record. */ - get_intel_rec_data_start, - put_intel_data_rec -}; - - -/*------------------------- Motorola S1-record format ------------------------*/ - -/* - * Motorola S-record data-record layout - * - * Sabbc...cd...dee - * - * S - header character - * a - record type, a 1-digit value: - * "0" is a header record - * "1" is a 2-byte-address data record - * "2" is a 3-byte-address data record - * "3" is a 4-byte-address data record - * "7" is a 4-byte-address end-of-data record - * "8" is a 3-byte-address end-of-data record - * "9" is a 2-byte-address end-of-data record - * bb - record length in bytes, a 2-digit hex value - * (record length doesn't count the header/type - * chars and checksum byte) - * c...c - record address, a 4-, 6-, or 8-digit value, - * depending on record type - * d...d - data (always an even number of chars) - * ee - record checksum, a 2-digit hex value - * checksum = 1's complement - * [ (sum of all bytes: bbc..cd...d) modulo 256 ] - */ - -#define S1_COUNT_OFFSET 3 - - -Boolean is_moto_s1_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '1' ) ); -} - -Uint get_moto_s1_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S1_COUNT_OFFSET ); -} - -Ulong get_moto_s1_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 4 ) ); -} - -char * get_moto_s1_rec_data_start( char * rec_str ) -{ - return( rec_str + 8 ); -} - -void put_moto_s1_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S1_COUNT_OFFSET + count + - ( address >> 8 & 0xff ) + ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S1%02X%04lX%s%02X\n", - count + S1_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s1_rec = -{ - is_moto_s1_data_rec, - get_moto_s1_rec_address, - get_moto_s1_rec_data_count, - MAX_LEN_S1_RECS, /* Maximum data bytes in a record. */ - get_moto_s1_rec_data_start, - put_moto_s1_data_rec -}; - - -/*------------------------- Motorola S2-record format ------------------------*/ - -#define S2_COUNT_OFFSET 4 - -Boolean is_moto_s2_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '2' ) ); -} - -Uint get_moto_s2_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S2_COUNT_OFFSET ); -} - -Ulong get_moto_s2_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 6 ) ); -} - -char * get_moto_s2_rec_data_start( char * rec_str ) -{ - return( rec_str + 10 ); -} - -void put_moto_s2_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S2_COUNT_OFFSET + count + ( address >> 16 & 0xff ) + - ( address >> 8 & 0xff ) + - ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S2%02X%06lX%s%02X\n", - count + S2_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s2_rec = -{ - is_moto_s2_data_rec, - get_moto_s2_rec_address, - get_moto_s2_rec_data_count, - MAX_LEN_S2_RECS, /* Maximum data bytes in a record. */ - get_moto_s2_rec_data_start, - put_moto_s2_data_rec -}; - - -/*------------------------- Motorola S3-record format ------------------------*/ - -#define S3_COUNT_OFFSET 5 - -Boolean is_moto_s3_data_rec( char * rec_str ) -{ - return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '3' ) ); -} - -Uint get_moto_s3_rec_data_count( char * rec_str ) -{ - return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S3_COUNT_OFFSET ); -} - -Ulong get_moto_s3_rec_address( char * rec_str ) -{ - return( get_ndigit_hex( rec_str + 4, 8 ) ); -} - -char * get_moto_s3_rec_data_start( char * rec_str ) -{ - return( rec_str + 12 ); -} - -void put_moto_s3_data_rec( Uint count, Ulong address, char * data_str ) -{ - char *ptr; - Uint sum = S3_COUNT_OFFSET + count + ( address >> 24 & 0xff ) + - ( address >> 16 & 0xff ) + - ( address >> 8 & 0xff ) + - ( address & 0xff ); - - for ( ptr = data_str ; *ptr != EOS ; ptr += 2 ) - sum += ( Uint ) get_ndigit_hex( ptr, 2 ); - - printf( - "S3%02X%08lX%s%02X\n", - count + S3_COUNT_OFFSET, address, data_str, ~sum & 0xff - ); -} - - -Rec_vitals motorola_s3_rec = -{ - is_moto_s3_data_rec, - get_moto_s3_rec_address, - get_moto_s3_rec_data_count, - MAX_LEN_S3_RECS, /* Maximum data bytes in a record. */ - get_moto_s3_rec_data_start, - put_moto_s3_data_rec -}; - - -/*-------------------- Put your favorite hex format here ---------------------*/ - -/* - * * * * The following is a template for an additional hex format: * * * - * - * - * Boolean is_X_data_rec( char * rec_str ) {} - * - * Uint get_X_rec_data_count( char * rec_str ) {} - * - * Ulong get_X_rec_address( char * rec_str ) {} - * - * char * get_X_rec_data_start( char * rec_str ) {} - * - * void put_X_data_rec( Uint count, Ulong address, char * data_str ) {} - * - * Rec_vitals X_rec = - * { - * is_X_data_rec, - * get_X_rec_address, - * get_X_rec_data_count, - * MAXIMUM DATA BYTES IN A RECORD, - * get_X_rec_data_start, - * put_X_data_rec - * }; - * - */ - -/*----------------------------------------------------------------------------*/ - - -/* - * Put address of additional Rec_vitals structures - * in this array, before the NULL entry. - */ - -Rec_vitals *formats[] = -{ - &intel_hex, - &motorola_s1_rec, - &motorola_s2_rec, - &motorola_s3_rec, - ( Rec_vitals * ) NULL -}; - - -/**** main ***************************************************************** -* -* -* Expects: Nothing (no command-line parameters). -* -* Returns: Exit status (EXIT_SUCCESS or EXIT_FAILURE). -* -* Reads hex records on the standard input and attempts to -* splice adjacent data fields together. Results appear on -* the standard output. -* -*******************************************************************************/ - -void main( void ) -{ - - char inbuff[ MAX_LINE_SIZE ], outbuff[ MAX_LINE_SIZE ]; - char *in_dptr, *out_dptr; - int d_total, d_count, d_excess, n; - Ulong in_rec_addr, out_rec_addr = 0; - Rec_vitals *rptr; - - - /* Sift through file until first hex record is identified. */ - if ( ( rptr = identify_first_data_record( inbuff ) ) == NULL ) - { - fputs( "No hex records found.\n", stderr ); - exit( EXIT_FAILURE ); - } - - - /* Attempt data-record splicing until end-of-file is reached. */ - d_total = 0; - do - { - if ( rptr->is_data_record( inbuff ) == YES ) - { /* Input record is a data record. */ - d_count = rptr->get_data_count( inbuff ); - in_rec_addr = rptr->get_address( inbuff ); - in_dptr = rptr->get_data_start( inbuff ); - - if ( d_total == 0 || in_rec_addr != out_rec_addr + d_total ) - { /* Begin a new output record. */ - if ( d_total != 0 ) - rptr->put_data_record( d_total, out_rec_addr, outbuff ); - out_dptr = outbuff; - n = d_total = d_count; - out_rec_addr = in_rec_addr; - } - else if - ( ( d_excess = d_total + d_count - rptr->max_data_count ) > 0 ) - { /* Output a maximum-length record, then start a new record. */ - strncat( outbuff, in_dptr, 2 * ( d_count - d_excess ) ); - rptr->put_data_record( - rptr->max_data_count, out_rec_addr, outbuff - ); - in_dptr += 2 * ( d_count - d_excess ); - out_dptr = outbuff; - n = d_total = d_excess; - out_rec_addr += rptr->max_data_count; - } - else - { /* Append input record's data field with accumulated data. */ - out_dptr = outbuff + ( 2 * d_total ); - d_total += n = d_count; - } - strncpy( out_dptr, in_dptr, 2 * n ); - out_dptr[ 2 * n ] = EOS; - } - else - { /* Not a data record; - * flush accumulated data then echo non-data record. - */ - if ( d_total != 0 ) - { - rptr->put_data_record( d_total, out_rec_addr, outbuff ); - d_total = 0; - } - puts( inbuff ); - } - } while ( gets( inbuff ) != NULL ); - - - exit( EXIT_SUCCESS ); - -} - - -/**** identify_first_data_record ******************************************* -* -* Expects: Pointer to hex-record line buffer. -* -* Returns: Pointer to hex-record structure (NULL if no match found). -* -* Reads the standard input, line by line, searching for a valid -* record header character. If a valid header is found, a pointer -* to the hex-record's type structure is returned, otherwise NULL. -* -* The input-stream pointer is left pointing to the first valid hex record. -* -*******************************************************************************/ - -Rec_vitals * identify_first_data_record( char * buff_ptr ) -{ - Rec_vitals ** ptr; - - while ( gets( buff_ptr ) != NULL ) - { - for ( ptr = formats ; *ptr != ( Rec_vitals * ) NULL ; ptr++ ) - if ( ( *ptr )->is_data_record( buff_ptr ) == YES ) - return( *ptr ); /* Successful return. */ - - puts( buff_ptr ); /* Echo non-hex-record line. */ - } - - return( ( Rec_vitals * ) NULL ); /* Unsuccessful return. */ -} - - -/**** get_ndigit_hex ******************************************************* -* -* Expects: Pointer to first ASCII hexadecimal digit, number of digits. -* -* Returns: Value of hexadecimal string as an unsigned long. -* -*******************************************************************************/ - -Ulong get_ndigit_hex( char * cptr, int digits ) -{ - Ulong value; - - for ( value = 0 ; --digits >= 0 ; cptr++ ) - value = ( value * 16L ) + HEX_DIGIT( *cptr ); - - return( value ); -} diff --git a/tools/build/src/unhex.c b/tools/build/src/unhex.c deleted file mode 100644 index 540095d6f4..0000000000 --- a/tools/build/src/unhex.c +++ /dev/null @@ -1,719 +0,0 @@ -/* - * unhex - * convert a hex file to binary equivalent. If more than one file name - * is given, then the output will be logically concatenated together. - * stdin and stdout are defaults. Verbose will enable checksum output. - * - * Supported input formats are Intel hex, Motorola S records, and TI 'B' - * records. - * - * Intel hex input format is - * Byte - * 1 Colon : - * 2..3 Record length, eg: "20" - * 4..7 load address nibbles - * 8..9 record type: "00" (data) or "02" base addr - * 10..x data bytes in ascii-hex - * x+1..x+2 cksum (2's compl of (len+addr+data)) - * x+3 \n -- newline - */ - -char *USAGE = "\ -usage: unhex [-va] [ -o file ] [ file [file ... ] ]\n\ - -v -- verbose\n\ - -a base -- 1st byte of output corresponds to this address\n\ - -l -- linear, just writes data out\n\ - -o file -- output file; must not be input file\n\ - -F k_bits -- \"holes\" in input will be filled with 0xFF's\n\ - up to \"k_bits\" * 1024 bits\n\ -"; - -#include -#include -#include -#include -#include -#include -#include - -#define OK 0 -#define FAILURE (-1) -#define Failed(x) ((x) == FAILURE) -#define TRUE 1 -#define FALSE 0 -typedef char bool; -#define STREQ(a,b) (strcmp(a,b) == 0) - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * Pick out designated bytes - */ - -#define B0(x) ((x) & 0xff) -#define B1(x) B0((x) >> 8) -#define B2(x) B0((x) >> 16) -#define B3(x) B0((x) >> 24) - -typedef struct buffer_rec { - u32 dl_destaddr; - u32 dl_jumpaddr; - int dl_count; - u8 dl_buf[512]; -} buffer_rec; - -/* - * vars controlled by command line options - */ - -bool verbose = FALSE; /* be verbose */ -bool linear = FALSE; /* just write out linear data */ -char *outfilename = "-"; /* default output is stdout */ -u32 base = 0L; /* base address */ -u32 FFfill = 0L; /* how far to fill w 0xFF's */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind; -extern int errno; - -char *progname; /* for error() */ - -void error(int errn, ...); -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* error is fatal; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* error is fatal; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) - -int unhex(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_Intel_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_S_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_TI_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -void write_record(buffer_rec *tb, FILE *fp); -int getnibble(char **p); -int getbyte(char **p); -long getNbytes(char **p, int n); -void badformat(char *s, char *fname, char *msg); - -#define get1bytes(p) ((int) getbyte(p)) -#define get2bytes(p) ((int) getNbytes(p, 2)) -#define get3bytes(p) getNbytes(p, 3) -#define get4bytes(p) getNbytes(p, 4) - -char *BADADDR = "Invalid record address"; -char *BADLEN = "Invalid record length"; -char *BADBASE = "Bad base or starting address"; -char *BADFMT = "Unrecognized record type"; -char *BADDATA = "Invalid data byte"; -char *BADCSUM = "Invalid checksum"; -char *MISCSUM = "Checksum mismatch"; -char *BADTYPE = "Unrecognized record type"; -char *MISTYPE = "Incompatible record types"; - -int -main(argc, argv) -int argc; -char **argv; -{ - register int c; - bool showusage = FALSE; /* usage error? */ - int rc = 0; - FILE *outfp, *infp; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - progname = argv[0]; - while ((c = getopt(argc, argv, "F:a:o:vl")) != EOF) - switch (c) - { - case 'a': /* base address */ - base = stol(optarg); - break; - - case 'l': /* linear output */ - linear = TRUE; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case 'o': /* output file */ - outfilename = optarg; - break; - - case 'F': /* 0xFF fill amount (bytes) */ - FFfill = stol(optarg) * 1024L / 8L; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - if (linear && (base != 0)) - { - error(0, "-l and -a may not be specified in combination"); - exit(1); - } - - if (STREQ(outfilename, "-")) - { - outfp = stdout; - outfilename = "stdout"; - } - else - if ((outfp = fopen(outfilename, "w")) == (FILE *) NULL) - { - error(-1, "couldn't open '%s' for output", outfilename); - exit(1); - } - - /* - * Now process the input files (or stdin, if none specified) - */ - - if (argv[optind] == (char *) NULL) /* just stdin */ - exit(unhex(stdin, "stdin", outfp, outfilename)); - else - for (; (optarg = argv[optind]); optind++) - { - if (STREQ(optarg, "-")) - rc += unhex(stdin, "stdin", outfp, outfilename); - else - { - if ((infp = fopen(optarg, "r")) == (FILE *) NULL) - { - error(-1, "couldn't open '%s' for input", optarg); - exit(1); - } - rc += unhex(infp, optarg, outfp, outfilename); - } - } - - return(rc); -} - -u16 filesum; - -int -unhex(FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - int c; - - filesum = 0; - - /* - * Make sure holes will be filled with 0xFF's if requested. We - * do this the easy way by just filling the file with FF's before - * getting started. To do it more optimally would be quite a bit - * more difficult since the user can skip around as much as he/she - * likes in the input hex file addressing. - * - * We'll clean this up later (after this program has run) with - * 'stripffs' - */ - - if (FFfill) - { - (void) fseek(ofp, 0, 0); - for (c = FFfill; c > 0; c--) - (void) fputc(0xFF, ofp); - } - - /* - * Read the first char from file and determine record types - */ - - if ((c = getc(ifp)) != EOF) - { - ungetc(c, ifp); - switch(c) - { - case 'S': - convert_S_records(ifp, inm, ofp, onm); - break; - - case ':': - convert_Intel_records(ifp, inm, ofp, onm); - break; - - case '9': - case 'B': - convert_TI_records(ifp, inm, ofp, onm); - break; - - default: - { - char tmp[2]; - tmp[0] = c; tmp[1] = 0; - badformat(tmp, inm, BADFMT); - } - } - } - - if (verbose) - fprintf(stderr, "'%s' checksum is 0x%04x\n", inm, filesum); - - return 0; -} - -int -convert_Intel_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - u8 cksum; - int incksum; - int c; - int rectype; /* record type */ - int len; /* data length of current line */ - u32 addr; - u32 base_address = 0; - bool endrecord = FALSE; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - p = &buff[0]; - - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - if (*p != ':') - badformat(p, inm, BADFMT); - p++; - - if ((len = getbyte(&p)) == -1) /* record len */ - badformat(buff, inm, BADLEN); - - if ((addr = get2bytes(&p)) == -1L) /* record addr */ - badformat(buff, inm, BADADDR); - - rectype = getbyte(&p); - - cksum = len + B0(addr) + B1(addr) + rectype; - - switch (rectype) - { - case 0x00: /* normal data record */ - tb.dl_destaddr = base_address + addr; - while (len--) - { - if ((c = getbyte(&p)) == -1) - badformat(buff, inm, BADDATA); - cksum += c; - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - } - break; - - case 0x01: /* execution start address */ - base_address = addr; - endrecord = TRUE; - break; - - case 0x02: /* new base */ - if ((base_address = get2bytes(&p)) == -1L) - badformat(buff, inm, BADBASE); - cksum += B0(base_address) + B1(base_address); - base_address <<= 4; - break; - - case 0x03: /* seg/off execution start address */ - { - u32 seg, off; - - seg = get2bytes(&p); - off = get2bytes(&p); - if ((seg == -1L) || (off == -1L)) - badformat(buff, inm, BADADDR); - - cksum += B0(seg) + B1(seg) + B0(off) + B1(off); - - tb.dl_jumpaddr = (seg << 4) + off; - break; - } - - default: - error(0, "unknown Intel-hex record type: 0x%02x", rectype); - badformat(buff, inm, BADTYPE); - } - - /* - * Verify checksums are correct in file. - */ - - cksum = (-cksum) & 0xff; - if ((incksum = getbyte(&p)) == -1) - badformat(buff, inm, BADCSUM); - if (((u8) incksum) != cksum) - badformat(buff, inm, MISCSUM); - - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -int -convert_S_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - u8 cksum; - int incksum; - int c; - int len; /* data length of current line */ - int rectype; /* record type */ - u32 addr; - bool endrecord = FALSE; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - p = &buff[0]; - - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - if (*p != 'S') - badformat(p, inm, BADFMT); - p++; - - if ((rectype = getnibble(&p)) == -1) /* record type */ - badformat(buff, inm, BADTYPE); - - if ((len = getbyte(&p)) == -1) /* record len */ - badformat(buff, inm, BADLEN); - cksum = len; - - switch (rectype) - { - case 0x00: /* comment field, ignored */ - goto write_it; - - case 0x01: /* data record, 16 bit addr */ - if ((addr = get2bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 3; - goto doit; - - case 0x02: /* ... 24 bit addr */ - if ((addr = get3bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 4; - goto doit; - - case 0x03: /* ... 32 bit addr */ - if ((addr = get4bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 5; - doit: - cksum += B0(addr) + B1(addr) + B2(addr) + B3(addr); - - tb.dl_destaddr = addr; - while (len--) - { - if ((c = getbyte(&p)) == -1) - badformat(buff, inm, BADDATA); - cksum += c; - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - } - break; - - case 0x07: /* 32 bit end record */ - if ((addr = get4bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - goto end_rec; - - case 0x08: /* 24 bit end record */ - if ((addr = get3bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - goto end_rec; - - case 0x09: /* 16 bit end record */ - if ((addr = get2bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - -end_rec: - cksum += B0(addr) + B1(addr) + B2(addr) + B3(addr); - tb.dl_jumpaddr = addr; - break; - - default: - error(0, "unknown Motorola-S record type: 0x%02x", rectype); - badformat(buff, inm, BADTYPE); - break; - } - - /* - * Verify checksums are correct in file. - */ - - cksum = (~cksum) & 0xff; - if ((incksum = getbyte(&p)) == -1) - badformat(buff, inm, BADCSUM); - if (((u8) incksum) != cksum) - badformat(buff, inm, MISCSUM); - -write_it: - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -int -convert_TI_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - int c; - bool endrecord = FALSE; - bool eol; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - p = &buff[0]; - eol = FALSE; - while ( ! eol && ! endrecord) - { - switch (*p++) - { - case '9': - if (tb.dl_count) - write_record(&tb, ofp); - tb.dl_destaddr = get2bytes(&p); - break; - - case 'B': - c = getbyte(&p); - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - c = getbyte(&p); - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - break; - - case 'F': - eol = TRUE; - break; - - case ':': - endrecord = TRUE; - break; - - default: - badformat(p, inm, BADFMT); - } - } - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -void -write_record(buffer_rec *tb, - FILE *fp) -{ - if ( ! linear) - { - if (tb->dl_destaddr < base) - error(ERR_FATAL, "record at address 0x%x precedes base of 0x%x", - tb->dl_destaddr, base); - (void) fseek(fp, tb->dl_destaddr - base, 0); - } - - (void) fwrite(tb->dl_buf, tb->dl_count, 1, fp); - tb->dl_destaddr += tb->dl_count; - tb->dl_count = 0; -} - -int -getnibble(char **p) -{ - register int val; - - **p = toupper(**p); - switch (**p) - { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - val = **p - '0'; - break; - - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': - val = 10 + (**p - 'A'); - break; - - default: - return(-1); - } - *p += 1; - - return(val & 0x0f); -} - -int -getbyte(char **p) -{ - int n0, n1; - - if ((n0 = getnibble(p)) == -1) - return(-1); - if ((n1 = getnibble(p)) == -1) - return(-1); - - return(((n0 << 4) + n1) & 0xff); -} - -long -getNbytes(char **p, - int n) -{ - int t; - u32 val = 0; - - while (n--) - { - if ((t = getbyte(p)) == -1) - return(-1L); - val <<= 8; - val += t; - } - - return(val); -} - -void -badformat(char *s, - char *fname, - char *msg) -{ - if (s[strlen(s)-1] == '\n') /* get rid of newline */ - s[strlen(s)-1] = '\0'; - error(0, "line '%s'::\n\tfrom file '%s'; %s", s, fname, msg); - exit(1); -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_EXIT bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - diff --git a/tools/build/unhex.c b/tools/build/unhex.c deleted file mode 100644 index 540095d6f4..0000000000 --- a/tools/build/unhex.c +++ /dev/null @@ -1,719 +0,0 @@ -/* - * unhex - * convert a hex file to binary equivalent. If more than one file name - * is given, then the output will be logically concatenated together. - * stdin and stdout are defaults. Verbose will enable checksum output. - * - * Supported input formats are Intel hex, Motorola S records, and TI 'B' - * records. - * - * Intel hex input format is - * Byte - * 1 Colon : - * 2..3 Record length, eg: "20" - * 4..7 load address nibbles - * 8..9 record type: "00" (data) or "02" base addr - * 10..x data bytes in ascii-hex - * x+1..x+2 cksum (2's compl of (len+addr+data)) - * x+3 \n -- newline - */ - -char *USAGE = "\ -usage: unhex [-va] [ -o file ] [ file [file ... ] ]\n\ - -v -- verbose\n\ - -a base -- 1st byte of output corresponds to this address\n\ - -l -- linear, just writes data out\n\ - -o file -- output file; must not be input file\n\ - -F k_bits -- \"holes\" in input will be filled with 0xFF's\n\ - up to \"k_bits\" * 1024 bits\n\ -"; - -#include -#include -#include -#include -#include -#include -#include - -#define OK 0 -#define FAILURE (-1) -#define Failed(x) ((x) == FAILURE) -#define TRUE 1 -#define FALSE 0 -typedef char bool; -#define STREQ(a,b) (strcmp(a,b) == 0) - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -/* - * Pick out designated bytes - */ - -#define B0(x) ((x) & 0xff) -#define B1(x) B0((x) >> 8) -#define B2(x) B0((x) >> 16) -#define B3(x) B0((x) >> 24) - -typedef struct buffer_rec { - u32 dl_destaddr; - u32 dl_jumpaddr; - int dl_count; - u8 dl_buf[512]; -} buffer_rec; - -/* - * vars controlled by command line options - */ - -bool verbose = FALSE; /* be verbose */ -bool linear = FALSE; /* just write out linear data */ -char *outfilename = "-"; /* default output is stdout */ -u32 base = 0L; /* base address */ -u32 FFfill = 0L; /* how far to fill w 0xFF's */ - -extern char *optarg; /* getopt(3) control vars */ -extern int optind; -extern int errno; - -char *progname; /* for error() */ - -void error(int errn, ...); -#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */ -#define ERR_FATAL (ERR_ERRNO / 2) /* error is fatal; no return */ -#define ERR_ABORT (ERR_ERRNO / 4) /* error is fatal; abort */ -#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */ - -#define stol(p) strtol(p, (char **) NULL, 0) - -int unhex(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_Intel_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_S_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -int convert_TI_records(FILE *ifp, char *inm, FILE *ofp, char *onm); -void write_record(buffer_rec *tb, FILE *fp); -int getnibble(char **p); -int getbyte(char **p); -long getNbytes(char **p, int n); -void badformat(char *s, char *fname, char *msg); - -#define get1bytes(p) ((int) getbyte(p)) -#define get2bytes(p) ((int) getNbytes(p, 2)) -#define get3bytes(p) getNbytes(p, 3) -#define get4bytes(p) getNbytes(p, 4) - -char *BADADDR = "Invalid record address"; -char *BADLEN = "Invalid record length"; -char *BADBASE = "Bad base or starting address"; -char *BADFMT = "Unrecognized record type"; -char *BADDATA = "Invalid data byte"; -char *BADCSUM = "Invalid checksum"; -char *MISCSUM = "Checksum mismatch"; -char *BADTYPE = "Unrecognized record type"; -char *MISTYPE = "Incompatible record types"; - -int -main(argc, argv) -int argc; -char **argv; -{ - register int c; - bool showusage = FALSE; /* usage error? */ - int rc = 0; - FILE *outfp, *infp; - - /* - * figure out invocation leaf-name - */ - - if ((progname = strrchr(argv[0], '/')) == (char *) NULL) - progname = argv[0]; - else - progname++; - - argv[0] = progname; /* for getopt err reporting */ - - /* - * Check options and arguments. - */ - - progname = argv[0]; - while ((c = getopt(argc, argv, "F:a:o:vl")) != EOF) - switch (c) - { - case 'a': /* base address */ - base = stol(optarg); - break; - - case 'l': /* linear output */ - linear = TRUE; - break; - - case 'v': /* toggle verbose */ - verbose = ! verbose; - break; - - case 'o': /* output file */ - outfilename = optarg; - break; - - case 'F': /* 0xFF fill amount (bytes) */ - FFfill = stol(optarg) * 1024L / 8L; - break; - - case '?': - showusage = TRUE; - } - - if (showusage) - { - (void) fprintf(stderr, "%s", USAGE); - exit(1); - } - - if (linear && (base != 0)) - { - error(0, "-l and -a may not be specified in combination"); - exit(1); - } - - if (STREQ(outfilename, "-")) - { - outfp = stdout; - outfilename = "stdout"; - } - else - if ((outfp = fopen(outfilename, "w")) == (FILE *) NULL) - { - error(-1, "couldn't open '%s' for output", outfilename); - exit(1); - } - - /* - * Now process the input files (or stdin, if none specified) - */ - - if (argv[optind] == (char *) NULL) /* just stdin */ - exit(unhex(stdin, "stdin", outfp, outfilename)); - else - for (; (optarg = argv[optind]); optind++) - { - if (STREQ(optarg, "-")) - rc += unhex(stdin, "stdin", outfp, outfilename); - else - { - if ((infp = fopen(optarg, "r")) == (FILE *) NULL) - { - error(-1, "couldn't open '%s' for input", optarg); - exit(1); - } - rc += unhex(infp, optarg, outfp, outfilename); - } - } - - return(rc); -} - -u16 filesum; - -int -unhex(FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - int c; - - filesum = 0; - - /* - * Make sure holes will be filled with 0xFF's if requested. We - * do this the easy way by just filling the file with FF's before - * getting started. To do it more optimally would be quite a bit - * more difficult since the user can skip around as much as he/she - * likes in the input hex file addressing. - * - * We'll clean this up later (after this program has run) with - * 'stripffs' - */ - - if (FFfill) - { - (void) fseek(ofp, 0, 0); - for (c = FFfill; c > 0; c--) - (void) fputc(0xFF, ofp); - } - - /* - * Read the first char from file and determine record types - */ - - if ((c = getc(ifp)) != EOF) - { - ungetc(c, ifp); - switch(c) - { - case 'S': - convert_S_records(ifp, inm, ofp, onm); - break; - - case ':': - convert_Intel_records(ifp, inm, ofp, onm); - break; - - case '9': - case 'B': - convert_TI_records(ifp, inm, ofp, onm); - break; - - default: - { - char tmp[2]; - tmp[0] = c; tmp[1] = 0; - badformat(tmp, inm, BADFMT); - } - } - } - - if (verbose) - fprintf(stderr, "'%s' checksum is 0x%04x\n", inm, filesum); - - return 0; -} - -int -convert_Intel_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - u8 cksum; - int incksum; - int c; - int rectype; /* record type */ - int len; /* data length of current line */ - u32 addr; - u32 base_address = 0; - bool endrecord = FALSE; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - p = &buff[0]; - - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - if (*p != ':') - badformat(p, inm, BADFMT); - p++; - - if ((len = getbyte(&p)) == -1) /* record len */ - badformat(buff, inm, BADLEN); - - if ((addr = get2bytes(&p)) == -1L) /* record addr */ - badformat(buff, inm, BADADDR); - - rectype = getbyte(&p); - - cksum = len + B0(addr) + B1(addr) + rectype; - - switch (rectype) - { - case 0x00: /* normal data record */ - tb.dl_destaddr = base_address + addr; - while (len--) - { - if ((c = getbyte(&p)) == -1) - badformat(buff, inm, BADDATA); - cksum += c; - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - } - break; - - case 0x01: /* execution start address */ - base_address = addr; - endrecord = TRUE; - break; - - case 0x02: /* new base */ - if ((base_address = get2bytes(&p)) == -1L) - badformat(buff, inm, BADBASE); - cksum += B0(base_address) + B1(base_address); - base_address <<= 4; - break; - - case 0x03: /* seg/off execution start address */ - { - u32 seg, off; - - seg = get2bytes(&p); - off = get2bytes(&p); - if ((seg == -1L) || (off == -1L)) - badformat(buff, inm, BADADDR); - - cksum += B0(seg) + B1(seg) + B0(off) + B1(off); - - tb.dl_jumpaddr = (seg << 4) + off; - break; - } - - default: - error(0, "unknown Intel-hex record type: 0x%02x", rectype); - badformat(buff, inm, BADTYPE); - } - - /* - * Verify checksums are correct in file. - */ - - cksum = (-cksum) & 0xff; - if ((incksum = getbyte(&p)) == -1) - badformat(buff, inm, BADCSUM); - if (((u8) incksum) != cksum) - badformat(buff, inm, MISCSUM); - - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -int -convert_S_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - u8 cksum; - int incksum; - int c; - int len; /* data length of current line */ - int rectype; /* record type */ - u32 addr; - bool endrecord = FALSE; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - p = &buff[0]; - - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - if (*p != 'S') - badformat(p, inm, BADFMT); - p++; - - if ((rectype = getnibble(&p)) == -1) /* record type */ - badformat(buff, inm, BADTYPE); - - if ((len = getbyte(&p)) == -1) /* record len */ - badformat(buff, inm, BADLEN); - cksum = len; - - switch (rectype) - { - case 0x00: /* comment field, ignored */ - goto write_it; - - case 0x01: /* data record, 16 bit addr */ - if ((addr = get2bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 3; - goto doit; - - case 0x02: /* ... 24 bit addr */ - if ((addr = get3bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 4; - goto doit; - - case 0x03: /* ... 32 bit addr */ - if ((addr = get4bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - len -= 5; - doit: - cksum += B0(addr) + B1(addr) + B2(addr) + B3(addr); - - tb.dl_destaddr = addr; - while (len--) - { - if ((c = getbyte(&p)) == -1) - badformat(buff, inm, BADDATA); - cksum += c; - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - } - break; - - case 0x07: /* 32 bit end record */ - if ((addr = get4bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - goto end_rec; - - case 0x08: /* 24 bit end record */ - if ((addr = get3bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - goto end_rec; - - case 0x09: /* 16 bit end record */ - if ((addr = get2bytes(&p)) == -1L) - badformat(buff, inm, BADADDR); - -end_rec: - cksum += B0(addr) + B1(addr) + B2(addr) + B3(addr); - tb.dl_jumpaddr = addr; - break; - - default: - error(0, "unknown Motorola-S record type: 0x%02x", rectype); - badformat(buff, inm, BADTYPE); - break; - } - - /* - * Verify checksums are correct in file. - */ - - cksum = (~cksum) & 0xff; - if ((incksum = getbyte(&p)) == -1) - badformat(buff, inm, BADCSUM); - if (((u8) incksum) != cksum) - badformat(buff, inm, MISCSUM); - -write_it: - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -int -convert_TI_records( - FILE *ifp, - char *inm, - FILE *ofp, - char *onm) -{ - char buff[512]; - char *p; - int c; - bool endrecord = FALSE; - bool eol; - buffer_rec tb; - - while ( ! endrecord && (fgets(buff, sizeof(buff), ifp))) - { - if (p[strlen(p)-1] == '\n') /* get rid of newline */ - p[strlen(p)-1] = '\0'; - - if (p[strlen(p)-1] == '\r') /* get rid of any CR */ - p[strlen(p)-1] = '\0'; - - tb.dl_count = 0; - - p = &buff[0]; - eol = FALSE; - while ( ! eol && ! endrecord) - { - switch (*p++) - { - case '9': - if (tb.dl_count) - write_record(&tb, ofp); - tb.dl_destaddr = get2bytes(&p); - break; - - case 'B': - c = getbyte(&p); - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - c = getbyte(&p); - filesum += c; - tb.dl_buf[tb.dl_count++] = c; - break; - - case 'F': - eol = TRUE; - break; - - case ':': - endrecord = TRUE; - break; - - default: - badformat(p, inm, BADFMT); - } - } - if (tb.dl_count) - write_record(&tb, ofp); - } - return 0; -} - -void -write_record(buffer_rec *tb, - FILE *fp) -{ - if ( ! linear) - { - if (tb->dl_destaddr < base) - error(ERR_FATAL, "record at address 0x%x precedes base of 0x%x", - tb->dl_destaddr, base); - (void) fseek(fp, tb->dl_destaddr - base, 0); - } - - (void) fwrite(tb->dl_buf, tb->dl_count, 1, fp); - tb->dl_destaddr += tb->dl_count; - tb->dl_count = 0; -} - -int -getnibble(char **p) -{ - register int val; - - **p = toupper(**p); - switch (**p) - { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - val = **p - '0'; - break; - - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': - val = 10 + (**p - 'A'); - break; - - default: - return(-1); - } - *p += 1; - - return(val & 0x0f); -} - -int -getbyte(char **p) -{ - int n0, n1; - - if ((n0 = getnibble(p)) == -1) - return(-1); - if ((n1 = getnibble(p)) == -1) - return(-1); - - return(((n0 << 4) + n1) & 0xff); -} - -long -getNbytes(char **p, - int n) -{ - int t; - u32 val = 0; - - while (n--) - { - if ((t = getbyte(p)) == -1) - return(-1L); - val <<= 8; - val += t; - } - - return(val); -} - -void -badformat(char *s, - char *fname, - char *msg) -{ - if (s[strlen(s)-1] == '\n') /* get rid of newline */ - s[strlen(s)-1] = '\0'; - error(0, "line '%s'::\n\tfrom file '%s'; %s", s, fname, msg); - exit(1); -} - -/* - * error(errn, arglist) - * report an error to stderr using printf(3) conventions. - * Any output is preceded by ': ' - * - * Uses ERR_EXIT bit to request exit(errn) - * ERR_ABORT to request abort() - * ERR_ERRNO to indicate use of errno instead of argument. - * - * If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its - * associated error message is appended to the output. - */ - -/*VARARGS*/ - -void -error(int error_flag, ...) -{ - va_list arglist; - register char *format; - extern char *sys_errlist[]; - extern int sys_nerr; - int local_errno; - - extern int errno; - - (void) fflush(stdout); /* in case stdout/stderr same */ - - local_errno = error_flag & ~ERR_MASK; - if (error_flag & ERR_ERRNO) /* use errno? */ - local_errno = errno; - - va_start(arglist, error_flag); - format = va_arg(arglist, char *); - (void) fprintf(stderr, "%s: ", progname); - (void) vfprintf(stderr, format, arglist); - va_end(arglist); - - if (local_errno) - if ((local_errno > 0) && (local_errno < sys_nerr)) - (void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]); - else - (void) fprintf(stderr, " (unknown errno=%d)\n", local_errno); - else - (void) fprintf(stderr, "\n"); - - (void) fflush(stderr); - - if (error_flag & (ERR_FATAL | ERR_ABORT)) - { - if (error_flag & ERR_FATAL) - { - error(0, local_errno ? "fatal error, exiting" : "exiting"); - exit(local_errno); - } - else - { - error(0, "fatal error, aborting"); - abort(); - } - } -} - diff --git a/tools/cpu/hppa1.1/genoffsets.c b/tools/cpu/hppa1.1/genoffsets.c deleted file mode 100644 index 6563681f11..0000000000 --- a/tools/cpu/hppa1.1/genoffsets.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - * @(#)genoffsets.c 1.3 - 95/03/15 - * - * - * genoffsets.c - * - * This file generates the offsets.h for the HP PA-RISC port of RTEMS. - * - * NOTE: It only prints the offset for structures actually used - * by the assembly code. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - * - */ - -#include - -#include - -int main( - int argc, - char **argv -) -{ - unsigned int size; - - /* - * Print the file header - */ - -printf( - "/* offsets.h\n" - " *\n" - " * This include file contains the offsets of elements in the\n" - " * C data structures used by the assembly language code for the\n" - " * HP PA-RISC 1.1 port of RTEMS.\n" - " *\n" - " * NOTE: THIS FILE IS AUTOMATICALLY GENERATED!!!!\n" - " * DO NOT EDIT THIS BY HAND!!!!\n" - " *\n" - " * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.\n" - " * On-Line Applications Research Corporation (OAR).\n" - " * All rights assigned to U.S. Government, 1994.\n" - " *\n" - " * This material may be reproduced by or for the U.S. Government pursuant\n" - " * to the copyright license under the clause at DFARS 252.227-7013. This\n" - " * notice must appear in all copies of this file and its derivatives.\n" - " */\n" - "\n" - "#ifndef __OFFSETS_h\n" - "#define __OFFSETS_h\n" - "\n" -); - -/* - * Offsets of elements in the Context_control structure. - */ - -#define PRINT_IT( STRING, TYPE, FIELD ) \ - printf( "#define\t%s\t0x%p\t\t/* %d */\n", \ - STRING, \ - &((TYPE)0)->FIELD, \ - (int) &((TYPE)0)->FIELD ); - -#define PRINT_SIZE( STRING, item ) \ - printf( "#define\t%s\t%d\t\t/* 0x%x */\n", \ - STRING, \ - sizeof(item), \ - sizeof(item) ); - -#define PRINT_COMMENT( STRING ) \ - printf( \ - "\n" \ - "/*\n" \ - " * " STRING "\n" \ - " */\n" \ - "\n" \ - ); - - PRINT_COMMENT("Context_Control information"); - - PRINT_IT( "FLAGS_OFFSET", Context_Control *, flags ); - PRINT_IT( "R1_OFFSET", Context_Control *, gr1 ); - PRINT_IT( "R2_OFFSET", Context_Control *, gr2 ); - PRINT_IT( "R3_OFFSET", Context_Control *, gr3 ); - PRINT_IT( "R4_OFFSET", Context_Control *, gr4 ); - PRINT_IT( "R5_OFFSET", Context_Control *, gr5 ); - PRINT_IT( "R6_OFFSET", Context_Control *, gr6 ); - PRINT_IT( "R7_OFFSET", Context_Control *, gr7 ); - PRINT_IT( "R8_OFFSET", Context_Control *, gr8 ); - PRINT_IT( "R9_OFFSET", Context_Control *, gr9 ); - PRINT_IT( "R10_OFFSET", Context_Control *, gr10 ); - PRINT_IT( "R11_OFFSET", Context_Control *, gr11 ); - PRINT_IT( "R12_OFFSET", Context_Control *, gr12 ); - PRINT_IT( "R13_OFFSET", Context_Control *, gr13 ); - PRINT_IT( "R14_OFFSET", Context_Control *, gr14 ); - PRINT_IT( "R15_OFFSET", Context_Control *, gr15 ); - PRINT_IT( "R16_OFFSET", Context_Control *, gr16 ); - PRINT_IT( "R17_OFFSET", Context_Control *, gr17 ); - PRINT_IT( "R18_OFFSET", Context_Control *, gr18 ); - PRINT_IT( "R19_OFFSET", Context_Control *, gr19 ); - PRINT_IT( "R20_OFFSET", Context_Control *, gr20 ); - PRINT_IT( "R21_OFFSET", Context_Control *, gr21 ); - PRINT_IT( "R22_OFFSET", Context_Control *, gr22 ); - PRINT_IT( "R23_OFFSET", Context_Control *, gr23 ); - PRINT_IT( "R24_OFFSET", Context_Control *, gr24 ); - PRINT_IT( "R25_OFFSET", Context_Control *, gr25 ); - PRINT_IT( "R26_OFFSET", Context_Control *, gr26 ); - PRINT_IT( "R27_OFFSET", Context_Control *, gr27 ); - PRINT_IT( "R28_OFFSET", Context_Control *, gr28 ); - PRINT_IT( "R29_OFFSET", Context_Control *, gr29 ); - PRINT_IT( "R30_OFFSET", Context_Control *, sp ); - PRINT_IT( "R31_OFFSET", Context_Control *, gr31 ); - - /* - * And common aliases for the above - */ - - PRINT_COMMENT("Common aliases for above"); - - PRINT_IT( "RP_OFFSET", Context_Control *, gr2 ); - PRINT_IT( "ARG3_OFFSET", Context_Control *, gr23 ); - PRINT_IT( "ARG2_OFFSET", Context_Control *, gr24 ); - PRINT_IT( "ARG1_OFFSET", Context_Control *, gr25 ); - PRINT_IT( "ARG0_OFFSET", Context_Control *, gr26 ); - PRINT_IT( "SP_OFFSET", Context_Control *, sp ); - PRINT_IT( "DP_OFFSET", Context_Control *, gr27 ); - PRINT_IT( "RET0_OFFSET", Context_Control *, gr28 ); - PRINT_IT( "RET1_OFFSET", Context_Control *, gr29 ); - - PRINT_SIZE("CPU_CONTEXT_SIZE", Context_Control); - - PRINT_COMMENT("Context_Control_fp information"); - - PRINT_SIZE("CPU_CONTEXT_FP_SIZE", Context_Control_fp); - - /* - * And the control registers - */ - - PRINT_COMMENT("Control register portion of context"); - - PRINT_IT( "SAR_OFFSET", Context_Control *, sar ); - PRINT_IT( "IPSW_OFFSET", Context_Control *, ipsw ); - PRINT_IT( "IIR_OFFSET", Context_Control *, iir ); - PRINT_IT( "IOR_OFFSET", Context_Control *, ior ); - PRINT_IT( "ISR_OFFSET", Context_Control *, isr ); - PRINT_IT( "PCOQFRONT_OFFSET", Context_Control *, pcoqfront ); - PRINT_IT( "PCOQBACK_OFFSET", Context_Control *, pcoqback ); - PRINT_IT( "PCSQFRONT_OFFSET", Context_Control *, pcsqfront ); - PRINT_IT( "PCSQBACK_OFFSET", Context_Control *, pcsqback ); - PRINT_IT( "ITIMER_OFFSET", Context_Control *, itimer ); - - /* - * Full interrupt frame (integer + float) - */ - PRINT_COMMENT("Interrupt frame information"); - - PRINT_IT( "INTEGER_CONTEXT_OFFSET", CPU_Interrupt_frame *, Integer ); - PRINT_IT( "FP_CONTEXT_OFFSET", CPU_Interrupt_frame *, Floating_Point ); - size = sizeof( CPU_Interrupt_frame ); - - if ( size % CPU_STACK_ALIGNMENT ) - size += CPU_STACK_ALIGNMENT - (size % CPU_STACK_ALIGNMENT); - - printf( "#define\tCPU_INTERRUPT_FRAME_SIZE\t%d\t\t/* 0x%x */\n", size, size ); - -#undef PRINT_IT -#undef PRINT_SIZE -#undef PRINT_COMMENT - - /* - * Print the end of file stuff - */ - - printf( - "\n" - "#endif /* __OFFSETS_h */\n" - "\n" - "/* end of include file */\n" - ); - - return 0; -} diff --git a/tools/update/310_to_320_list b/tools/update/310_to_320_list deleted file mode 100644 index b4add28685..0000000000 --- a/tools/update/310_to_320_list +++ /dev/null @@ -1,543 +0,0 @@ -# -# External API name -# -initialize_executive rtems_initialize_executive -initialize_executive_early rtems_initialize_executive_early -initialize_executive_late rtems_initialize_executive_late -shutdown_executive rtems_shutdown_executive -task_create rtems_task_create -task_ident rtems_task_ident -task_start rtems_task_start -task_restart rtems_task_restart -task_delete rtems_task_delete -task_suspend rtems_task_suspend -task_resume rtems_task_resume -task_set_priority rtems_task_set_priority -task_mode rtems_task_mode -task_get_note rtems_task_get_note -task_set_note rtems_task_set_note -task_wake_after rtems_task_wake_after -task_wake_when rtems_task_wake_when -interrupt_catch rtems_interrupt_catch -clock_set rtems_clock_set -clock_get rtems_clock_get -clock_tick rtems_clock_tick -extension_create rtems_extension_create -extension_ident rtems_extension_ident -extension_delete rtems_extension_delete -timer_create rtems_timer_create -timer_ident rtems_timer_ident -timer_cancel rtems_timer_cancel -timer_delete rtems_timer_delete -timer_fire_after rtems_timer_fire_after -timer_fire_when rtems_timer_fire_when -timer_reset rtems_timer_reset -semaphore_create rtems_semaphore_create -semaphore_ident rtems_semaphore_ident -semaphore_delete rtems_semaphore_delete -semaphore_obtain rtems_semaphore_obtain -semaphore_release rtems_semaphore_release -message_queue_create rtems_message_queue_create -message_queue_ident rtems_message_queue_ident -message_queue_delete rtems_message_queue_delete -message_queue_send rtems_message_queue_send -message_queue_urgent rtems_message_queue_urgent -message_queue_broadcast rtems_message_queue_broadcast -message_queue_receive rtems_message_queue_receive -message_queue_flush rtems_message_queue_flush -event_send rtems_event_send -event_receive rtems_event_receive -signal_catch rtems_signal_catch -signal_send rtems_signal_send -partition_create rtems_partition_create -partition_ident rtems_partition_ident -partition_delete rtems_partition_delete -partition_get_buffer rtems_partition_get_buffer -partition_return_buffer rtems_partition_return_buffer -region_create rtems_region_create -region_extend rtems_region_extend -region_ident rtems_region_ident -region_delete rtems_region_delete -region_get_segment rtems_region_get_segment -region_get_segment_size rtems_region_get_segment_size -region_return_segment rtems_region_return_segment -port_create rtems_port_create -port_ident rtems_port_ident -port_delete rtems_port_delete -port_external_to_internal rtems_port_external_to_internal -port_internal_to_external rtems_port_internal_to_external -io_initialize rtems_io_initialize -io_open rtems_io_open -io_close rtems_io_close -io_read rtems_io_read -io_write rtems_io_write -io_control rtems_io_control -fatal_error_occurred rtems_fatal_error_occurred -rate_monotonic_create rtems_rate_monotonic_create -rate_monotonic_ident rtems_rate_monotonic_ident -rate_monotonic_delete rtems_rate_monotonic_delete -rate_monotonic_cancel rtems_rate_monotonic_cancel -rate_monotonic_period rtems_rate_monotonic_period -multiprocessing_announce rtems_multiprocessing_announce -# -# Internal Names for API -# -_Initialize_Executive rtems_initialize_executive -_Initialize_Executive_early rtems_initialize_executive_early -_Initialize_Executive_late rtems_initialize_executive_late -_Shutdown_Executive rtems_shutdown_executive -_RTEMS_tasks_Create rtems_task_create -_RTEMS_tasks_Name_to_id rtems_task_ident -_RTEMS_tasks_Start rtems_task_start -_RTEMS_tasks_Restart rtems_task_restart -_RTEMS_tasks_Delete rtems_task_delete -_RTEMS_tasks_Suspend rtems_task_suspend -_RTEMS_tasks_Resume rtems_task_resume -_RTEMS_tasks_Set_priority rtems_task_set_priority -_RTEMS_tasks_Mode rtems_task_mode -_RTEMS_tasks_Get_note rtems_task_get_note -_RTEMS_tasks_Set_note rtems_task_set_note -_RTEMS_tasks_Wake_after rtems_task_wake_after -_RTEMS_tasks_Wake_when rtems_task_wake_when -_Interrupt_Catch rtems_interrupt_catch -_Clock_Set rtems_clock_set -_Clock_Get rtems_clock_get -_Clock_Tick rtems_clock_tick -_Extension_Create rtems_extension_create -_Extension_Name_to_id rtems_extension_ident -_Extension_Delete rtems_extension_delete -_Timer_Create rtems_timer_create -_Timer_Name_to_id rtems_timer_ident -_Timer_Cancel rtems_timer_cancel -_Timer_Delete rtems_timer_delete -_Timer_Fire_after rtems_timer_fire_after -_Timer_Fire_when rtems_timer_fire_when -_Timer_Reset rtems_timer_reset -_Semaphore_Create rtems_semaphore_create -_Semaphore_Name_to_id rtems_semaphore_ident -_Semaphore_Delete rtems_semaphore_delete -_Semaphore_Obtain rtems_semaphore_obtain -_Semaphore_Release rtems_semaphore_release -_Message_queue_Create rtems_message_queue_create -_Message_queue_Name_to_id rtems_message_queue_ident -_Message_queue_Delete rtems_message_queue_delete -_Message_queue_Send rtems_message_queue_send -_Message_queue_Urgent rtems_message_queue_urgent -_Message_queue_Broadcast rtems_message_queue_broadcast -_Message_queue_Receive rtems_message_queue_receive -_Message_queue_Flush rtems_message_queue_flush -_Event_Send rtems_event_send -_Event_Receive rtems_event_receive -_Signal_Catch rtems_signal_catch -_Signal_Send rtems_signal_send -_Partition_Create rtems_partition_create -_Partition_Name_to_id rtems_partition_ident -_Partition_Delete rtems_partition_delete -_Partition_Get_buffer rtems_partition_get_buffer -_Partition_Return_buffer rtems_partition_return_buffer -_Region_Create rtems_region_create -_Region_Extend rtems_region_extend -_Region_Name_to_id rtems_region_ident -_Region_Delete rtems_region_delete -_Region_Get_segment rtems_region_get_segment -_Region_Get_segment_size rtems_region_get_segment_size -_Region_Return_segment rtems_region_return_segment -_Dual_ported_memory_Create rtems_port_create -_Dual_ported_memory_Name_to_id rtems_port_ident -_Dual_ported_memory_Delete rtems_port_delete -_Dual_ported_memory_External_to_internal rtems_port_external_to_internal -_Dual_ported_memory_Internal_to_external rtems_port_internal_to_external -_IO_Initialize rtems_io_initialize -_IO_Open rtems_io_open -_IO_Close rtems_io_close -_IO_Read rtems_io_read -_IO_Write rtems_io_write -_IO_Control rtems_io_control -_Fatal_Error_occurred rtems_fatal_error_occurred -_Rate_monotonic_Create rtems_rate_monotonic_create -_Rate_monotonic_Name_to_id rtems_rate_monotonic_ident -_Rate_monotonic_Delete rtems_rate_monotonic_delete -_Rate_monotonic_Cancel rtems_rate_monotonic_cancel -_Rate_monotonic_Period rtems_rate_monotonic_period -_Multiprocessing_Announce rtems_multiprocessing_announce -# -# Status (API names) -# -SUCCESSFUL RTEMS_SUCCESSFUL -TASK_EXITTED RTEMS_TASK_EXITTED -MP_NOT_CONFIGURED RTEMS_MP_NOT_CONFIGURED -INVALID_NAME RTEMS_INVALID_NAME -INVALID_ID RTEMS_INVALID_ID -TOO_MANY RTEMS_TOO_MANY -TIMEOUT RTEMS_TIMEOUT -OBJECT_WAS_DELETED RTEMS_OBJECT_WAS_DELETED -INVALID_SIZE RTEMS_INVALID_SIZE -INVALID_ADDRESS RTEMS_INVALID_ADDRESS -INVALID_NUMBER RTEMS_INVALID_NUMBER -NOT_DEFINED RTEMS_NOT_DEFINED -RESOURCE_IN_USE RTEMS_RESOURCE_IN_USE -UNSATISFIED RTEMS_UNSATISFIED -INCORRECT_STATE RTEMS_INCORRECT_STATE -ALREADY_SUSPENDED RTEMS_ALREADY_SUSPENDED -ILLEGAL_ON_SELF RTEMS_ILLEGAL_ON_SELF -ILLEGAL_ON_REMOTE_OBJECT RTEMS_ILLEGAL_ON_REMOTE_OBJECT -CALLED_FROM_ISR RTEMS_CALLED_FROM_ISR -INVALID_PRIORITY RTEMS_INVALID_PRIORITY -INVALID_CLOCK RTEMS_INVALID_CLOCK -INVALID_NODE RTEMS_INVALID_NODE -NOT_CONFIGURED RTEMS_NOT_CONFIGURED -NOT_OWNER_OF_RESOURCE RTEMS_NOT_OWNER_OF_RESOURCE -NOT_IMPLEMENTED RTEMS_NOT_IMPLEMENTED -INTERNAL_ERROR RTEMS_INTERNAL_ERROR -PROXY_BLOCKING RTEMS_PROXY_BLOCKING -NO_MEMORY RTEMS_NO_MEMORY -STATUS_CODES_FIRST RTEMS_STATUS_CODES_FIRST -STATUS_CODES_LAST RTEMS_STATUS_CODES_LAST -# -# Status (Internal names) -# -STATUS_SUCCESSFUL RTEMS_SUCCESSFUL -STATUS_TASK_EXITTED RTEMS_TASK_EXITTED -STATUS_MP_NOT_CONFIGURED RTEMS_MP_NOT_CONFIGURED -STATUS_INVALID_NAME RTEMS_INVALID_NAME -STATUS_INVALID_ID RTEMS_INVALID_ID -STATUS_TOO_MANY RTEMS_TOO_MANY -STATUS_TIMEOUT RTEMS_TIMEOUT -STATUS_OBJECT_WAS_DELETED RTEMS_OBJECT_WAS_DELETED -STATUS_INVALID_SIZE RTEMS_INVALID_SIZE -STATUS_INVALID_ADDRESS RTEMS_INVALID_ADDRESS -STATUS_INVALID_NUMBER RTEMS_INVALID_NUMBER -STATUS_NOT_DEFINED RTEMS_NOT_DEFINED -STATUS_RESOURCE_IN_USE RTEMS_RESOURCE_IN_USE -STATUS_UNSATISFIED RTEMS_UNSATISFIED -STATUS_INCORRECT_STATE RTEMS_INCORRECT_STATE -STATUS_ALREADY_SUSPENDED RTEMS_ALREADY_SUSPENDED -STATUS_ILLEGAL_ON_SELF RTEMS_ILLEGAL_ON_SELF -STATUS_ILLEGAL_ON_REMOTE_OBJECT RTEMS_ILLEGAL_ON_REMOTE_OBJECT -STATUS_CALLED_FROM_ISR RTEMS_CALLED_FROM_ISR -STATUS_INVALID_PRIORITY RTEMS_INVALID_PRIORITY -STATUS_INVALID_CLOCK RTEMS_INVALID_CLOCK -STATUS_INVALID_NODE RTEMS_INVALID_NODE -STATUS_NOT_CONFIGURED RTEMS_NOT_CONFIGURED -STATUS_NOT_OWNER_OF_RESOURCE RTEMS_NOT_OWNER_OF_RESOURCE -STATUS_NOT_IMPLEMENTED RTEMS_NOT_IMPLEMENTED -STATUS_INTERNAL_ERROR RTEMS_INTERNAL_ERROR -STATUS_PROXY_BLOCKING RTEMS_PROXY_BLOCKING -STATUS_NO_MEMORY RTEMS_NO_MEMORY -# -# Attributes (External) -# -DEFAULT_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES -NO_FLOATING_POINT RTEMS_NO_FLOATING_POINT -FLOATING_POINT RTEMS_FLOATING_POINT -LOCAL RTEMS_LOCAL -GLOBAL RTEMS_GLOBAL -FIFO RTEMS_FIFO -PRIORITY RTEMS_PRIORITY -NO_LIMIT RTEMS_NO_LIMIT -LIMIT RTEMS_LIMIT -COUNTING_SEMAPHORE RTEMS_COUNTING_SEMAPHORE -BINARY_SEMAPHORE RTEMS_BINARY_SEMAPHORE -NO_INHERIT_PRIORITY RTEMS_NO_INHERIT_PRIORITY -INHERIT_PRIORITY RTEMS_INHERIT_PRIORITY -# -# Attributes (Internal) -# -ATTRIBUTES_DEFAULTS RTEMS_DEFAULT_ATTRIBUTES -ATTRIBUTES_NO_FLOATING_POINT RTEMS_NO_FLOATING_POINT -ATTRIBUTES_FLOATING_POINT RTEMS_FLOATING_POINT -ATTRIBUTES_LOCAL RTEMS_LOCAL -ATTRIBUTES_GLOBAL RTEMS_GLOBAL -ATTRIBUTES_FIFO RTEMS_FIFO -ATTRIBUTES_PRIORITY RTEMS_PRIORITY -ATTRIBUTES_NO_LIMIT RTEMS_NO_LIMIT -ATTRIBUTES_LIMIT RTEMS_LIMIT -ATTRIBUTES_COUNTING_SEMAPHORE RTEMS_COUNTING_SEMAPHORE -ATTRIBUTES_BINARY_SEMAPHORE RTEMS_BINARY_SEMAPHORE -ATTRIBUTES_NO_INHERIT_PRIORITY RTEMS_NO_INHERIT_PRIORITY -ATTRIBUTES_INHERIT_PRIORITY RTEMS_INHERIT_PRIORITY -# -# Options (External) -# -DEFAULT_OPTIONS RTEMS_DEFAULT_OPTIONS -WAIT RTEMS_WAIT -NO_WAIT RTEMS_NO_WAIT -EVENT_ALL RTEMS_EVENT_ALL -EVENT_ANY RTEMS_EVENT_ANY -# -# Options (Internal) -# -OPTIONS_DEFAULT RTEMS_DEFAULT_OPTIONS -OPTIONS_WAIT RTEMS_WAIT -OPTIONS_NO_WAIT RTEMS_NO_WAIT -OPTIONS_EVENT_ALL RTEMS_EVENT_ALL -OPTIONS_EVENT_ANY RTEMS_EVENT_ANY -# -# Masks (External) -# -ALL_MODE_MASKS RTEMS_ALL_MODE_MASKS -PREEMPT_MASK RTEMS_PREEMPT_MASK -TIMESLICE_MASK RTEMS_TIMESLICE_MASK -ASR_MASK RTEMS_ASR_MASK -INTERRUPT_MASK RTEMS_INTERRUPT_MASK -# -# Masks (Internal) -# -MODES_ALL_MASK RTEMS_ALL_MODE_MASKS -MODES_PREEMPT_MASK RTEMS_PREEMPT_MASK -MODES_TIMESLICE_MASK RTEMS_TIMESLICE_MASK -MODES_ASR_MASK RTEMS_ASR_MASK -MODES_INTERRUPT_MASK RTEMS_INTERRUPT_MASK -# -# Modes (Internal) -# -MODES_DEFAULTS RTEMS_DEFAULT_MODES -MODES_PREEMPT RTEMS_PREEMPT -MODES_NO_PREEMPT RTEMS_NO_PREEMPT -MODES_NO_TIMESLICE RTEMS_NO_TIMESLICE -MODES_TIMESLICE RTEMS_TIMESLICE -MODES_ASR RTEMS_ASR -MODES_NO_ASR RTEMS_NO_ASR -_Modes_Interrupt_level RTEMS_INTERRUPT_LEVEL -# -# Modes (External) -# -DEFAULT_MODES RTEMS_DEFAULT_MODES -PREEMPT RTEMS_PREEMPT -NO_PREEMPT RTEMS_NO_PREEMPT -NO_TIMESLICE RTEMS_NO_TIMESLICE -TIMESLICE RTEMS_TIMESLICE -ASR RTEMS_ASR -NO_ASR RTEMS_NO_ASR -INTERRUPT_LEVEL RTEMS_INTERRUPT_LEVEL -# -# Identification (External) -# -SEARCH_ALL_NODES RTEMS_SEARCH_ALL_NODES -SEARCH_OTHER_NODES RTEMS_SEARCH_OTHER_NODES -SEARCH_LOCAL_NODE RTEMS_SEARCH_LOCAL_NODE -WHO_AM_I RTEMS_WHO_AM_I -# -# Identification (Internal) -# -OBJECTS_SEARCH_ALL_NODES RTEMS_SEARCH_ALL_NODES -OBJECTS_SEARCH_OTHER_NODES RTEMS_SEARCH_OTHER_NODES -OBJECTS_SEARCH_LOCAL_NODE RTEMS_SEARCH_LOCAL_NODE -OBJECTS_WHO_AM_I RTEMS_WHO_AM_I -# -# Miscellaneous (External API) -# -CURRENT_MODE RTEMS_CURRENT_MODE -CURRENT_PRIORITY RTEMS_CURRENT_PRIORITY -PENDING_EVENTS RTEMS_PENDING_EVENTS -NO_TIMEOUT RTEMS_NO_TIMEOUT -SELF RTEMS_SELF -PERIOD_STATUS RTEMS_PERIOD_STATUS -YIELD_PROCESSOR RTEMS_YIELD_PROCESSOR -MINIMUM_PRIORITY RTEMS_MINIMUM_PRIORITY -MAXIMUM_PRIORITY RTEMS_MAXIMUM_PRIORITY -MINIMUM_STACK_SIZE RTEMS_MINIMUM_STACK_SIZE -# -# Miscellaneous (External API) -# -MODES_CURRENT RTEMS_CURRENT_MODE -PRIORITY_CURRENT RTEMS_CURRENT_PRIORITY -# -# Events -# -ALL_EVENTS RTEMS_ALL_EVENTS -EVENT_0 RTEMS_EVENT_0 -EVENT_1 RTEMS_EVENT_1 -EVENT_2 RTEMS_EVENT_2 -EVENT_3 RTEMS_EVENT_3 -EVENT_4 RTEMS_EVENT_4 -EVENT_5 RTEMS_EVENT_5 -EVENT_6 RTEMS_EVENT_6 -EVENT_7 RTEMS_EVENT_7 -EVENT_8 RTEMS_EVENT_8 -EVENT_9 RTEMS_EVENT_9 -EVENT_10 RTEMS_EVENT_10 -EVENT_11 RTEMS_EVENT_11 -EVENT_12 RTEMS_EVENT_12 -EVENT_13 RTEMS_EVENT_13 -EVENT_14 RTEMS_EVENT_14 -EVENT_15 RTEMS_EVENT_15 -EVENT_16 RTEMS_EVENT_16 -EVENT_17 RTEMS_EVENT_17 -EVENT_18 RTEMS_EVENT_18 -EVENT_19 RTEMS_EVENT_19 -EVENT_20 RTEMS_EVENT_20 -EVENT_21 RTEMS_EVENT_21 -EVENT_22 RTEMS_EVENT_22 -EVENT_23 RTEMS_EVENT_23 -EVENT_24 RTEMS_EVENT_24 -EVENT_25 RTEMS_EVENT_25 -EVENT_26 RTEMS_EVENT_26 -EVENT_27 RTEMS_EVENT_27 -EVENT_28 RTEMS_EVENT_28 -EVENT_29 RTEMS_EVENT_29 -EVENT_30 RTEMS_EVENT_30 -EVENT_31 RTEMS_EVENT_31 -# -# Signals -# -SIGNAL_0 RTEMS_SIGNAL_0 -SIGNAL_1 RTEMS_SIGNAL_1 -SIGNAL_2 RTEMS_SIGNAL_2 -SIGNAL_3 RTEMS_SIGNAL_3 -SIGNAL_4 RTEMS_SIGNAL_4 -SIGNAL_5 RTEMS_SIGNAL_5 -SIGNAL_6 RTEMS_SIGNAL_6 -SIGNAL_7 RTEMS_SIGNAL_7 -SIGNAL_8 RTEMS_SIGNAL_8 -SIGNAL_9 RTEMS_SIGNAL_9 -SIGNAL_10 RTEMS_SIGNAL_10 -SIGNAL_11 RTEMS_SIGNAL_11 -SIGNAL_12 RTEMS_SIGNAL_12 -SIGNAL_13 RTEMS_SIGNAL_13 -SIGNAL_14 RTEMS_SIGNAL_14 -SIGNAL_15 RTEMS_SIGNAL_15 -SIGNAL_16 RTEMS_SIGNAL_16 -SIGNAL_17 RTEMS_SIGNAL_17 -SIGNAL_18 RTEMS_SIGNAL_18 -SIGNAL_19 RTEMS_SIGNAL_19 -SIGNAL_20 RTEMS_SIGNAL_20 -SIGNAL_21 RTEMS_SIGNAL_21 -SIGNAL_22 RTEMS_SIGNAL_22 -SIGNAL_23 RTEMS_SIGNAL_23 -SIGNAL_24 RTEMS_SIGNAL_24 -SIGNAL_25 RTEMS_SIGNAL_25 -SIGNAL_26 RTEMS_SIGNAL_26 -SIGNAL_27 RTEMS_SIGNAL_27 -SIGNAL_28 RTEMS_SIGNAL_28 -SIGNAL_29 RTEMS_SIGNAL_29 -SIGNAL_30 RTEMS_SIGNAL_30 -SIGNAL_31 RTEMS_SIGNAL_31 -# -# Notepads -# -NOTEPAD_FIRST RTEMS_NOTEPAD_FIRST -NOTEPAD_0 RTEMS_NOTEPAD_0 -NOTEPAD_1 RTEMS_NOTEPAD_1 -NOTEPAD_2 RTEMS_NOTEPAD_2 -NOTEPAD_3 RTEMS_NOTEPAD_3 -NOTEPAD_4 RTEMS_NOTEPAD_4 -NOTEPAD_5 RTEMS_NOTEPAD_5 -NOTEPAD_6 RTEMS_NOTEPAD_6 -NOTEPAD_7 RTEMS_NOTEPAD_7 -NOTEPAD_8 RTEMS_NOTEPAD_8 -NOTEPAD_9 RTEMS_NOTEPAD_9 -NOTEPAD_10 RTEMS_NOTEPAD_10 -NOTEPAD_11 RTEMS_NOTEPAD_11 -NOTEPAD_12 RTEMS_NOTEPAD_12 -NOTEPAD_13 RTEMS_NOTEPAD_13 -NOTEPAD_14 RTEMS_NOTEPAD_14 -NOTEPAD_15 RTEMS_NOTEPAD_15 -NOTEPAD_LAST RTEMS_NOTEPAD_LAST -# -# Multiprocessing -# -MIN_PKTSIZE RTEMS_MINIMUM_PACKET_SIZE -MIN_HETERO_CONV RTEMS_MINIMUN_HETERO_CONVERSION -# -# Name and ID External -# -get_node rtems_get_node -get_index rtems_get_index -build_name rtems_build_name -name_to_characters rtems_name_to_characters -# -# Name and ID Internal -# -_Objects_Get_node rtems_get_node -_Objects_Get_index rtems_get_index -_Objects_Build_name rtems_build_name -_Objects_Name_to_characters rtems_name_to_characters -# -# clock_get -# -CLOCK_GET_TOD RTEMS_CLOCK_GET_TOD -CLOCK_GET_SECONDS_SINCE_EPOCH RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH -CLOCK_GET_TICKS_SINCE_BOOT RTEMS_CLOCK_GET_TICKS_SINCE_BOOT -CLOCK_GET_TICKS_PER_SECOND RTEMS_CLOCK_GET_TICKS_PER_SECOND -CLOCK_GET_TIME_VALUE RTEMS_CLOCK_GET_TIME_VALUE -# -# Status Code Support Routines (External) -- NO CHANGES -# -# -# Status Code Support Routines (Internal) -# -_Status_Is_successful rtems_is_status_successful -_Status_Is_equal rtems_are_statuses_equal -# -# Time Conversion Support Routines (External) -- NO CHANGES -# -# -# Time Conversion Support Routines (Internal) -# -_TOD_Milliseconds_to_microseconds RTEMS_MILLISECONDS_TO_MICROSECONDS -_TOD_Milliseconds_to_ticks RTEMS_MILLISECONDS_TO_MICROSECONDS -# -# MP packet -# -MP_PACKET_INTERNAL_THREADS RTEMS_MP_PACKET_INTERNAL_THREADS -MP_PACKET_RTEMS_TASKS RTEMS_MP_PACKET_TASKS -MP_PACKET_MESSAGE_QUEUE RTEMS_MP_PACKET_MESSAGE_QUEUE -MP_PACKET_SEMAPHORE RTEMS_MP_PACKET_SEMAPHORE -MP_PACKET_PARTITION RTEMS_MP_PACKET_PARTITION -MP_PACKET_REGION RTEMS_MP_PACKET_REGION -MP_PACKET_EVENT RTEMS_MP_PACKET_EVENT -MP_PACKET_SIGNAL RTEMS_MP_PACKET_SIGNAL -# -# -# -IO_Major_control rtems_device_major_number -IO_Minor_control rtems_device_minor_number -# -# Configuration Info -# -Configuration_Table rtems_configuration_table -Configuration_Initialization_tasks_table rtems_initialization_tasks_table -Configuration_Driver_address_table rtems_driver_address_table -Configuration_Extension_table rtems_extensions_table -rtems_tasks_create_extension rtems_task_create_extension -rtems_tasks_start_extension rtems_task_start_extension -rtems_tasks_restart_extension rtems_task_restart_extension -rtems_tasks_delete_extension rtems_task_delete_extension -rtems_tasks_switch_extension rtems_task_switch_extension -rtems_tasks_begin_extension rtems_task_begin_extension -rtems_tasks_exitted_extension rtems_task_exitted_extension -rtems_fatal_extension rtems_fatal_extension -Configuration_MPCI_table rtems_mpci_table -Configuration_Multiprocessing_table rtems_multiprocessing_table -CPU_Table rtems_cpu_table -# -Clock_Get_options rtems_clock_get_options -Clock_Time_value rtems_clock_time_value -MP_packet_Prefix rtems_packet_prefix -MP_packet_Classes rtems_mp_packet_classes -TOD_Control rtems_time_of_day -ISR_Vector rtems_vector_number -Watchdog_Interval rtems_interval -Watchdog_Service rtems_timer_service_routine_entry -Attributes_Control rtems_attribute -Modes_Control rtems_mode -Options_Control rtems_option -Priority_Control rtems_task_priority -PRIORITY_MINIMUM RTEMS_MINIMUM_PRIORITY -PRIORITY_MAXIMUM RTEMS_MAXIMUM_PRIORITY -Event_sets_Control rtems_event_set -ASR_Signal_set_control rtems_signal_set -Status_Codes rtems_status_code -RTEMS_TASKS_YIELD_PROCESSOR RTEMS_YIELD_PROCESSOR -RATE_MONOTONIC_PERIOD_STATUS RTEMS_PERIOD_STATUS -WATCHDOG_FOREVER RTEMS_NO_TIMEOUT -STACK_MINIMUM_SIZE RTEMS_MINIMUM_STACK_SIZE -# -ASR_Handler rtems_asr_entry -Thread_Entry rtems_task_entry -# -disable_intr rtems_interrupt_disable -enable_intr rtems_interrupt_enable -flash_intr rtems_interrupt_flash - diff --git a/tools/update/README b/tools/update/README deleted file mode 100644 index bbf99cb71d..0000000000 --- a/tools/update/README +++ /dev/null @@ -1,7 +0,0 @@ -# -# $Id$ -# - -This directory contains tools which aid in upgrading from RTEMS 3.1.0 -to RTEMS 3.2.0. - -- cgit v1.2.3