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 --- 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 ------------------------------------ 19 files changed, 1975 deletions(-) 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 (limited to 'c/src/lib/libbsp/shmdr') 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 */ -- cgit v1.2.3