Compare commits

...

1 Commits
4.7.2 ... 4.0.0

Author SHA1 Message Date
cvs2git
a6b6f0c130 This commit was manufactured by cvs2svn to create tag 'rtems-4-0-0'.
Sprout from master 1998-10-28 17:38:22 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'changed version to 4.0.0'
Delete:
    c/build-tools/README
    c/build-tools/cklength.c
    c/build-tools/eolstrip.c
    c/build-tools/install-if-change.in
    c/build-tools/lock-directory.in
    c/build-tools/packhex.c
    c/build-tools/rcs-clean.in
    c/build-tools/search-id.sh
    c/build-tools/unhex.c
    c/build-tools/unlock-directory.in
    c/src/ada-tests/mptests/mp01/config.h
    c/src/ada-tests/mptests/mp01/mp01.adb
    c/src/ada-tests/mptests/mp01/mptest.adb
    c/src/ada-tests/mptests/mp01/mptest.ads
    c/src/ada-tests/mptests/mp01/node1/mp01.scn
    c/src/ada-tests/mptests/mp01/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp01/node2/mp01.scn
    c/src/ada-tests/mptests/mp01/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp02/mptest.adb
    c/src/ada-tests/mptests/mp02/mptest.ads
    c/src/ada-tests/mptests/mp02/node1/mp02.scn
    c/src/ada-tests/mptests/mp02/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp02/node2/mp02.scn
    c/src/ada-tests/mptests/mp02/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp03/mptest.adb
    c/src/ada-tests/mptests/mp03/mptest.ads
    c/src/ada-tests/mptests/mp03/node1/mp03.scn
    c/src/ada-tests/mptests/mp03/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp03/node2/mp03.scn
    c/src/ada-tests/mptests/mp03/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp04/mptest.adb
    c/src/ada-tests/mptests/mp04/mptest.ads
    c/src/ada-tests/mptests/mp04/node1/mp04.scn
    c/src/ada-tests/mptests/mp04/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp04/node2/mp04.scn
    c/src/ada-tests/mptests/mp04/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp05/mptest.adb
    c/src/ada-tests/mptests/mp05/mptest.ads
    c/src/ada-tests/mptests/mp05/node1/mp05.scn
    c/src/ada-tests/mptests/mp05/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp05/node2/mp05.scn
    c/src/ada-tests/mptests/mp05/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp06/mptest.adb
    c/src/ada-tests/mptests/mp06/mptest.ads
    c/src/ada-tests/mptests/mp06/node1/mp06.scn
    c/src/ada-tests/mptests/mp06/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp06/node2/mp06.scn
    c/src/ada-tests/mptests/mp06/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp07/mptest.adb
    c/src/ada-tests/mptests/mp07/mptest.ads
    c/src/ada-tests/mptests/mp07/node1/mp07.scn
    c/src/ada-tests/mptests/mp07/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp07/node2/mp07.scn
    c/src/ada-tests/mptests/mp07/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp08/mptest.adb
    c/src/ada-tests/mptests/mp08/mptest.ads
    c/src/ada-tests/mptests/mp08/node1/mp08.scn
    c/src/ada-tests/mptests/mp08/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp08/node2/mp08.scn
    c/src/ada-tests/mptests/mp08/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp09/mptest.adb
    c/src/ada-tests/mptests/mp09/mptest.ads
    c/src/ada-tests/mptests/mp09/node1/mp09.scn
    c/src/ada-tests/mptests/mp09/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp09/node2/mp09.scn
    c/src/ada-tests/mptests/mp09/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp10/mptest.adb
    c/src/ada-tests/mptests/mp10/mptest.ads
    c/src/ada-tests/mptests/mp10/node1/mp10.scn
    c/src/ada-tests/mptests/mp10/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp10/node2/mp10.scn
    c/src/ada-tests/mptests/mp10/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp11/mptest.adb
    c/src/ada-tests/mptests/mp11/mptest.ads
    c/src/ada-tests/mptests/mp11/node1/mp11.scn
    c/src/ada-tests/mptests/mp11/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp11/node2/mp11.scn
    c/src/ada-tests/mptests/mp11/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp12/mptest.adb
    c/src/ada-tests/mptests/mp12/mptest.ads
    c/src/ada-tests/mptests/mp12/node1/mp12.scn
    c/src/ada-tests/mptests/mp12/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp12/node2/mp12.scn
    c/src/ada-tests/mptests/mp12/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp13/mptest.adb
    c/src/ada-tests/mptests/mp13/mptest.ads
    c/src/ada-tests/mptests/mp13/node1/mp13.scn
    c/src/ada-tests/mptests/mp13/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp13/node2/mp13.scn
    c/src/ada-tests/mptests/mp13/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp14/mptest.adb
    c/src/ada-tests/mptests/mp14/mptest.ads
    c/src/ada-tests/mptests/mp14/node1/mp14.scn
    c/src/ada-tests/mptests/mp14/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp14/node2/mp14.scn
    c/src/ada-tests/mptests/mp14/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/samples/base_mp/mptest.adb
    c/src/ada-tests/samples/base_mp/mptest.ads
    c/src/ada-tests/samples/base_mp/node1/base_mp.scn
    c/src/ada-tests/samples/base_mp/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/samples/base_mp/node2/base_mp.scn
    c/src/ada-tests/samples/base_mp/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/samples/base_sp/base_sp.adb
    c/src/ada-tests/samples/base_sp/base_sp.scn
    c/src/ada-tests/samples/base_sp/config.h
    c/src/ada-tests/samples/base_sp/sptest.adb
    c/src/ada-tests/samples/base_sp/sptest.ads
    c/src/ada-tests/samples/hello/config.h
    c/src/ada-tests/samples/hello/hello.adb
    c/src/ada-tests/samples/hello/hello.scn
    c/src/ada-tests/samples/hello/sptest.adb
    c/src/ada-tests/samples/hello/sptest.ads
    c/src/ada-tests/samples/ticker/config.h
    c/src/ada-tests/samples/ticker/sptest.adb
    c/src/ada-tests/samples/ticker/sptest.ads
    c/src/ada-tests/samples/ticker/ticker.adb
    c/src/ada-tests/samples/ticker/ticker.scn
    c/src/ada-tests/sptests/sp01/config.h
    c/src/ada-tests/sptests/sp01/sp01.adb
    c/src/ada-tests/sptests/sp01/sp01.scn
    c/src/ada-tests/sptests/sp01/sptest.adb
    c/src/ada-tests/sptests/sp01/sptest.ads
    c/src/ada-tests/sptests/sp02/config.h
    c/src/ada-tests/sptests/sp02/sp02.adb
    c/src/ada-tests/sptests/sp02/sp02.scn
    c/src/ada-tests/sptests/sp02/sptest.adb
    c/src/ada-tests/sptests/sp02/sptest.ads
    c/src/ada-tests/sptests/sp03/config.h
    c/src/ada-tests/sptests/sp03/sp03.adb
    c/src/ada-tests/sptests/sp03/sp03.scn
    c/src/ada-tests/sptests/sp03/sptest.adb
    c/src/ada-tests/sptests/sp03/sptest.ads
    c/src/ada-tests/sptests/sp04/README
    c/src/ada-tests/sptests/sp04/config.h
    c/src/ada-tests/sptests/sp04/sp04.adb
    c/src/ada-tests/sptests/sp04/sp04.scn
    c/src/ada-tests/sptests/sp04/sptest.adb
    c/src/ada-tests/sptests/sp04/sptest.ads
    c/src/ada-tests/sptests/sp05/config.h
    c/src/ada-tests/sptests/sp05/sp05.adb
    c/src/ada-tests/sptests/sp05/sp05.scn
    c/src/ada-tests/sptests/sp05/sptest.adb
    c/src/ada-tests/sptests/sp05/sptest.ads
    c/src/ada-tests/sptests/sp06/config.h
    c/src/ada-tests/sptests/sp06/sp06.adb
    c/src/ada-tests/sptests/sp06/sp06.scn
    c/src/ada-tests/sptests/sp06/sptest.adb
    c/src/ada-tests/sptests/sp06/sptest.ads
    c/src/ada-tests/sptests/sp07/config.h
    c/src/ada-tests/sptests/sp07/sp07.adb
    c/src/ada-tests/sptests/sp07/sp07.scn
    c/src/ada-tests/sptests/sp07/sptest.adb
    c/src/ada-tests/sptests/sp07/sptest.ads
    c/src/ada-tests/sptests/sp08/config.h
    c/src/ada-tests/sptests/sp08/sp08.adb
    c/src/ada-tests/sptests/sp08/sp08.scn
    c/src/ada-tests/sptests/sp08/sptest.adb
    c/src/ada-tests/sptests/sp08/sptest.ads
    c/src/ada-tests/sptests/sp09/config.h
    c/src/ada-tests/sptests/sp09/sp09.adb
    c/src/ada-tests/sptests/sp09/sp09.scn
    c/src/ada-tests/sptests/sp09/sptest.adb
    c/src/ada-tests/sptests/sp09/sptest.ads
    c/src/ada-tests/sptests/sp11/config.h
    c/src/ada-tests/sptests/sp11/sp11.adb
    c/src/ada-tests/sptests/sp11/sp11.scn
    c/src/ada-tests/sptests/sp11/sptest.adb
    c/src/ada-tests/sptests/sp11/sptest.ads
    c/src/ada-tests/sptests/sp12/config.h
    c/src/ada-tests/sptests/sp12/sp12.adb
    c/src/ada-tests/sptests/sp12/sp12.scn
    c/src/ada-tests/sptests/sp12/sptest.adb
    c/src/ada-tests/sptests/sp12/sptest.ads
    c/src/ada-tests/sptests/sp13/config.h
    c/src/ada-tests/sptests/sp13/sp13.adb
    c/src/ada-tests/sptests/sp13/sp13.scn
    c/src/ada-tests/sptests/sp13/sptest.adb
    c/src/ada-tests/sptests/sp13/sptest.ads
    c/src/ada-tests/sptests/sp14/config.h
    c/src/ada-tests/sptests/sp14/sp14.adb
    c/src/ada-tests/sptests/sp14/sp14.scn
    c/src/ada-tests/sptests/sp14/sptest.adb
    c/src/ada-tests/sptests/sp14/sptest.ads
    c/src/ada-tests/sptests/sp15/config.h
    c/src/ada-tests/sptests/sp15/sp15.adb
    c/src/ada-tests/sptests/sp15/sp15.scn
    c/src/ada-tests/sptests/sp15/sptest.adb
    c/src/ada-tests/sptests/sp15/sptest.ads
    c/src/ada-tests/sptests/sp16/config.h
    c/src/ada-tests/sptests/sp16/sp16.adb
    c/src/ada-tests/sptests/sp16/sp16.scn
    c/src/ada-tests/sptests/sp16/sptest.adb
    c/src/ada-tests/sptests/sp16/sptest.ads
    c/src/ada-tests/sptests/sp17/config.h
    c/src/ada-tests/sptests/sp17/sp17.adb
    c/src/ada-tests/sptests/sp17/sp17.scn
    c/src/ada-tests/sptests/sp17/sptest.adb
    c/src/ada-tests/sptests/sp17/sptest.ads
    c/src/ada-tests/sptests/sp19/README
    c/src/ada-tests/sptests/sp19/config.h
    c/src/ada-tests/sptests/sp19/sp19.adb
    c/src/ada-tests/sptests/sp19/sp19.scn
    c/src/ada-tests/sptests/sp19/sptest.ads
    c/src/ada-tests/sptests/sp20/config.h
    c/src/ada-tests/sptests/sp20/sp20.adb
    c/src/ada-tests/sptests/sp20/sp20.scn
    c/src/ada-tests/sptests/sp20/sptest.adb
    c/src/ada-tests/sptests/sp20/sptest.ads
    c/src/ada-tests/sptests/sp21/config.h
    c/src/ada-tests/sptests/sp21/sp21.adb
    c/src/ada-tests/sptests/sp21/sp21.scn
    c/src/ada-tests/sptests/sp21/sptest.adb
    c/src/ada-tests/sptests/sp21/sptest.ads
    c/src/ada-tests/sptests/sp22/config.h
    c/src/ada-tests/sptests/sp22/sp22.adb
    c/src/ada-tests/sptests/sp22/sp22.scn
    c/src/ada-tests/sptests/sp22/sptest.adb
    c/src/ada-tests/sptests/sp22/sptest.ads
    c/src/ada-tests/sptests/sp23/config.h
    c/src/ada-tests/sptests/sp23/sp23.adb
    c/src/ada-tests/sptests/sp23/sp23.scn
    c/src/ada-tests/sptests/sp23/sptest.adb
    c/src/ada-tests/sptests/sp23/sptest.ads
    c/src/ada-tests/sptests/sp24/config.h
    c/src/ada-tests/sptests/sp24/sp24.adb
    c/src/ada-tests/sptests/sp24/sp24.scn
    c/src/ada-tests/sptests/sp24/sptest.adb
    c/src/ada-tests/sptests/sp24/sptest.ads
    c/src/ada-tests/sptests/sp25/config.h
    c/src/ada-tests/sptests/sp25/sp25.adb
    c/src/ada-tests/sptests/sp25/sp25.scn
    c/src/ada-tests/sptests/sp25/sptest.adb
    c/src/ada-tests/sptests/sp25/sptest.ads
    c/src/ada-tests/sptests/spsize/spsize.adb
    c/src/ada-tests/sptests/spsize/sptest.adb
    c/src/ada-tests/sptests/spsize/sptest.ads
    c/src/ada-tests/support/address_io.adb
    c/src/ada-tests/support/address_io.ads
    c/src/ada-tests/support/float_io.ads
    c/src/ada-tests/support/fp.inc
    c/src/ada-tests/support/init.c
    c/src/ada-tests/support/integer.inc
    c/src/ada-tests/support/rtems_calling_overhead.ads
    c/src/ada-tests/support/status_io.ads
    c/src/ada-tests/support/test_support.adb
    c/src/ada-tests/support/test_support.ads
    c/src/ada-tests/support/time_test_support.adb
    c/src/ada-tests/support/time_test_support.ads
    c/src/ada-tests/support/timer_driver.adb
    c/src/ada-tests/support/timer_driver.ads
    c/src/ada-tests/support/unsigned32_io.ads
    c/src/ada-tests/tmtests/tm01/config.h
    c/src/ada-tests/tmtests/tm01/tm01.adb
    c/src/ada-tests/tmtests/tm01/tmtest.adb
    c/src/ada-tests/tmtests/tm01/tmtest.ads
    c/src/ada-tests/tmtests/tm02/config.h
    c/src/ada-tests/tmtests/tm02/tm02.adb
    c/src/ada-tests/tmtests/tm02/tmtest.adb
    c/src/ada-tests/tmtests/tm02/tmtest.ads
    c/src/ada-tests/tmtests/tm03/config.h
    c/src/ada-tests/tmtests/tm03/tm03.adb
    c/src/ada-tests/tmtests/tm03/tmtest.adb
    c/src/ada-tests/tmtests/tm03/tmtest.ads
    c/src/ada-tests/tmtests/tm04/config.h
    c/src/ada-tests/tmtests/tm04/tm04.adb
    c/src/ada-tests/tmtests/tm04/tmtest.adb
    c/src/ada-tests/tmtests/tm04/tmtest.ads
    c/src/ada-tests/tmtests/tm05/config.h
    c/src/ada-tests/tmtests/tm05/tm05.adb
    c/src/ada-tests/tmtests/tm05/tmtest.adb
    c/src/ada-tests/tmtests/tm05/tmtest.ads
    c/src/ada-tests/tmtests/tm06/config.h
    c/src/ada-tests/tmtests/tm06/tm06.adb
    c/src/ada-tests/tmtests/tm06/tmtest.adb
    c/src/ada-tests/tmtests/tm06/tmtest.ads
    c/src/ada-tests/tmtests/tm07/config.h
    c/src/ada-tests/tmtests/tm07/tm07.adb
    c/src/ada-tests/tmtests/tm07/tmtest.adb
    c/src/ada-tests/tmtests/tm07/tmtest.ads
    c/src/ada-tests/tmtests/tm08/config.h
    c/src/ada-tests/tmtests/tm08/tm08.adb
    c/src/ada-tests/tmtests/tm08/tmtest.adb
    c/src/ada-tests/tmtests/tm08/tmtest.ads
    c/src/ada-tests/tmtests/tm09/config.h
    c/src/ada-tests/tmtests/tm09/tm09.adb
    c/src/ada-tests/tmtests/tm09/tmtest.adb
    c/src/ada-tests/tmtests/tm09/tmtest.ads
    c/src/ada-tests/tmtests/tm10/config.h
    c/src/ada-tests/tmtests/tm10/tm10.adb
    c/src/ada-tests/tmtests/tm10/tmtest.adb
    c/src/ada-tests/tmtests/tm10/tmtest.ads
    c/src/ada-tests/tmtests/tm11/config.h
    c/src/ada-tests/tmtests/tm11/tm11.adb
    c/src/ada-tests/tmtests/tm11/tmtest.adb
    c/src/ada-tests/tmtests/tm11/tmtest.ads
    c/src/ada-tests/tmtests/tm12/config.h
    c/src/ada-tests/tmtests/tm12/tm12.adb
    c/src/ada-tests/tmtests/tm12/tmtest.adb
    c/src/ada-tests/tmtests/tm12/tmtest.ads
    c/src/ada-tests/tmtests/tm13/config.h
    c/src/ada-tests/tmtests/tm13/tm13.adb
    c/src/ada-tests/tmtests/tm13/tmtest.adb
    c/src/ada-tests/tmtests/tm13/tmtest.ads
    c/src/ada-tests/tmtests/tm14/config.h
    c/src/ada-tests/tmtests/tm14/tm14.adb
    c/src/ada-tests/tmtests/tm14/tmtest.adb
    c/src/ada-tests/tmtests/tm14/tmtest.ads
    c/src/ada-tests/tmtests/tm15/config.h
    c/src/ada-tests/tmtests/tm15/tm15.adb
    c/src/ada-tests/tmtests/tm15/tmtest.adb
    c/src/ada-tests/tmtests/tm15/tmtest.ads
    c/src/ada-tests/tmtests/tm16/config.h
    c/src/ada-tests/tmtests/tm16/tm16.adb
    c/src/ada-tests/tmtests/tm16/tmtest.adb
    c/src/ada-tests/tmtests/tm16/tmtest.ads
    c/src/ada-tests/tmtests/tm17/config.h
    c/src/ada-tests/tmtests/tm17/tm17.adb
    c/src/ada-tests/tmtests/tm17/tmtest.adb
    c/src/ada-tests/tmtests/tm17/tmtest.ads
    c/src/ada-tests/tmtests/tm18/config.h
    c/src/ada-tests/tmtests/tm18/tm18.adb
    c/src/ada-tests/tmtests/tm18/tmtest.adb
    c/src/ada-tests/tmtests/tm18/tmtest.ads
    c/src/ada-tests/tmtests/tm19/config.h
    c/src/ada-tests/tmtests/tm19/tm19.adb
    c/src/ada-tests/tmtests/tm19/tmtest.adb
    c/src/ada-tests/tmtests/tm19/tmtest.ads
    c/src/ada-tests/tmtests/tm20/config.h
    c/src/ada-tests/tmtests/tm20/tm20.adb
    c/src/ada-tests/tmtests/tm20/tmtest.adb
    c/src/ada-tests/tmtests/tm20/tmtest.ads
    c/src/ada-tests/tmtests/tm21/config.h
    c/src/ada-tests/tmtests/tm21/tm21.adb
    c/src/ada-tests/tmtests/tm21/tmtest.adb
    c/src/ada-tests/tmtests/tm21/tmtest.ads
    c/src/ada-tests/tmtests/tm22/config.h
    c/src/ada-tests/tmtests/tm22/tm22.adb
    c/src/ada-tests/tmtests/tm22/tmtest.adb
    c/src/ada-tests/tmtests/tm22/tmtest.ads
    c/src/ada-tests/tmtests/tm23/config.h
    c/src/ada-tests/tmtests/tm23/tm23.adb
    c/src/ada-tests/tmtests/tm23/tmtest.adb
    c/src/ada-tests/tmtests/tm23/tmtest.ads
    c/src/ada-tests/tmtests/tm24/config.h
    c/src/ada-tests/tmtests/tm24/tm24.adb
    c/src/ada-tests/tmtests/tm24/tmtest.adb
    c/src/ada-tests/tmtests/tm24/tmtest.ads
    c/src/ada-tests/tmtests/tm25/config.h
    c/src/ada-tests/tmtests/tm25/tm25.adb
    c/src/ada-tests/tmtests/tm25/tmtest.adb
    c/src/ada-tests/tmtests/tm25/tmtest.ads
    c/src/ada-tests/tmtests/tm26/README
    c/src/ada-tests/tmtests/tm26/config.h
    c/src/ada-tests/tmtests/tm26/tm26.adb
    c/src/ada-tests/tmtests/tm26/tmtest.adp
    c/src/ada-tests/tmtests/tm26/tmtest.ads
    c/src/ada-tests/tmtests/tm27/README
    c/src/ada-tests/tmtests/tm27/config.h
    c/src/ada-tests/tmtests/tm27/tm27.adb
    c/src/ada-tests/tmtests/tm27/tmtest.adb
    c/src/ada-tests/tmtests/tm27/tmtest.ads
    c/src/ada-tests/tmtests/tm28/config.h
    c/src/ada-tests/tmtests/tm28/tm28.adb
    c/src/ada-tests/tmtests/tm28/tmtest.adb
    c/src/ada-tests/tmtests/tm28/tmtest.ads
    c/src/ada-tests/tmtests/tm29/config.h
    c/src/ada-tests/tmtests/tm29/tm29.adb
    c/src/ada-tests/tmtests/tm29/tmtest.adb
    c/src/ada-tests/tmtests/tm29/tmtest.ads
    c/src/ada-tests/tmtests/tmck/config.h
    c/src/ada-tests/tmtests/tmck/tmck.adb
    c/src/ada-tests/tmtests/tmck/tmtest.adb
    c/src/ada-tests/tmtests/tmck/tmtest.ads
    c/src/ada-tests/tmtests/tmoverhd/README
    c/src/ada-tests/tmtests/tmoverhd/config.h
    c/src/ada-tests/tmtests/tmoverhd/dummy_rtems.adb
    c/src/ada-tests/tmtests/tmoverhd/dummy_rtems.ads
    c/src/ada-tests/tmtests/tmoverhd/tmoverhd.adb
    c/src/ada-tests/tmtests/tmoverhd/tmtest.adb
    c/src/ada-tests/tmtests/tmoverhd/tmtest.ads
    c/src/ada/rtems.adb
    c/src/ada/rtems.ads
    c/src/exec/libcsupport/include/chain.h
    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/motorola/mc68230.h
    c/src/exec/libcsupport/include/motorola/mc68681.h
    c/src/exec/libcsupport/include/ringbuf.h
    c/src/exec/libcsupport/include/rtems/assoc.h
    c/src/exec/libcsupport/include/rtems/error.h
    c/src/exec/libcsupport/include/rtems/libcsupport.h
    c/src/exec/libcsupport/include/rtems/libio.h
    c/src/exec/libcsupport/include/spurious.h
    c/src/exec/libcsupport/include/sys/filio.h
    c/src/exec/libcsupport/include/sys/ioctl.h
    c/src/exec/libcsupport/include/sys/sockio.h
    c/src/exec/libcsupport/include/sys/termios.h
    c/src/exec/libcsupport/include/sys/utsname.h
    c/src/exec/libcsupport/include/timerdrv.h
    c/src/exec/libcsupport/include/vmeintr.h
    c/src/exec/libcsupport/include/zilog/z8036.h
    c/src/exec/libcsupport/include/zilog/z8530.h
    c/src/exec/libcsupport/include/zilog/z8536.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/assoc.c
    c/src/exec/libcsupport/src/closedir.c
    c/src/exec/libcsupport/src/error.c
    c/src/exec/libcsupport/src/getdents.c
    c/src/exec/libcsupport/src/hosterr.c
    c/src/exec/libcsupport/src/libio.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/opendir.c
    c/src/exec/libcsupport/src/readdir.c
    c/src/exec/libcsupport/src/rewinddir.c
    c/src/exec/libcsupport/src/scandir.c
    c/src/exec/libcsupport/src/seekdir.c
    c/src/exec/libcsupport/src/tcdrain.c
    c/src/exec/libcsupport/src/telldir.c
    c/src/exec/libcsupport/src/termios.c
    c/src/exec/libcsupport/src/unixlibc.c
    c/src/exec/libcsupport/src/utsname.c
    c/src/exec/libnetworking/README
    c/src/exec/libnetworking/arpa/ftp.h
    c/src/exec/libnetworking/arpa/inet.h
    c/src/exec/libnetworking/arpa/nameser.h
    c/src/exec/libnetworking/arpa/nameser_compat.h
    c/src/exec/libnetworking/arpa/telnet.h
    c/src/exec/libnetworking/bpfilter.h
    c/src/exec/libnetworking/kern/kern_subr.c
    c/src/exec/libnetworking/kern/uipc_domain.c
    c/src/exec/libnetworking/kern/uipc_mbuf.c
    c/src/exec/libnetworking/kern/uipc_socket.c
    c/src/exec/libnetworking/kern/uipc_socket2.c
    c/src/exec/libnetworking/lib/README
    c/src/exec/libnetworking/lib/getprotoby.c
    c/src/exec/libnetworking/lib/syslog.c
    c/src/exec/libnetworking/lib/tftpDriver.c
    c/src/exec/libnetworking/libc/addr2ascii.3
    c/src/exec/libnetworking/libc/addr2ascii.c
    c/src/exec/libnetworking/libc/ascii2addr.c
    c/src/exec/libnetworking/libc/base64.c
    c/src/exec/libnetworking/libc/byteorder.3
    c/src/exec/libnetworking/libc/ether_addr.c
    c/src/exec/libnetworking/libc/ethers.3
    c/src/exec/libnetworking/libc/gethostbydns.c
    c/src/exec/libnetworking/libc/gethostbyht.c
    c/src/exec/libnetworking/libc/gethostbyname.3
    c/src/exec/libnetworking/libc/gethostbynis.c
    c/src/exec/libnetworking/libc/gethostnamadr.c
    c/src/exec/libnetworking/libc/gethostname.c
    c/src/exec/libnetworking/libc/getnetbydns.c
    c/src/exec/libnetworking/libc/getnetbyht.c
    c/src/exec/libnetworking/libc/getnetbynis.c
    c/src/exec/libnetworking/libc/getnetent.3
    c/src/exec/libnetworking/libc/getnetnamadr.c
    c/src/exec/libnetworking/libc/getproto.c
    c/src/exec/libnetworking/libc/getprotoent.3
    c/src/exec/libnetworking/libc/getprotoent.c
    c/src/exec/libnetworking/libc/getprotoname.c
    c/src/exec/libnetworking/libc/getservbyname.c
    c/src/exec/libnetworking/libc/getservbyport.c
    c/src/exec/libnetworking/libc/getservent.3
    c/src/exec/libnetworking/libc/getservent.c
    c/src/exec/libnetworking/libc/herror.c
    c/src/exec/libnetworking/libc/inet.3
    c/src/exec/libnetworking/libc/inet_addr.c
    c/src/exec/libnetworking/libc/inet_lnaof.c
    c/src/exec/libnetworking/libc/inet_makeaddr.c
    c/src/exec/libnetworking/libc/inet_net_ntop.c
    c/src/exec/libnetworking/libc/inet_net_pton.c
    c/src/exec/libnetworking/libc/inet_neta.c
    c/src/exec/libnetworking/libc/inet_netof.c
    c/src/exec/libnetworking/libc/inet_network.c
    c/src/exec/libnetworking/libc/inet_ntoa.c
    c/src/exec/libnetworking/libc/inet_ntop.c
    c/src/exec/libnetworking/libc/inet_pton.c
    c/src/exec/libnetworking/libc/iso_addr.3
    c/src/exec/libnetworking/libc/iso_addr.c
    c/src/exec/libnetworking/libc/linkaddr.3
    c/src/exec/libnetworking/libc/linkaddr.c
    c/src/exec/libnetworking/libc/map_v4v6.c
    c/src/exec/libnetworking/libc/ns.3
    c/src/exec/libnetworking/libc/ns_addr.c
    c/src/exec/libnetworking/libc/ns_name.c
    c/src/exec/libnetworking/libc/ns_netint.c
    c/src/exec/libnetworking/libc/ns_ntoa.c
    c/src/exec/libnetworking/libc/ns_parse.c
    c/src/exec/libnetworking/libc/ns_print.c
    c/src/exec/libnetworking/libc/ns_ttl.c
    c/src/exec/libnetworking/libc/nsap_addr.c
    c/src/exec/libnetworking/libc/rcmd.3
    c/src/exec/libnetworking/libc/rcmd.c
    c/src/exec/libnetworking/libc/recv.c
    c/src/exec/libnetworking/libc/res_comp.c
    c/src/exec/libnetworking/libc/res_config.h
    c/src/exec/libnetworking/libc/res_data.c
    c/src/exec/libnetworking/libc/res_debug.c
    c/src/exec/libnetworking/libc/res_init.c
    c/src/exec/libnetworking/libc/res_mkquery.c
    c/src/exec/libnetworking/libc/res_mkupdate.c
    c/src/exec/libnetworking/libc/res_query.c
    c/src/exec/libnetworking/libc/res_send.c
    c/src/exec/libnetworking/libc/res_stubs.c
    c/src/exec/libnetworking/libc/res_update.c
    c/src/exec/libnetworking/libc/resolver.3
    c/src/exec/libnetworking/libc/send.c
    c/src/exec/libnetworking/libc/strsep.c
    c/src/exec/libnetworking/loop.h
    c/src/exec/libnetworking/machine/conf.h
    c/src/exec/libnetworking/machine/cpu.h
    c/src/exec/libnetworking/machine/cpufunc.h
    c/src/exec/libnetworking/machine/endian.h
    c/src/exec/libnetworking/machine/in_cksum.h
    c/src/exec/libnetworking/machine/limits.h
    c/src/exec/libnetworking/machine/param.h
    c/src/exec/libnetworking/machine/types.h
    c/src/exec/libnetworking/machine/vmparam.h
    c/src/exec/libnetworking/net/bpf.h
    c/src/exec/libnetworking/net/ethernet.h
    c/src/exec/libnetworking/net/if.c
    c/src/exec/libnetworking/net/if.h
    c/src/exec/libnetworking/net/if_arp.h
    c/src/exec/libnetworking/net/if_dl.h
    c/src/exec/libnetworking/net/if_ethersubr.c
    c/src/exec/libnetworking/net/if_llc.h
    c/src/exec/libnetworking/net/if_loop.c
    c/src/exec/libnetworking/net/if_types.h
    c/src/exec/libnetworking/net/netisr.h
    c/src/exec/libnetworking/net/radix.c
    c/src/exec/libnetworking/net/radix.h
    c/src/exec/libnetworking/net/raw_cb.c
    c/src/exec/libnetworking/net/raw_cb.h
    c/src/exec/libnetworking/net/raw_usrreq.c
    c/src/exec/libnetworking/net/route.c
    c/src/exec/libnetworking/net/route.h
    c/src/exec/libnetworking/net/rtsock.c
    c/src/exec/libnetworking/netdb.h
    c/src/exec/libnetworking/netinet/icmp_var.h
    c/src/exec/libnetworking/netinet/if_ether.c
    c/src/exec/libnetworking/netinet/if_ether.h
    c/src/exec/libnetworking/netinet/igmp.c
    c/src/exec/libnetworking/netinet/igmp.h
    c/src/exec/libnetworking/netinet/igmp_var.h
    c/src/exec/libnetworking/netinet/in.c
    c/src/exec/libnetworking/netinet/in.h
    c/src/exec/libnetworking/netinet/in_cksum.c
    c/src/exec/libnetworking/netinet/in_cksum_i386.c
    c/src/exec/libnetworking/netinet/in_cksum_m68k.c
    c/src/exec/libnetworking/netinet/in_pcb.c
    c/src/exec/libnetworking/netinet/in_pcb.h
    c/src/exec/libnetworking/netinet/in_proto.c
    c/src/exec/libnetworking/netinet/in_rmx.c
    c/src/exec/libnetworking/netinet/in_systm.h
    c/src/exec/libnetworking/netinet/in_var.h
    c/src/exec/libnetworking/netinet/ip.h
    c/src/exec/libnetworking/netinet/ip_divert.c
    c/src/exec/libnetworking/netinet/ip_fw.c
    c/src/exec/libnetworking/netinet/ip_fw.h
    c/src/exec/libnetworking/netinet/ip_icmp.c
    c/src/exec/libnetworking/netinet/ip_icmp.h
    c/src/exec/libnetworking/netinet/ip_input.c
    c/src/exec/libnetworking/netinet/ip_mroute.c
    c/src/exec/libnetworking/netinet/ip_mroute.h
    c/src/exec/libnetworking/netinet/ip_output.c
    c/src/exec/libnetworking/netinet/ip_var.h
    c/src/exec/libnetworking/netinet/raw_ip.c
    c/src/exec/libnetworking/netinet/tcp.h
    c/src/exec/libnetworking/netinet/tcp_debug.c
    c/src/exec/libnetworking/netinet/tcp_debug.h
    c/src/exec/libnetworking/netinet/tcp_fsm.h
    c/src/exec/libnetworking/netinet/tcp_input.c
    c/src/exec/libnetworking/netinet/tcp_output.c
    c/src/exec/libnetworking/netinet/tcp_seq.h
    c/src/exec/libnetworking/netinet/tcp_subr.c
    c/src/exec/libnetworking/netinet/tcp_timer.c
    c/src/exec/libnetworking/netinet/tcp_timer.h
    c/src/exec/libnetworking/netinet/tcp_usrreq.c
    c/src/exec/libnetworking/netinet/tcp_var.h
    c/src/exec/libnetworking/netinet/tcpip.h
    c/src/exec/libnetworking/netinet/udp.h
    c/src/exec/libnetworking/netinet/udp_usrreq.c
    c/src/exec/libnetworking/netinet/udp_var.h
    c/src/exec/libnetworking/nfs/bootp_subr.c
    c/src/exec/libnetworking/nfs/krpc.h
    c/src/exec/libnetworking/nfs/nfs.h
    c/src/exec/libnetworking/nfs/nfsdiskless.h
    c/src/exec/libnetworking/nfs/nfsproto.h
    c/src/exec/libnetworking/nfs/rpcv2.h
    c/src/exec/libnetworking/nfs/xdr_subs.h
    c/src/exec/libnetworking/opt_ipfw.h
    c/src/exec/libnetworking/opt_mrouting.h
    c/src/exec/libnetworking/opt_tcpdebug.h
    c/src/exec/libnetworking/poll.h
    c/src/exec/libnetworking/resolv.h
    c/src/exec/libnetworking/rtems/issetugid.c
    c/src/exec/libnetworking/rtems/rtems_bootp.c
    c/src/exec/libnetworking/rtems/rtems_bsdnet.h
    c/src/exec/libnetworking/rtems/rtems_bsdnet_internal.h
    c/src/exec/libnetworking/rtems/rtems_glue.c
    c/src/exec/libnetworking/rtems/rtems_showicmpstat.c
    c/src/exec/libnetworking/rtems/rtems_showifstat.c
    c/src/exec/libnetworking/rtems/rtems_showipstat.c
    c/src/exec/libnetworking/rtems/rtems_showmbuf.c
    c/src/exec/libnetworking/rtems/rtems_showroute.c
    c/src/exec/libnetworking/rtems/rtems_showtcpstat.c
    c/src/exec/libnetworking/rtems/rtems_showudpstat.c
    c/src/exec/libnetworking/rtems/rtems_syscall.c
    c/src/exec/libnetworking/rtems/sghostname.c
    c/src/exec/libnetworking/rtems/tftp.h
    c/src/exec/libnetworking/sys/buf.h
    c/src/exec/libnetworking/sys/callout.h
    c/src/exec/libnetworking/sys/conf.h
    c/src/exec/libnetworking/sys/domain.h
    c/src/exec/libnetworking/sys/kernel.h
    c/src/exec/libnetworking/sys/libkern.h
    c/src/exec/libnetworking/sys/malloc.h
    c/src/exec/libnetworking/sys/mbuf.h
    c/src/exec/libnetworking/sys/mount.h
    c/src/exec/libnetworking/sys/param.h
    c/src/exec/libnetworking/sys/proc.h
    c/src/exec/libnetworking/sys/protosw.h
    c/src/exec/libnetworking/sys/queue.h
    c/src/exec/libnetworking/sys/reboot.h
    c/src/exec/libnetworking/sys/resourcevar.h
    c/src/exec/libnetworking/sys/rtprio.h
    c/src/exec/libnetworking/sys/select.h
    c/src/exec/libnetworking/sys/signalvar.h
    c/src/exec/libnetworking/sys/socket.h
    c/src/exec/libnetworking/sys/socketvar.h
    c/src/exec/libnetworking/sys/sysctl.h
    c/src/exec/libnetworking/sys/syslimits.h
    c/src/exec/libnetworking/sys/syslog.h
    c/src/exec/libnetworking/sys/systm.h
    c/src/exec/libnetworking/sys/ttydefaults.h
    c/src/exec/libnetworking/sys/ucred.h
    c/src/exec/libnetworking/sys/uio.h
    c/src/exec/libnetworking/syslog.h
    c/src/exec/libnetworking/vm/vm.h
    c/src/exec/libnetworking/vm/vm_extern.h
    c/src/exec/libnetworking/vm/vm_kern.h
    c/src/exec/libnetworking/vm/vm_param.h
    c/src/exec/posix/include/aio.h
    c/src/exec/posix/include/devctl.h
    c/src/exec/posix/include/intr.h
    c/src/exec/posix/include/limits.h
    c/src/exec/posix/include/mqueue.h
    c/src/exec/posix/include/pthread.h
    c/src/exec/posix/include/rtems/posix/Makefile.in
    c/src/exec/posix/include/rtems/posix/cancel.h
    c/src/exec/posix/include/rtems/posix/cond.h
    c/src/exec/posix/include/rtems/posix/condmp.h
    c/src/exec/posix/include/rtems/posix/config.h
    c/src/exec/posix/include/rtems/posix/intr.h
    c/src/exec/posix/include/rtems/posix/key.h
    c/src/exec/posix/include/rtems/posix/mqueue.h
    c/src/exec/posix/include/rtems/posix/mqueuemp.h
    c/src/exec/posix/include/rtems/posix/mutex.h
    c/src/exec/posix/include/rtems/posix/mutexmp.h
    c/src/exec/posix/include/rtems/posix/posixapi.h
    c/src/exec/posix/include/rtems/posix/priority.h
    c/src/exec/posix/include/rtems/posix/psignal.h
    c/src/exec/posix/include/rtems/posix/pthread.h
    c/src/exec/posix/include/rtems/posix/pthreadmp.h
    c/src/exec/posix/include/rtems/posix/semaphore.h
    c/src/exec/posix/include/rtems/posix/semaphoremp.h
    c/src/exec/posix/include/rtems/posix/seterr.h
    c/src/exec/posix/include/rtems/posix/threadsup.h
    c/src/exec/posix/include/rtems/posix/time.h
    c/src/exec/posix/include/sched.h
    c/src/exec/posix/include/semaphore.h
    c/src/exec/posix/include/sys/Makefile.in
    c/src/exec/posix/include/sys/utsname.h
    c/src/exec/posix/include/unistd.h
    c/src/exec/posix/include/wrap/Makefile.in
    c/src/exec/posix/inline/rtems/posix/Makefile.in
    c/src/exec/posix/inline/rtems/posix/cond.inl
    c/src/exec/posix/inline/rtems/posix/intr.inl
    c/src/exec/posix/inline/rtems/posix/key.inl
    c/src/exec/posix/inline/rtems/posix/mqueue.inl
    c/src/exec/posix/inline/rtems/posix/mutex.inl
    c/src/exec/posix/inline/rtems/posix/priority.inl
    c/src/exec/posix/inline/rtems/posix/pthread.inl
    c/src/exec/posix/inline/rtems/posix/semaphore.inl
    c/src/exec/posix/macros/rtems/posix/Makefile.in
    c/src/exec/rtems/include/rtems.h
    c/src/exec/rtems/include/rtems/rtems/Makefile.in
    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/config.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/rtemsapi.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/support.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/include/rtems/rtems/types.h
    c/src/exec/rtems/inline/rtems/rtems/Makefile.in
    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/support.inl
    c/src/exec/rtems/inline/rtems/rtems/tasks.inl
    c/src/exec/rtems/inline/rtems/rtems/timer.inl
    c/src/exec/rtems/macros/rtems/rtems/Makefile.in
    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/support.inl
    c/src/exec/rtems/macros/rtems/rtems/tasks.inl
    c/src/exec/rtems/macros/rtems/rtems/timer.inl
    c/src/exec/rtems/src/rtclock.c
    c/src/exec/rtems/src/rtemstimer.c
    c/src/exec/sapi/include/confdefs.h
    c/src/exec/sapi/include/rtems/Makefile.in
    c/src/exec/sapi/include/rtems/README
    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/rtems/Makefile.in
    c/src/exec/sapi/inline/rtems/extension.inl
    c/src/exec/sapi/macros/rtems/Makefile.in
    c/src/exec/sapi/macros/rtems/extension.inl
    c/src/exec/score/cpu/mips/asm.h
    c/src/exec/score/cpu/mips/cpu.c
    c/src/exec/score/cpu/mips/cpu_asm.S
    c/src/exec/score/cpu/mips/cpu_asm.h
    c/src/exec/score/cpu/mips/idtcpu.h
    c/src/exec/score/cpu/mips/idtmon.h
    c/src/exec/score/cpu/mips/iregdef.h
    c/src/exec/score/cpu/mips/rtems.c
    c/src/exec/score/cpu/sh/ispsh7032.c
    c/src/exec/score/include/rtems/debug.h
    c/src/exec/score/include/rtems/score/Makefile.in
    c/src/exec/score/include/rtems/score/address.h
    c/src/exec/score/include/rtems/score/apiext.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/coremsg.h
    c/src/exec/score/include/rtems/score/coremutex.h
    c/src/exec/score/include/rtems/score/coresem.h
    c/src/exec/score/include/rtems/score/heap.h
    c/src/exec/score/include/rtems/score/interr.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/rtems/score/Makefile.in
    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/coremsg.inl
    c/src/exec/score/inline/rtems/score/coremutex.inl
    c/src/exec/score/inline/rtems/score/coresem.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/macros/rtems/score/Makefile.in
    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/coremsg.inl
    c/src/exec/score/macros/rtems/score/coremutex.inl
    c/src/exec/score/macros/rtems/score/coresem.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/src/coretod.c
    c/src/lib/include/rtems/assoc.h
    c/src/lib/include/rtems/error.h
    c/src/lib/include/rtems/libcsupport.h
    c/src/lib/include/rtems/libio.h
    c/src/lib/include/sys/filio.h
    c/src/lib/include/sys/ioctl.h
    c/src/lib/include/sys/sockio.h
    c/src/lib/include/sys/utsname.h
    c/src/lib/libbsp/a29k/portsw/start/Makefile.in
    c/src/lib/libbsp/a29k/portsw/start/amd.ah
    c/src/lib/libbsp/a29k/portsw/start/pswmacro.ah
    c/src/lib/libbsp/a29k/portsw/start/register.ah
    c/src/lib/libbsp/i386/shared/irq/idt.c
    c/src/lib/libbsp/i960/cvme961/start/Makefile.in
    c/src/lib/libbsp/m68k/efi332/start/Makefile.in
    c/src/lib/libbsp/m68k/efi332/start/start.c
    c/src/lib/libbsp/m68k/efi68k/start/Makefile.in
    c/src/lib/libbsp/m68k/efi68k/start/start.c
    c/src/lib/libbsp/m68k/gen68302/start/Makefile.in
    c/src/lib/libbsp/m68k/gen68302/start/start302.s
    c/src/lib/libbsp/m68k/gen68340/start/Makefile.in
    c/src/lib/libbsp/m68k/gen68340/start/start340.s
    c/src/lib/libbsp/m68k/gen68340/start/startfor340only.s
    c/src/lib/libbsp/m68k/gen68360/start/Makefile.in
    c/src/lib/libbsp/m68k/gen68360/start/start360.s
    c/src/lib/libbsp/m68k/ods68302/start/Makefile.in
    c/src/lib/libbsp/m68k/ods68302/start/cpuboot.c
    c/src/lib/libbsp/m68k/ods68302/start/debugreset.S
    c/src/lib/libbsp/m68k/ods68302/start/reset.S
    c/src/lib/libbsp/m68k/ods68302/startup/cpuboot.c
    c/src/lib/libbsp/mips/README
    c/src/lib/libbsp/mips/p4000/README
    c/src/lib/libbsp/mips/p4000/bsp_specs
    c/src/lib/libbsp/mips/p4000/console/console.c
    c/src/lib/libbsp/mips/p4000/console/led.S
    c/src/lib/libbsp/mips/p4000/include/bsp.h
    c/src/lib/libbsp/mips/p4000/include/coverhd.h
    c/src/lib/libbsp/mips/p4000/liblnk/lnklib.S
    c/src/lib/libbsp/mips/p4000/start/start.S
    c/src/lib/libbsp/mips/p4000/startup/bspclean.c
    c/src/lib/libbsp/mips/p4000/startup/bspstart.c
    c/src/lib/libbsp/mips/p4000/startup/ghlinkcmds
    c/src/lib/libbsp/mips/p4000/startup/idtmem.S
    c/src/lib/libbsp/mips/p4000/startup/idttlb.S
    c/src/lib/libbsp/mips/p4000/startup/inittlb.c
    c/src/lib/libbsp/mips/p4000/startup/linkcmds
    c/src/lib/libbsp/mips/p4000/startup/setvec.c
    c/src/lib/libbsp/mips/p4000/times
    c/src/lib/libbsp/mips64orion/p4000/start/Makefile.in
    c/src/lib/libbsp/mips64orion/p4000/start/start.S
    c/src/lib/libbsp/powerpc/dmv177/Makefile.in
    c/src/lib/libbsp/powerpc/dmv177/QUIRKS
    c/src/lib/libbsp/powerpc/dmv177/README
    c/src/lib/libbsp/powerpc/dmv177/README.net
    c/src/lib/libbsp/powerpc/dmv177/STATUS
    c/src/lib/libbsp/powerpc/dmv177/bsp_specs
    c/src/lib/libbsp/powerpc/dmv177/cable.doc
    c/src/lib/libbsp/powerpc/dmv177/clock/Makefile.in
    c/src/lib/libbsp/powerpc/dmv177/clock/clock.c
    c/src/lib/libbsp/powerpc/dmv177/console/Makefile.in
    c/src/lib/libbsp/powerpc/dmv177/console/config.c
    c/src/lib/libbsp/powerpc/dmv177/console/conscfg.c
    c/src/lib/libbsp/powerpc/dmv177/console/debugio.c
    c/src/lib/libbsp/powerpc/dmv177/include/Makefile.in
    c/src/lib/libbsp/powerpc/dmv177/include/bsp.h
    c/src/lib/libbsp/powerpc/dmv177/include/coverhd.h
    c/src/lib/libbsp/powerpc/dmv177/include/dmv170.h
    c/src/lib/libbsp/powerpc/dmv177/scv64/Makefile.in
    c/src/lib/libbsp/powerpc/dmv177/scv64/scv64.c
    c/src/lib/libbsp/powerpc/dmv177/sonic/Makefile.in
    c/src/lib/libbsp/powerpc/dmv177/sonic/sonic.c
    c/src/lib/libbsp/powerpc/dmv177/sonic/sonic.h
    c/src/lib/libbsp/powerpc/dmv177/start/Makefile.in
    c/src/lib/libbsp/powerpc/dmv177/start/start.s
    c/src/lib/libbsp/powerpc/dmv177/startup/Makefile.in
    c/src/lib/libbsp/powerpc/dmv177/startup/bspclean.c
    c/src/lib/libbsp/powerpc/dmv177/startup/bspstart.c
    c/src/lib/libbsp/powerpc/dmv177/startup/genpvec.c
    c/src/lib/libbsp/powerpc/dmv177/startup/linkcmds
    c/src/lib/libbsp/powerpc/dmv177/startup/setvec.c
    c/src/lib/libbsp/powerpc/dmv177/startup/vmeintr.c
    c/src/lib/libbsp/powerpc/dmv177/timer/Makefile.in
    c/src/lib/libbsp/powerpc/dmv177/timer/timer.c
    c/src/lib/libbsp/powerpc/dmv177/times
    c/src/lib/libbsp/powerpc/dmv177/tod/Makefile.in
    c/src/lib/libbsp/powerpc/dmv177/tod/config.c
    c/src/lib/libbsp/powerpc/dmv177/tod/todcfg.c
    c/src/lib/libbsp/powerpc/dmv177/wrapup/Makefile.in
    c/src/lib/libbsp/powerpc/psim/start/Makefile.in
    c/src/lib/libbsp/powerpc/psim/start/startsim.s
    c/src/lib/libbsp/sh/gensh1/start/Makefile.in
    c/src/lib/libbsp/shared/console.c
    c/src/lib/libbsp/shared/tod.c
    c/src/lib/libbsp/shared/tod.h
    c/src/lib/libbsp/shmdr/shm_driver.h
    c/src/lib/libbsp/sparc/erc32/start/Makefile.in
    c/src/lib/libbsp/sparc/erc32/start/startsis.s
    c/src/lib/libc/assoc.c
    c/src/lib/libc/assoc.h
    c/src/lib/libc/error.c
    c/src/lib/libc/error.h
    c/src/lib/libc/utsname.c
    c/src/lib/libchip/Makefile.in
    c/src/lib/libchip/rtc/Makefile.in
    c/src/lib/libchip/rtc/README.ds1643
    c/src/lib/libchip/rtc/README.icm7170
    c/src/lib/libchip/rtc/README.m48t08
    c/src/lib/libchip/rtc/README.m48t18
    c/src/lib/libchip/rtc/STATUS
    c/src/lib/libchip/rtc/icm7170.c
    c/src/lib/libchip/rtc/icm7170.h
    c/src/lib/libchip/rtc/icm7170_reg.c
    c/src/lib/libchip/rtc/icm7170_reg2.c
    c/src/lib/libchip/rtc/icm7170_reg4.c
    c/src/lib/libchip/rtc/icm7170_reg8.c
    c/src/lib/libchip/rtc/m48t08.c
    c/src/lib/libchip/rtc/m48t08.h
    c/src/lib/libchip/rtc/m48t08_reg.c
    c/src/lib/libchip/rtc/m48t08_reg2.c
    c/src/lib/libchip/rtc/m48t08_reg4.c
    c/src/lib/libchip/rtc/m48t08_reg8.c
    c/src/lib/libchip/rtc/rtc.h
    c/src/lib/libchip/rtc/rtcprobe.c
    c/src/lib/libchip/serial/Makefile.in
    c/src/lib/libchip/serial/README
    c/src/lib/libchip/serial/README.mc68681
    c/src/lib/libchip/serial/README.ns16550
    c/src/lib/libchip/serial/README.xr88681
    c/src/lib/libchip/serial/README.z85c30
    c/src/lib/libchip/serial/STATUS
    c/src/lib/libchip/serial/mc68681.c
    c/src/lib/libchip/serial/mc68681.h
    c/src/lib/libchip/serial/mc68681_baud.c
    c/src/lib/libchip/serial/mc68681_p.h
    c/src/lib/libchip/serial/mc68681_reg.c
    c/src/lib/libchip/serial/mc68681_reg2.c
    c/src/lib/libchip/serial/mc68681_reg4.c
    c/src/lib/libchip/serial/mc68681_reg8.c
    c/src/lib/libchip/serial/ns16550.c
    c/src/lib/libchip/serial/ns16550.h
    c/src/lib/libchip/serial/ns16550_p.h
    c/src/lib/libchip/serial/serial.h
    c/src/lib/libchip/serial/serprobe.c
    c/src/lib/libchip/serial/sersupp.h
    c/src/lib/libchip/serial/termios_baud2index.c
    c/src/lib/libchip/serial/termios_baud2num.c
    c/src/lib/libchip/serial/z85c30.c
    c/src/lib/libchip/serial/z85c30.h
    c/src/lib/libchip/serial/z85c30_p.h
    c/src/lib/libchip/serial/z85c30_reg.c
    c/src/lib/libcpu/i386/idt.c
    c/src/lib/libcpu/m68k/shared/misc/memcpy.c
    c/src/lib/libcpu/mips/clock/ckinit.c
    c/src/lib/libcpu/mips/clock/clock.S
    c/src/lib/libcpu/mips/clock/clock.h
    c/src/lib/libcpu/mips/timer/gettime.S
    c/src/lib/libcpu/mips/timer/timer.c
    c/src/lib/libcpu/sh/sh7032/score/cpu_asm.c
    c/src/lib/libcpu/sh/sh7032/score/ispsh7032.c
    c/src/lib/libcpu/sh/sh7045/score/cpu_asm.c
    c/src/lib/libcpu/sparc/include/erc32.h
    c/src/libchip/rtc/Makefile.in
    c/src/libchip/rtc/README.ds1643
    c/src/libchip/rtc/README.icm7170
    c/src/libchip/rtc/README.m48t08
    c/src/libchip/rtc/README.m48t18
    c/src/libchip/rtc/STATUS
    c/src/libchip/rtc/icm7170.c
    c/src/libchip/rtc/icm7170.h
    c/src/libchip/rtc/icm7170_reg.c
    c/src/libchip/rtc/icm7170_reg2.c
    c/src/libchip/rtc/icm7170_reg4.c
    c/src/libchip/rtc/icm7170_reg8.c
    c/src/libchip/rtc/m48t08.c
    c/src/libchip/rtc/m48t08.h
    c/src/libchip/rtc/m48t08_reg.c
    c/src/libchip/rtc/m48t08_reg2.c
    c/src/libchip/rtc/m48t08_reg4.c
    c/src/libchip/rtc/m48t08_reg8.c
    c/src/libchip/rtc/rtc.h
    c/src/libchip/rtc/rtcprobe.c
    c/src/libchip/serial/Makefile.in
    c/src/libchip/serial/README
    c/src/libchip/serial/README.mc68681
    c/src/libchip/serial/README.ns16550
    c/src/libchip/serial/README.xr88681
    c/src/libchip/serial/README.z85c30
    c/src/libchip/serial/STATUS
    c/src/libchip/serial/mc68681.c
    c/src/libchip/serial/mc68681.h
    c/src/libchip/serial/mc68681_baud.c
    c/src/libchip/serial/mc68681_p.h
    c/src/libchip/serial/mc68681_reg.c
    c/src/libchip/serial/mc68681_reg2.c
    c/src/libchip/serial/mc68681_reg4.c
    c/src/libchip/serial/mc68681_reg8.c
    c/src/libchip/serial/ns16550.c
    c/src/libchip/serial/ns16550.h
    c/src/libchip/serial/ns16550_p.h
    c/src/libchip/serial/serial.h
    c/src/libchip/serial/serprobe.c
    c/src/libchip/serial/sersupp.h
    c/src/libchip/serial/termios_baud2index.c
    c/src/libchip/serial/termios_baud2num.c
    c/src/libchip/serial/z85c30.c
    c/src/libchip/serial/z85c30.h
    c/src/libchip/serial/z85c30_p.h
    c/src/libchip/serial/z85c30_reg.c
    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/assoc/Makefile.in
    c/src/libmisc/assoc/assoc.c
    c/src/libmisc/assoc/assoc.h
    c/src/libmisc/cpuuse/Makefile.in
    c/src/libmisc/cpuuse/README
    c/src/libmisc/cpuuse/cpuuse.c
    c/src/libmisc/cpuuse/cpuuse.h
    c/src/libmisc/cpuuse/internal.h
    c/src/libmisc/error/Makefile.in
    c/src/libmisc/error/error.c
    c/src/libmisc/error/error.h
    c/src/libmisc/monitor/Makefile.in
    c/src/libmisc/monitor/README
    c/src/libmisc/monitor/mon-command.c
    c/src/libmisc/monitor/mon-config.c
    c/src/libmisc/monitor/mon-dname.c
    c/src/libmisc/monitor/mon-driver.c
    c/src/libmisc/monitor/mon-extension.c
    c/src/libmisc/monitor/mon-itask.c
    c/src/libmisc/monitor/mon-manager.c
    c/src/libmisc/monitor/mon-monitor.c
    c/src/libmisc/monitor/mon-mpci.c
    c/src/libmisc/monitor/mon-object.c
    c/src/libmisc/monitor/mon-prmisc.c
    c/src/libmisc/monitor/mon-queue.c
    c/src/libmisc/monitor/mon-server.c
    c/src/libmisc/monitor/mon-symbols.c
    c/src/libmisc/monitor/mon-task.c
    c/src/libmisc/monitor/monitor.h
    c/src/libmisc/monitor/symbols.h
    c/src/libmisc/rtmonuse/Makefile.in
    c/src/libmisc/rtmonuse/rtmonuse.c
    c/src/libmisc/rtmonuse/rtmonuse.h
    c/src/libmisc/stackchk/Makefile.in
    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/libmisc/wrapup/Makefile.in
    c/src/libnetworking/CHANGELOG
    c/src/libnetworking/Makefile.in
    c/src/libnetworking/README
    c/src/libnetworking/arpa/ftp.h
    c/src/libnetworking/arpa/inet.h
    c/src/libnetworking/arpa/nameser.h
    c/src/libnetworking/arpa/nameser_compat.h
    c/src/libnetworking/arpa/telnet.h
    c/src/libnetworking/bpfilter.h
    c/src/libnetworking/include/Makefile.in
    c/src/libnetworking/kern/Makefile.in
    c/src/libnetworking/kern/kern_subr.c
    c/src/libnetworking/kern/uipc_domain.c
    c/src/libnetworking/kern/uipc_mbuf.c
    c/src/libnetworking/kern/uipc_socket.c
    c/src/libnetworking/kern/uipc_socket2.c
    c/src/libnetworking/lib/Makefile.in
    c/src/libnetworking/lib/README
    c/src/libnetworking/lib/getprotoby.c
    c/src/libnetworking/lib/syslog.c
    c/src/libnetworking/lib/tftpDriver.c
    c/src/libnetworking/libc/Makefile.in
    c/src/libnetworking/libc/addr2ascii.3
    c/src/libnetworking/libc/addr2ascii.c
    c/src/libnetworking/libc/ascii2addr.c
    c/src/libnetworking/libc/base64.c
    c/src/libnetworking/libc/byteorder.3
    c/src/libnetworking/libc/ether_addr.c
    c/src/libnetworking/libc/ethers.3
    c/src/libnetworking/libc/gethostbydns.c
    c/src/libnetworking/libc/gethostbyht.c
    c/src/libnetworking/libc/gethostbyname.3
    c/src/libnetworking/libc/gethostbynis.c
    c/src/libnetworking/libc/gethostnamadr.c
    c/src/libnetworking/libc/gethostname.c
    c/src/libnetworking/libc/getnetbydns.c
    c/src/libnetworking/libc/getnetbyht.c
    c/src/libnetworking/libc/getnetbynis.c
    c/src/libnetworking/libc/getnetent.3
    c/src/libnetworking/libc/getnetnamadr.c
    c/src/libnetworking/libc/getproto.c
    c/src/libnetworking/libc/getprotoent.3
    c/src/libnetworking/libc/getprotoent.c
    c/src/libnetworking/libc/getprotoname.c
    c/src/libnetworking/libc/getservbyname.c
    c/src/libnetworking/libc/getservbyport.c
    c/src/libnetworking/libc/getservent.3
    c/src/libnetworking/libc/getservent.c
    c/src/libnetworking/libc/herror.c
    c/src/libnetworking/libc/inet.3
    c/src/libnetworking/libc/inet_addr.c
    c/src/libnetworking/libc/inet_lnaof.c
    c/src/libnetworking/libc/inet_makeaddr.c
    c/src/libnetworking/libc/inet_net_ntop.c
    c/src/libnetworking/libc/inet_net_pton.c
    c/src/libnetworking/libc/inet_neta.c
    c/src/libnetworking/libc/inet_netof.c
    c/src/libnetworking/libc/inet_network.c
    c/src/libnetworking/libc/inet_ntoa.c
    c/src/libnetworking/libc/inet_ntop.c
    c/src/libnetworking/libc/inet_pton.c
    c/src/libnetworking/libc/iso_addr.3
    c/src/libnetworking/libc/iso_addr.c
    c/src/libnetworking/libc/linkaddr.3
    c/src/libnetworking/libc/linkaddr.c
    c/src/libnetworking/libc/map_v4v6.c
    c/src/libnetworking/libc/ns.3
    c/src/libnetworking/libc/ns_addr.c
    c/src/libnetworking/libc/ns_name.c
    c/src/libnetworking/libc/ns_netint.c
    c/src/libnetworking/libc/ns_ntoa.c
    c/src/libnetworking/libc/ns_parse.c
    c/src/libnetworking/libc/ns_print.c
    c/src/libnetworking/libc/ns_ttl.c
    c/src/libnetworking/libc/nsap_addr.c
    c/src/libnetworking/libc/rcmd.3
    c/src/libnetworking/libc/rcmd.c
    c/src/libnetworking/libc/recv.c
    c/src/libnetworking/libc/res_comp.c
    c/src/libnetworking/libc/res_config.h
    c/src/libnetworking/libc/res_data.c
    c/src/libnetworking/libc/res_debug.c
    c/src/libnetworking/libc/res_init.c
    c/src/libnetworking/libc/res_mkquery.c
    c/src/libnetworking/libc/res_mkupdate.c
    c/src/libnetworking/libc/res_query.c
    c/src/libnetworking/libc/res_send.c
    c/src/libnetworking/libc/res_stubs.c
    c/src/libnetworking/libc/res_update.c
    c/src/libnetworking/libc/resolver.3
    c/src/libnetworking/libc/send.c
    c/src/libnetworking/libc/strsep.c
    c/src/libnetworking/loop.h
    c/src/libnetworking/machine/conf.h
    c/src/libnetworking/machine/cpu.h
    c/src/libnetworking/machine/cpufunc.h
    c/src/libnetworking/machine/endian.h
    c/src/libnetworking/machine/in_cksum.h
    c/src/libnetworking/machine/limits.h
    c/src/libnetworking/machine/param.h
    c/src/libnetworking/machine/types.h
    c/src/libnetworking/machine/vmparam.h
    c/src/libnetworking/net/Makefile.in
    c/src/libnetworking/net/bpf.h
    c/src/libnetworking/net/ethernet.h
    c/src/libnetworking/net/if.c
    c/src/libnetworking/net/if.h
    c/src/libnetworking/net/if_arp.h
    c/src/libnetworking/net/if_dl.h
    c/src/libnetworking/net/if_ethersubr.c
    c/src/libnetworking/net/if_llc.h
    c/src/libnetworking/net/if_loop.c
    c/src/libnetworking/net/if_types.h
    c/src/libnetworking/net/netisr.h
    c/src/libnetworking/net/radix.c
    c/src/libnetworking/net/radix.h
    c/src/libnetworking/net/raw_cb.c
    c/src/libnetworking/net/raw_cb.h
    c/src/libnetworking/net/raw_usrreq.c
    c/src/libnetworking/net/route.c
    c/src/libnetworking/net/route.h
    c/src/libnetworking/net/rtsock.c
    c/src/libnetworking/netdb.h
    c/src/libnetworking/netinet/Makefile.in
    c/src/libnetworking/netinet/icmp_var.h
    c/src/libnetworking/netinet/if_ether.c
    c/src/libnetworking/netinet/if_ether.h
    c/src/libnetworking/netinet/igmp.c
    c/src/libnetworking/netinet/igmp.h
    c/src/libnetworking/netinet/igmp_var.h
    c/src/libnetworking/netinet/in.c
    c/src/libnetworking/netinet/in.h
    c/src/libnetworking/netinet/in_cksum.c
    c/src/libnetworking/netinet/in_cksum_i386.c
    c/src/libnetworking/netinet/in_cksum_m68k.c
    c/src/libnetworking/netinet/in_pcb.c
    c/src/libnetworking/netinet/in_pcb.h
    c/src/libnetworking/netinet/in_proto.c
    c/src/libnetworking/netinet/in_rmx.c
    c/src/libnetworking/netinet/in_systm.h
    c/src/libnetworking/netinet/in_var.h
    c/src/libnetworking/netinet/ip.h
    c/src/libnetworking/netinet/ip_divert.c
    c/src/libnetworking/netinet/ip_fw.c
    c/src/libnetworking/netinet/ip_fw.h
    c/src/libnetworking/netinet/ip_icmp.c
    c/src/libnetworking/netinet/ip_icmp.h
    c/src/libnetworking/netinet/ip_input.c
    c/src/libnetworking/netinet/ip_mroute.c
    c/src/libnetworking/netinet/ip_mroute.h
    c/src/libnetworking/netinet/ip_output.c
    c/src/libnetworking/netinet/ip_var.h
    c/src/libnetworking/netinet/raw_ip.c
    c/src/libnetworking/netinet/tcp.h
    c/src/libnetworking/netinet/tcp_debug.c
    c/src/libnetworking/netinet/tcp_debug.h
    c/src/libnetworking/netinet/tcp_fsm.h
    c/src/libnetworking/netinet/tcp_input.c
    c/src/libnetworking/netinet/tcp_output.c
    c/src/libnetworking/netinet/tcp_seq.h
    c/src/libnetworking/netinet/tcp_subr.c
    c/src/libnetworking/netinet/tcp_timer.c
    c/src/libnetworking/netinet/tcp_timer.h
    c/src/libnetworking/netinet/tcp_usrreq.c
    c/src/libnetworking/netinet/tcp_var.h
    c/src/libnetworking/netinet/tcpip.h
    c/src/libnetworking/netinet/udp.h
    c/src/libnetworking/netinet/udp_usrreq.c
    c/src/libnetworking/netinet/udp_var.h
    c/src/libnetworking/nfs/Makefile.in
    c/src/libnetworking/nfs/bootp_subr.c
    c/src/libnetworking/nfs/krpc.h
    c/src/libnetworking/nfs/nfs.h
    c/src/libnetworking/nfs/nfsdiskless.h
    c/src/libnetworking/nfs/nfsproto.h
    c/src/libnetworking/nfs/rpcv2.h
    c/src/libnetworking/nfs/xdr_subs.h
    c/src/libnetworking/opt_ipfw.h
    c/src/libnetworking/opt_mrouting.h
    c/src/libnetworking/opt_tcpdebug.h
    c/src/libnetworking/poll.h
    c/src/libnetworking/resolv.h
    c/src/libnetworking/rtems/Makefile.in
    c/src/libnetworking/rtems/issetugid.c
    c/src/libnetworking/rtems/rtems_bootp.c
    c/src/libnetworking/rtems/rtems_bsdnet.h
    c/src/libnetworking/rtems/rtems_bsdnet_internal.h
    c/src/libnetworking/rtems/rtems_glue.c
    c/src/libnetworking/rtems/rtems_showicmpstat.c
    c/src/libnetworking/rtems/rtems_showifstat.c
    c/src/libnetworking/rtems/rtems_showipstat.c
    c/src/libnetworking/rtems/rtems_showmbuf.c
    c/src/libnetworking/rtems/rtems_showroute.c
    c/src/libnetworking/rtems/rtems_showtcpstat.c
    c/src/libnetworking/rtems/rtems_showudpstat.c
    c/src/libnetworking/rtems/rtems_syscall.c
    c/src/libnetworking/rtems/sghostname.c
    c/src/libnetworking/rtems/tftp.h
    c/src/libnetworking/sys/buf.h
    c/src/libnetworking/sys/callout.h
    c/src/libnetworking/sys/cdefs.h
    c/src/libnetworking/sys/conf.h
    c/src/libnetworking/sys/domain.h
    c/src/libnetworking/sys/filio.h
    c/src/libnetworking/sys/ioccom.h
    c/src/libnetworking/sys/ioctl.h
    c/src/libnetworking/sys/kernel.h
    c/src/libnetworking/sys/libkern.h
    c/src/libnetworking/sys/malloc.h
    c/src/libnetworking/sys/mbuf.h
    c/src/libnetworking/sys/mount.h
    c/src/libnetworking/sys/param.h
    c/src/libnetworking/sys/proc.h
    c/src/libnetworking/sys/protosw.h
    c/src/libnetworking/sys/queue.h
    c/src/libnetworking/sys/reboot.h
    c/src/libnetworking/sys/resourcevar.h
    c/src/libnetworking/sys/rtprio.h
    c/src/libnetworking/sys/select.h
    c/src/libnetworking/sys/signalvar.h
    c/src/libnetworking/sys/socket.h
    c/src/libnetworking/sys/socketvar.h
    c/src/libnetworking/sys/sockio.h
    c/src/libnetworking/sys/sysctl.h
    c/src/libnetworking/sys/syslimits.h
    c/src/libnetworking/sys/syslog.h
    c/src/libnetworking/sys/systm.h
    c/src/libnetworking/sys/ttycom.h
    c/src/libnetworking/sys/ttydefaults.h
    c/src/libnetworking/sys/ucred.h
    c/src/libnetworking/sys/uio.h
    c/src/libnetworking/syslog.h
    c/src/libnetworking/vm/vm.h
    c/src/libnetworking/vm/vm_extern.h
    c/src/libnetworking/vm/vm_kern.h
    c/src/libnetworking/vm/vm_param.h
    c/src/libnetworking/wrapup/Makefile.in
    c/src/librtems++/README
    c/src/librtems++/include/rtems++/rtemsEvent.h
    c/src/librtems++/include/rtems++/rtemsInterrupt.h
    c/src/librtems++/include/rtems++/rtemsMessageQueue.h
    c/src/librtems++/include/rtems++/rtemsSemaphore.h
    c/src/librtems++/include/rtems++/rtemsStatusCode.h
    c/src/librtems++/include/rtems++/rtemsTask.h
    c/src/librtems++/include/rtems++/rtemsTaskMode.h
    c/src/librtems++/include/rtems++/rtemsTimer.h
    c/src/librtems++/src/Makefile.in
    c/src/librtems++/src/rtemsEvent.cc
    c/src/librtems++/src/rtemsInterrupt.cc
    c/src/librtems++/src/rtemsMessageQueue.cc
    c/src/librtems++/src/rtemsSemaphore.cc
    c/src/librtems++/src/rtemsStatusCode.cc
    c/src/librtems++/src/rtemsTask.cc
    c/src/librtems++/src/rtemsTimer.cc
    c/src/make/README
    c/src/make/compilers/gcc-target-default.cfg
    c/src/make/directory.cfg
    c/src/make/host.cfg.in
    c/src/make/lib.cfg
    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/psxtests/include/pmacros.h
    c/src/wrapup/Makefile.in
    cpukit/ada/rtems.adb
    cpukit/ada/rtems.ads
    cpukit/libcsupport/include/chain.h
    cpukit/libcsupport/include/clockdrv.h
    cpukit/libcsupport/include/console.h
    cpukit/libcsupport/include/iosupp.h
    cpukit/libcsupport/include/motorola/mc68230.h
    cpukit/libcsupport/include/motorola/mc68681.h
    cpukit/libcsupport/include/ringbuf.h
    cpukit/libcsupport/include/rtems/assoc.h
    cpukit/libcsupport/include/rtems/error.h
    cpukit/libcsupport/include/rtems/libcsupport.h
    cpukit/libcsupport/include/rtems/libio.h
    cpukit/libcsupport/include/spurious.h
    cpukit/libcsupport/include/sys/filio.h
    cpukit/libcsupport/include/sys/ioctl.h
    cpukit/libcsupport/include/sys/sockio.h
    cpukit/libcsupport/include/sys/termios.h
    cpukit/libcsupport/include/sys/utsname.h
    cpukit/libcsupport/include/timerdrv.h
    cpukit/libcsupport/include/vmeintr.h
    cpukit/libcsupport/include/zilog/z8036.h
    cpukit/libcsupport/include/zilog/z8530.h
    cpukit/libcsupport/include/zilog/z8536.h
    cpukit/libcsupport/src/README
    cpukit/libcsupport/src/__brk.c
    cpukit/libcsupport/src/__gettod.c
    cpukit/libcsupport/src/__times.c
    cpukit/libcsupport/src/assoc.c
    cpukit/libcsupport/src/closedir.c
    cpukit/libcsupport/src/error.c
    cpukit/libcsupport/src/getdents.c
    cpukit/libcsupport/src/hosterr.c
    cpukit/libcsupport/src/libio.c
    cpukit/libcsupport/src/malloc.c
    cpukit/libcsupport/src/newlibc.c
    cpukit/libcsupport/src/no_libc.c
    cpukit/libcsupport/src/opendir.c
    cpukit/libcsupport/src/readdir.c
    cpukit/libcsupport/src/rewinddir.c
    cpukit/libcsupport/src/scandir.c
    cpukit/libcsupport/src/seekdir.c
    cpukit/libcsupport/src/tcdrain.c
    cpukit/libcsupport/src/telldir.c
    cpukit/libcsupport/src/termios.c
    cpukit/libcsupport/src/unixlibc.c
    cpukit/libcsupport/src/utsname.c
    cpukit/libmisc/README
    cpukit/libmisc/cpuuse/README
    cpukit/libmisc/cpuuse/cpuuse.c
    cpukit/libmisc/cpuuse/cpuuse.h
    cpukit/libmisc/monitor/README
    cpukit/libmisc/monitor/mon-command.c
    cpukit/libmisc/monitor/mon-config.c
    cpukit/libmisc/monitor/mon-dname.c
    cpukit/libmisc/monitor/mon-driver.c
    cpukit/libmisc/monitor/mon-extension.c
    cpukit/libmisc/monitor/mon-itask.c
    cpukit/libmisc/monitor/mon-manager.c
    cpukit/libmisc/monitor/mon-monitor.c
    cpukit/libmisc/monitor/mon-mpci.c
    cpukit/libmisc/monitor/mon-object.c
    cpukit/libmisc/monitor/mon-prmisc.c
    cpukit/libmisc/monitor/mon-queue.c
    cpukit/libmisc/monitor/mon-server.c
    cpukit/libmisc/monitor/mon-symbols.c
    cpukit/libmisc/monitor/mon-task.c
    cpukit/libmisc/monitor/monitor.h
    cpukit/libmisc/monitor/symbols.h
    cpukit/libmisc/rtmonuse/rtmonuse.c
    cpukit/libmisc/rtmonuse/rtmonuse.h
    cpukit/libmisc/stackchk/README
    cpukit/libmisc/stackchk/check.c
    cpukit/libmisc/stackchk/internal.h
    cpukit/libmisc/stackchk/stackchk.h
    cpukit/libnetworking/README
    cpukit/libnetworking/arpa/ftp.h
    cpukit/libnetworking/arpa/inet.h
    cpukit/libnetworking/arpa/nameser.h
    cpukit/libnetworking/arpa/nameser_compat.h
    cpukit/libnetworking/arpa/telnet.h
    cpukit/libnetworking/bpfilter.h
    cpukit/libnetworking/kern/kern_subr.c
    cpukit/libnetworking/kern/uipc_domain.c
    cpukit/libnetworking/kern/uipc_mbuf.c
    cpukit/libnetworking/kern/uipc_socket.c
    cpukit/libnetworking/kern/uipc_socket2.c
    cpukit/libnetworking/lib/README
    cpukit/libnetworking/lib/getprotoby.c
    cpukit/libnetworking/lib/syslog.c
    cpukit/libnetworking/lib/tftpDriver.c
    cpukit/libnetworking/libc/addr2ascii.3
    cpukit/libnetworking/libc/addr2ascii.c
    cpukit/libnetworking/libc/ascii2addr.c
    cpukit/libnetworking/libc/base64.c
    cpukit/libnetworking/libc/byteorder.3
    cpukit/libnetworking/libc/ether_addr.c
    cpukit/libnetworking/libc/ethers.3
    cpukit/libnetworking/libc/gethostbydns.c
    cpukit/libnetworking/libc/gethostbyht.c
    cpukit/libnetworking/libc/gethostbyname.3
    cpukit/libnetworking/libc/gethostbynis.c
    cpukit/libnetworking/libc/gethostnamadr.c
    cpukit/libnetworking/libc/gethostname.c
    cpukit/libnetworking/libc/getnetbydns.c
    cpukit/libnetworking/libc/getnetbyht.c
    cpukit/libnetworking/libc/getnetbynis.c
    cpukit/libnetworking/libc/getnetent.3
    cpukit/libnetworking/libc/getnetnamadr.c
    cpukit/libnetworking/libc/getproto.c
    cpukit/libnetworking/libc/getprotoent.3
    cpukit/libnetworking/libc/getprotoent.c
    cpukit/libnetworking/libc/getprotoname.c
    cpukit/libnetworking/libc/getservbyname.c
    cpukit/libnetworking/libc/getservbyport.c
    cpukit/libnetworking/libc/getservent.3
    cpukit/libnetworking/libc/getservent.c
    cpukit/libnetworking/libc/herror.c
    cpukit/libnetworking/libc/inet.3
    cpukit/libnetworking/libc/inet_addr.c
    cpukit/libnetworking/libc/inet_lnaof.c
    cpukit/libnetworking/libc/inet_makeaddr.c
    cpukit/libnetworking/libc/inet_net_ntop.c
    cpukit/libnetworking/libc/inet_net_pton.c
    cpukit/libnetworking/libc/inet_neta.c
    cpukit/libnetworking/libc/inet_netof.c
    cpukit/libnetworking/libc/inet_network.c
    cpukit/libnetworking/libc/inet_ntoa.c
    cpukit/libnetworking/libc/inet_ntop.c
    cpukit/libnetworking/libc/inet_pton.c
    cpukit/libnetworking/libc/iso_addr.3
    cpukit/libnetworking/libc/iso_addr.c
    cpukit/libnetworking/libc/linkaddr.3
    cpukit/libnetworking/libc/linkaddr.c
    cpukit/libnetworking/libc/map_v4v6.c
    cpukit/libnetworking/libc/ns.3
    cpukit/libnetworking/libc/ns_addr.c
    cpukit/libnetworking/libc/ns_name.c
    cpukit/libnetworking/libc/ns_netint.c
    cpukit/libnetworking/libc/ns_ntoa.c
    cpukit/libnetworking/libc/ns_parse.c
    cpukit/libnetworking/libc/ns_print.c
    cpukit/libnetworking/libc/ns_ttl.c
    cpukit/libnetworking/libc/nsap_addr.c
    cpukit/libnetworking/libc/rcmd.3
    cpukit/libnetworking/libc/rcmd.c
    cpukit/libnetworking/libc/recv.c
    cpukit/libnetworking/libc/res_comp.c
    cpukit/libnetworking/libc/res_config.h
    cpukit/libnetworking/libc/res_data.c
    cpukit/libnetworking/libc/res_debug.c
    cpukit/libnetworking/libc/res_init.c
    cpukit/libnetworking/libc/res_mkquery.c
    cpukit/libnetworking/libc/res_mkupdate.c
    cpukit/libnetworking/libc/res_query.c
    cpukit/libnetworking/libc/res_send.c
    cpukit/libnetworking/libc/res_stubs.c
    cpukit/libnetworking/libc/res_update.c
    cpukit/libnetworking/libc/resolver.3
    cpukit/libnetworking/libc/send.c
    cpukit/libnetworking/libc/strsep.c
    cpukit/libnetworking/loop.h
    cpukit/libnetworking/machine/conf.h
    cpukit/libnetworking/machine/cpu.h
    cpukit/libnetworking/machine/cpufunc.h
    cpukit/libnetworking/machine/endian.h
    cpukit/libnetworking/machine/in_cksum.h
    cpukit/libnetworking/machine/limits.h
    cpukit/libnetworking/machine/param.h
    cpukit/libnetworking/machine/types.h
    cpukit/libnetworking/machine/vmparam.h
    cpukit/libnetworking/net/bpf.h
    cpukit/libnetworking/net/ethernet.h
    cpukit/libnetworking/net/if.c
    cpukit/libnetworking/net/if.h
    cpukit/libnetworking/net/if_arp.h
    cpukit/libnetworking/net/if_dl.h
    cpukit/libnetworking/net/if_ethersubr.c
    cpukit/libnetworking/net/if_llc.h
    cpukit/libnetworking/net/if_loop.c
    cpukit/libnetworking/net/if_types.h
    cpukit/libnetworking/net/netisr.h
    cpukit/libnetworking/net/radix.c
    cpukit/libnetworking/net/radix.h
    cpukit/libnetworking/net/raw_cb.c
    cpukit/libnetworking/net/raw_cb.h
    cpukit/libnetworking/net/raw_usrreq.c
    cpukit/libnetworking/net/route.c
    cpukit/libnetworking/net/route.h
    cpukit/libnetworking/net/rtsock.c
    cpukit/libnetworking/netdb.h
    cpukit/libnetworking/netinet/icmp_var.h
    cpukit/libnetworking/netinet/if_ether.c
    cpukit/libnetworking/netinet/if_ether.h
    cpukit/libnetworking/netinet/igmp.c
    cpukit/libnetworking/netinet/igmp.h
    cpukit/libnetworking/netinet/igmp_var.h
    cpukit/libnetworking/netinet/in.c
    cpukit/libnetworking/netinet/in.h
    cpukit/libnetworking/netinet/in_cksum.c
    cpukit/libnetworking/netinet/in_cksum_i386.c
    cpukit/libnetworking/netinet/in_cksum_i386.h
    cpukit/libnetworking/netinet/in_cksum_m68k.c
    cpukit/libnetworking/netinet/in_cksum_m68k.h
    cpukit/libnetworking/netinet/in_pcb.c
    cpukit/libnetworking/netinet/in_pcb.h
    cpukit/libnetworking/netinet/in_proto.c
    cpukit/libnetworking/netinet/in_rmx.c
    cpukit/libnetworking/netinet/in_systm.h
    cpukit/libnetworking/netinet/in_var.h
    cpukit/libnetworking/netinet/ip.h
    cpukit/libnetworking/netinet/ip_divert.c
    cpukit/libnetworking/netinet/ip_fw.c
    cpukit/libnetworking/netinet/ip_fw.h
    cpukit/libnetworking/netinet/ip_icmp.c
    cpukit/libnetworking/netinet/ip_icmp.h
    cpukit/libnetworking/netinet/ip_input.c
    cpukit/libnetworking/netinet/ip_mroute.c
    cpukit/libnetworking/netinet/ip_mroute.h
    cpukit/libnetworking/netinet/ip_output.c
    cpukit/libnetworking/netinet/ip_var.h
    cpukit/libnetworking/netinet/raw_ip.c
    cpukit/libnetworking/netinet/tcp.h
    cpukit/libnetworking/netinet/tcp_debug.c
    cpukit/libnetworking/netinet/tcp_debug.h
    cpukit/libnetworking/netinet/tcp_fsm.h
    cpukit/libnetworking/netinet/tcp_input.c
    cpukit/libnetworking/netinet/tcp_output.c
    cpukit/libnetworking/netinet/tcp_seq.h
    cpukit/libnetworking/netinet/tcp_subr.c
    cpukit/libnetworking/netinet/tcp_timer.c
    cpukit/libnetworking/netinet/tcp_timer.h
    cpukit/libnetworking/netinet/tcp_usrreq.c
    cpukit/libnetworking/netinet/tcp_var.h
    cpukit/libnetworking/netinet/tcpip.h
    cpukit/libnetworking/netinet/udp.h
    cpukit/libnetworking/netinet/udp_usrreq.c
    cpukit/libnetworking/netinet/udp_var.h
    cpukit/libnetworking/nfs/bootp_subr.c
    cpukit/libnetworking/nfs/krpc.h
    cpukit/libnetworking/nfs/nfs.h
    cpukit/libnetworking/nfs/nfsdiskless.h
    cpukit/libnetworking/nfs/nfsproto.h
    cpukit/libnetworking/nfs/rpcv2.h
    cpukit/libnetworking/nfs/xdr_subs.h
    cpukit/libnetworking/opt_ipfw.h
    cpukit/libnetworking/opt_mrouting.h
    cpukit/libnetworking/opt_tcpdebug.h
    cpukit/libnetworking/poll.h
    cpukit/libnetworking/resolv.h
    cpukit/libnetworking/rtems/issetugid.c
    cpukit/libnetworking/rtems/rtems_bootp.c
    cpukit/libnetworking/rtems/rtems_bsdnet.h
    cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
    cpukit/libnetworking/rtems/rtems_glue.c
    cpukit/libnetworking/rtems/rtems_showicmpstat.c
    cpukit/libnetworking/rtems/rtems_showifstat.c
    cpukit/libnetworking/rtems/rtems_showipstat.c
    cpukit/libnetworking/rtems/rtems_showmbuf.c
    cpukit/libnetworking/rtems/rtems_showroute.c
    cpukit/libnetworking/rtems/rtems_showtcpstat.c
    cpukit/libnetworking/rtems/rtems_showudpstat.c
    cpukit/libnetworking/rtems/rtems_syscall.c
    cpukit/libnetworking/rtems/sghostname.c
    cpukit/libnetworking/rtems/tftp.h
    cpukit/libnetworking/sys/buf.h
    cpukit/libnetworking/sys/callout.h
    cpukit/libnetworking/sys/conf.h
    cpukit/libnetworking/sys/domain.h
    cpukit/libnetworking/sys/kernel.h
    cpukit/libnetworking/sys/libkern.h
    cpukit/libnetworking/sys/malloc.h
    cpukit/libnetworking/sys/mbuf.h
    cpukit/libnetworking/sys/mount.h
    cpukit/libnetworking/sys/param.h
    cpukit/libnetworking/sys/proc.h
    cpukit/libnetworking/sys/protosw.h
    cpukit/libnetworking/sys/queue.h
    cpukit/libnetworking/sys/reboot.h
    cpukit/libnetworking/sys/resourcevar.h
    cpukit/libnetworking/sys/rtprio.h
    cpukit/libnetworking/sys/select.h
    cpukit/libnetworking/sys/signalvar.h
    cpukit/libnetworking/sys/socket.h
    cpukit/libnetworking/sys/socketvar.h
    cpukit/libnetworking/sys/sysctl.h
    cpukit/libnetworking/sys/syslimits.h
    cpukit/libnetworking/sys/syslog.h
    cpukit/libnetworking/sys/systm.h
    cpukit/libnetworking/sys/ttydefaults.h
    cpukit/libnetworking/sys/ucred.h
    cpukit/libnetworking/sys/uio.h
    cpukit/libnetworking/syslog.h
    cpukit/libnetworking/vm/vm.h
    cpukit/libnetworking/vm/vm_extern.h
    cpukit/libnetworking/vm/vm_kern.h
    cpukit/libnetworking/vm/vm_param.h
    cpukit/posix/include/aio.h
    cpukit/posix/include/devctl.h
    cpukit/posix/include/intr.h
    cpukit/posix/include/mqueue.h
    cpukit/posix/include/rtems/posix/cancel.h
    cpukit/posix/include/rtems/posix/cond.h
    cpukit/posix/include/rtems/posix/condmp.h
    cpukit/posix/include/rtems/posix/config.h
    cpukit/posix/include/rtems/posix/intr.h
    cpukit/posix/include/rtems/posix/key.h
    cpukit/posix/include/rtems/posix/mqueue.h
    cpukit/posix/include/rtems/posix/mqueuemp.h
    cpukit/posix/include/rtems/posix/mutex.h
    cpukit/posix/include/rtems/posix/mutexmp.h
    cpukit/posix/include/rtems/posix/posixapi.h
    cpukit/posix/include/rtems/posix/priority.h
    cpukit/posix/include/rtems/posix/psignal.h
    cpukit/posix/include/rtems/posix/pthread.h
    cpukit/posix/include/rtems/posix/pthreadmp.h
    cpukit/posix/include/rtems/posix/semaphore.h
    cpukit/posix/include/rtems/posix/semaphoremp.h
    cpukit/posix/include/rtems/posix/threadsup.h
    cpukit/posix/include/rtems/posix/time.h
    cpukit/posix/include/sched.h
    cpukit/posix/include/semaphore.h
    cpukit/posix/inline/rtems/posix/cond.inl
    cpukit/posix/inline/rtems/posix/intr.inl
    cpukit/posix/inline/rtems/posix/key.inl
    cpukit/posix/inline/rtems/posix/mqueue.inl
    cpukit/posix/inline/rtems/posix/mutex.inl
    cpukit/posix/inline/rtems/posix/priority.inl
    cpukit/posix/inline/rtems/posix/pthread.inl
    cpukit/posix/inline/rtems/posix/semaphore.inl
    cpukit/posix/src/adasupp.c
    cpukit/posix/src/aio.c
    cpukit/posix/src/cancel.c
    cpukit/posix/src/cond.c
    cpukit/posix/src/devctl.c
    cpukit/posix/src/execl.c
    cpukit/posix/src/execle.c
    cpukit/posix/src/execlp.c
    cpukit/posix/src/execv.c
    cpukit/posix/src/execve.c
    cpukit/posix/src/execvp.c
    cpukit/posix/src/fork.c
    cpukit/posix/src/getpid.c
    cpukit/posix/src/intr.c
    cpukit/posix/src/key.c
    cpukit/posix/src/mqueue.c
    cpukit/posix/src/mutex.c
    cpukit/posix/src/psignal.c
    cpukit/posix/src/pthread.c
    cpukit/posix/src/pthreadatfork.c
    cpukit/posix/src/ptimer.c
    cpukit/posix/src/sched.c
    cpukit/posix/src/semaphore.c
    cpukit/posix/src/time.c
    cpukit/posix/src/types.c
    cpukit/posix/src/wait.c
    cpukit/posix/src/waitpid.c
    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/config.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/rtemsapi.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/support.h
    cpukit/rtems/include/rtems/rtems/taskmp.h
    cpukit/rtems/include/rtems/rtems/tasks.h
    cpukit/rtems/include/rtems/rtems/timer.h
    cpukit/rtems/include/rtems/rtems/types.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/support.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/support.inl
    cpukit/rtems/macros/rtems/rtems/tasks.inl
    cpukit/rtems/macros/rtems/rtems/timer.inl
    cpukit/rtems/src/attr.c
    cpukit/rtems/src/dpmem.c
    cpukit/rtems/src/event.c
    cpukit/rtems/src/eventmp.c
    cpukit/rtems/src/intr.c
    cpukit/rtems/src/intrbody.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/confdefs.h
    cpukit/sapi/include/rtems/README
    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/sapi/src/posixapi.c
    cpukit/sapi/src/rtemsapi.c
    cpukit/score/cpu/a29k/amd.ah
    cpukit/score/cpu/a29k/asm.h
    cpukit/score/cpu/a29k/cpu.c
    cpukit/score/cpu/a29k/pswmacro.ah
    cpukit/score/cpu/a29k/register.ah
    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/m68302.h
    cpukit/score/cpu/m68k/m68360.h
    cpukit/score/cpu/m68k/memcpy.c
    cpukit/score/cpu/m68k/qsm.h
    cpukit/score/cpu/m68k/rtems/asm.h
    cpukit/score/cpu/m68k/rtems/m68k/m68302.h
    cpukit/score/cpu/m68k/rtems/m68k/m68360.h
    cpukit/score/cpu/m68k/rtems/m68k/qsm.h
    cpukit/score/cpu/m68k/rtems/m68k/sim.h
    cpukit/score/cpu/m68k/sim.h
    cpukit/score/cpu/mips/asm.h
    cpukit/score/cpu/mips/cpu.c
    cpukit/score/cpu/mips/cpu_asm.S
    cpukit/score/cpu/mips/idtcpu.h
    cpukit/score/cpu/mips/iregdef.h
    cpukit/score/cpu/mips/rtems/asm.h
    cpukit/score/cpu/mips/rtems/mips/idtcpu.h
    cpukit/score/cpu/mips/rtems/mips/iregdef.h
    cpukit/score/cpu/mips64orion/asm.h
    cpukit/score/cpu/mips64orion/cpu.c
    cpukit/score/cpu/mips64orion/cpu_asm.S
    cpukit/score/cpu/mips64orion/cpu_asm.h
    cpukit/score/cpu/mips64orion/idtcpu.h
    cpukit/score/cpu/mips64orion/idtmon.h
    cpukit/score/cpu/mips64orion/iregdef.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/sh/asm.h
    cpukit/score/cpu/sh/cpu.c
    cpukit/score/cpu/sh/rtems/asm.h
    cpukit/score/cpu/sparc/README
    cpukit/score/cpu/sparc/asm.h
    cpukit/score/cpu/sparc/cpu.c
    cpukit/score/cpu/sparc/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/apiext.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/coremsg.h
    cpukit/score/include/rtems/score/coremutex.h
    cpukit/score/include/rtems/score/coresem.h
    cpukit/score/include/rtems/score/heap.h
    cpukit/score/include/rtems/score/interr.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/coremsg.inl
    cpukit/score/inline/rtems/score/coremutex.inl
    cpukit/score/inline/rtems/score/coresem.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/coremsg.inl
    cpukit/score/macros/rtems/score/coremutex.inl
    cpukit/score/macros/rtems/score/coresem.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/apiext.c
    cpukit/score/src/chain.c
    cpukit/score/src/coremsg.c
    cpukit/score/src/coremutex.c
    cpukit/score/src/coresem.c
    cpukit/score/src/coretod.c
    cpukit/score/src/heap.c
    cpukit/score/src/interr.c
    cpukit/score/src/isr.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/userext.c
    cpukit/score/src/watchdog.c
    cpukit/score/src/wkspace.c
    cpukit/zlib/doc/rfc1950.txt
    cpukit/zlib/doc/rfc1951.txt
    cpukit/zlib/doc/rfc1952.txt
    doc/HELP.html
    doc/Make.config
    doc/Makefile
    doc/README
    doc/TODO
    doc/ada_user/Makefile
    doc/ada_user/ada_user.texi
    doc/ada_user/example.texi
    doc/archgrey.gif
    doc/bsp_howto/Makefile
    doc/bsp_howto/analog.t
    doc/bsp_howto/bsp_howto.texi
    doc/bsp_howto/clock.t
    doc/bsp_howto/console.t
    doc/bsp_howto/discrete.t
    doc/bsp_howto/init.t
    doc/bsp_howto/intro.t
    doc/bsp_howto/linkcmds.t
    doc/bsp_howto/makefiles.t
    doc/bsp_howto/network.t
    doc/bsp_howto/nvmem.t
    doc/bsp_howto/rtc.t
    doc/bsp_howto/shmsupp.t
    doc/bsp_howto/support.t
    doc/bsp_howto/target.t
    doc/bsp_howto/timer.t
    doc/common/cpright.texi
    doc/common/oaronly.jpg
    doc/common/setup.texi
    doc/common/timemac.texi
    doc/common/timetbl.t
    doc/common/timing.t
    doc/common/treedef.tex
    doc/common/up-arrow.gif
    doc/common/wksheets.t
    doc/develenv/Makefile
    doc/develenv/compile.texi
    doc/develenv/develenv.texi
    doc/develenv/direct.texi
    doc/develenv/intro.texi
    doc/develenv/sample.texi
    doc/develenv/utils.texi
    doc/do_docs
    doc/index.html
    doc/networking/Makefile
    doc/networking/driver.t
    doc/networking/networkapp.t
    doc/networking/networking.eps
    doc/networking/networking.gif
    doc/networking/networking.texi
    doc/networking/networktasks.t
    doc/networking/preface.texi
    doc/networking/testing.t
    doc/new_chapters/Makefile
    doc/new_chapters/STATUS
    doc/new_chapters/adminiface.t
    doc/new_chapters/base.t
    doc/new_chapters/cancel.t
    doc/new_chapters/clock.t
    doc/new_chapters/cond.t
    doc/new_chapters/confspace.t
    doc/new_chapters/cspecific.t
    doc/new_chapters/device.t
    doc/new_chapters/dumpcontrol.t
    doc/new_chapters/eventlog.t
    doc/new_chapters/files.t
    doc/new_chapters/gen_section
    doc/new_chapters/io.t
    doc/new_chapters/key.t
    doc/new_chapters/memorymgmt.t
    doc/new_chapters/message.t
    doc/new_chapters/mutex.t
    doc/new_chapters/posix_users.texi
    doc/new_chapters/preface.texi
    doc/new_chapters/procenv.t
    doc/new_chapters/process.t
    doc/new_chapters/sched.t
    doc/new_chapters/semaphores.t
    doc/new_chapters/signal.t
    doc/new_chapters/systemdb.t
    doc/new_chapters/thread.t
    doc/oaronly.jpg
    doc/posix1003.1/Makefile
    doc/posix1003.1/ch01.t
    doc/posix1003.1/ch02.t
    doc/posix1003.1/ch03.t
    doc/posix1003.1/ch04.t
    doc/posix1003.1/ch05.t
    doc/posix1003.1/ch06.t
    doc/posix1003.1/ch07.t
    doc/posix1003.1/ch08.t
    doc/posix1003.1/ch09.t
    doc/posix1003.1/ch10.t
    doc/posix1003.1/ch11.t
    doc/posix1003.1/ch12.t
    doc/posix1003.1/ch13.t
    doc/posix1003.1/ch14.t
    doc/posix1003.1/ch15.t
    doc/posix1003.1/ch16.t
    doc/posix1003.1/ch17.t
    doc/posix1003.1/ch18.t
    doc/posix1003.1/posix1003_1.texi
    doc/posix1003.1/preface.texi
    doc/posix1003.1/summarize
    doc/posix_users/Makefile
    doc/posix_users/base.texi
    doc/posix_users/clock.texi
    doc/posix_users/cond.texi
    doc/posix_users/key.texi
    doc/posix_users/mutex.texi
    doc/posix_users/posix_users.texi
    doc/posix_users/preface.texi
    doc/posix_users/sched.texi
    doc/posix_users/signal.texi
    doc/posix_users/thread.texi
    doc/relnotes/Makefile
    doc/relnotes/install.texi
    doc/relnotes/intro.texi
    doc/relnotes/probrep.texi
    doc/relnotes/relnotes.texi
    doc/relnotes/status.texi
    doc/rtems_footer.html
    doc/rtems_header.html
    doc/rtems_support.html
    doc/src2html/Makefile
    doc/src2html/RTEMS.test
    doc/started/Makefile
    doc/started/buildc.t
    doc/started/buildrt.t
    doc/started/gdb.t
    doc/started/intro.t
    doc/started/nt.t
    doc/started/pictures/bit_ada.jpg
    doc/started/pictures/bit_ada.vsd
    doc/started/pictures/bit_c.jpg
    doc/started/pictures/bit_c.vsd
    doc/started/pictures/scfile10.jpg
    doc/started/pictures/scfile10.vsd
    doc/started/pictures/scfile11.jpg
    doc/started/pictures/scfile11.vsd
    doc/started/pictures/scfile12.jpg
    doc/started/pictures/scfile12.vsd
    doc/started/pictures/scfile13.jpg
    doc/started/pictures/scfile13.vsd
    doc/started/pictures/scsfile1.jpg
    doc/started/pictures/scsfile1.vsd
    doc/started/pictures/scsfile2.jpg
    doc/started/pictures/scsfile2.vsd
    doc/started/pictures/scsfile3.jpg
    doc/started/pictures/scsfile3.vsd
    doc/started/pictures/scsfile4.jpg
    doc/started/pictures/scsfile4.vsd
    doc/started/pictures/scsfile5.jpg
    doc/started/pictures/scsfile5.vsd
    doc/started/pictures/scsfile6.jpg
    doc/started/pictures/scsfile6.vsd
    doc/started/pictures/scsfile7.jpg
    doc/started/pictures/scsfile7.vsd
    doc/started/pictures/scsfile8.jpg
    doc/started/pictures/scsfile8.vsd
    doc/started/pictures/scsfile9.jpg
    doc/started/pictures/scsfile9.vsd
    doc/started/pictures/sfile12c.jpg
    doc/started/pictures/sfile12c.vsd
    doc/started/require.t
    doc/started/sample.t
    doc/started/started.texi
    doc/started/versions.texi
    doc/started_ada/Makefile
    doc/started_ada/buildada.t
    doc/started_ada/buildrt.t
    doc/started_ada/gdb.t
    doc/started_ada/intro.t
    doc/started_ada/require.t
    doc/started_ada/sample.t
    doc/started_ada/started_ada.texi
    doc/started_ada/versions.texi
    doc/supplements/hppa1_1/Makefile
    doc/supplements/hppa1_1/SIMHPPA_TIMES
    doc/supplements/hppa1_1/bsp.t
    doc/supplements/hppa1_1/callconv.t
    doc/supplements/hppa1_1/cpumodel.t
    doc/supplements/hppa1_1/cputable.t
    doc/supplements/hppa1_1/fatalerr.t
    doc/supplements/hppa1_1/hppa1_1.texi
    doc/supplements/hppa1_1/intr_NOTIMES.t
    doc/supplements/hppa1_1/memmodel.t
    doc/supplements/hppa1_1/preface.texi
    doc/supplements/hppa1_1/timeSIMHPPA.t
    doc/supplements/i386/FORCE386_TIMES
    doc/supplements/i386/Makefile
    doc/supplements/i386/bsp.t
    doc/supplements/i386/callconv.t
    doc/supplements/i386/cpumodel.t
    doc/supplements/i386/cputable.t
    doc/supplements/i386/fatalerr.t
    doc/supplements/i386/i386.texi
    doc/supplements/i386/intr_NOTIMES.t
    doc/supplements/i386/memmodel.t
    doc/supplements/i386/preface.texi
    doc/supplements/i386/timeFORCE386.t
    doc/supplements/i960/CVME961_TIMES
    doc/supplements/i960/Makefile
    doc/supplements/i960/bsp.t
    doc/supplements/i960/callconv.t
    doc/supplements/i960/cpumodel.t
    doc/supplements/i960/cputable.t
    doc/supplements/i960/fatalerr.t
    doc/supplements/i960/i960.texi
    doc/supplements/i960/intr_NOTIMES.t
    doc/supplements/i960/memmodel.t
    doc/supplements/i960/preface.texi
    doc/supplements/i960/timeCVME961.t
    doc/supplements/m68k/MVME136_TIMES
    doc/supplements/m68k/Makefile
    doc/supplements/m68k/bsp.t
    doc/supplements/m68k/callconv.t
    doc/supplements/m68k/cpumodel.t
    doc/supplements/m68k/cputable.t
    doc/supplements/m68k/fatalerr.t
    doc/supplements/m68k/intr_NOTIMES.t
    doc/supplements/m68k/m68k.texi
    doc/supplements/m68k/memmodel.t
    doc/supplements/m68k/preface.texi
    doc/supplements/m68k/timeMVME136.t
    doc/supplements/m68k/timedata.t
    doc/supplements/powerpc/DMV177_TIMES
    doc/supplements/powerpc/Makefile
    doc/supplements/powerpc/PSIM_TIMES
    doc/supplements/powerpc/bsp.t
    doc/supplements/powerpc/callconv.t
    doc/supplements/powerpc/cpumodel.t
    doc/supplements/powerpc/cputable.t
    doc/supplements/powerpc/fatalerr.t
    doc/supplements/powerpc/intr_NOTIMES.t
    doc/supplements/powerpc/memmodel.t
    doc/supplements/powerpc/powerpc.texi
    doc/supplements/powerpc/preface.texi
    doc/supplements/powerpc/timeDMV177.t
    doc/supplements/powerpc/timePSIM.t
    doc/supplements/sh/callconv.texi
    doc/supplements/sparc/ERC32_TIMES
    doc/supplements/sparc/Makefile
    doc/supplements/sparc/bsp.t
    doc/supplements/sparc/callconv.t
    doc/supplements/sparc/cpumodel.t
    doc/supplements/sparc/cputable.t
    doc/supplements/sparc/fatalerr.t
    doc/supplements/sparc/intr_NOTIMES.t
    doc/supplements/sparc/memmodel.t
    doc/supplements/sparc/preface.texi
    doc/supplements/sparc/sparc.texi
    doc/supplements/sparc/timeERC32.t
    doc/supplements/template/BSP_TIMES
    doc/supplements/template/Makefile
    doc/supplements/template/bsp.t
    doc/supplements/template/callconv.t
    doc/supplements/template/cpumodel.t
    doc/supplements/template/cputable.t
    doc/supplements/template/fatalerr.t
    doc/supplements/template/intr_NOTIMES.t
    doc/supplements/template/memmodel.t
    doc/supplements/template/preface.texi
    doc/supplements/template/template.texi
    doc/supplements/template/timeBSP.t
    doc/texinfo/texinfo.tex
    doc/tools/bmenu/Makefile
    doc/tools/bmenu/address.h
    doc/tools/bmenu/address.inl
    doc/tools/bmenu/base.h
    doc/tools/bmenu/chain.c
    doc/tools/bmenu/chain.h
    doc/tools/bmenu/chain.inl
    doc/tools/bmenu/isr.h
    doc/tools/bmenu/main.c
    doc/tools/bmenu/system.h
    doc/tools/bmenu/testdoc.texi
    doc/tools/pdl2texi/Drive.d
    doc/tools/pdl2texi/Makefile
    doc/tools/pdl2texi/address.h
    doc/tools/pdl2texi/address.inl
    doc/tools/pdl2texi/afcc.texi
    doc/tools/pdl2texi/base.h
    doc/tools/pdl2texi/chain.c
    doc/tools/pdl2texi/chain.h
    doc/tools/pdl2texi/chain.inl
    doc/tools/pdl2texi/drive.d
    doc/tools/pdl2texi/isr.h
    doc/tools/pdl2texi/main.c
    doc/tools/pdl2texi/s.d
    doc/tools/pdl2texi/sample.d
    doc/tools/pdl2texi/system.h
    doc/tools/pdl2texi/t1.d
    doc/tools/pdl2texi/test_cases/avdas.d
    doc/tools/pdl2texi/test_cases/enum.d
    doc/tools/pdl2texi/test_cases/enumbad.d
    doc/tools/pdl2texi/test_cases/table.d
    doc/tools/src2html/Makefile
    doc/tools/src2html1.4a/Ctags/C.c
    doc/tools/src2html1.4a/Ctags/Makefile
    doc/tools/src2html1.4a/Ctags/ctags.1
    doc/tools/src2html1.4a/Ctags/ctags.c
    doc/tools/src2html1.4a/Ctags/ctags.h
    doc/tools/src2html1.4a/Ctags/fortran.c
    doc/tools/src2html1.4a/Ctags/lisp.c
    doc/tools/src2html1.4a/Ctags/print.c
    doc/tools/src2html1.4a/Ctags/strerror.c
    doc/tools/src2html1.4a/Ctags/tree.c
    doc/tools/src2html1.4a/Ctags/yacc.c
    doc/tools/src2html1.4a/Ctags/z.c
    doc/tools/src2html1.4a/FreeBSD/FreeBSD.hdr
    doc/tools/src2html1.4a/FreeBSD/FreeBSD.s2h
    doc/tools/src2html1.4a/FreeBSD/conf.hdr
    doc/tools/src2html1.4a/FreeBSD/ddb.hdr
    doc/tools/src2html1.4a/FreeBSD/i386.i386.hdr
    doc/tools/src2html1.4a/FreeBSD/i386.include.hdr
    doc/tools/src2html1.4a/FreeBSD/i386.isa.hdr
    doc/tools/src2html1.4a/FreeBSD/i386.stand.hdr
    doc/tools/src2html1.4a/FreeBSD/kern.hdr
    doc/tools/src2html1.4a/FreeBSD/net.hdr
    doc/tools/src2html1.4a/FreeBSD/netinet.hdr
    doc/tools/src2html1.4a/FreeBSD/nfs.hdr
    doc/tools/src2html1.4a/FreeBSD/stand.hdr
    doc/tools/src2html1.4a/FreeBSD/sys.hdr
    doc/tools/src2html1.4a/FreeBSD/ufs.hdr
    doc/tools/src2html1.4a/FreeBSD/vm.hdr
    doc/tools/src2html1.4a/Readme
    doc/tools/src2html1.4a/ctags-emacs/README
    doc/tools/src2html1.4a/ctags-emacs/ctags
    doc/tools/src2html1.4a/ctags-emacs/etags.c-ada-patch
    doc/tools/src2html1.4a/ctags-wr
    doc/tools/src2html1.4a/src2html
    doc/tools/src2html1.4a/src2html.1
    doc/tools/src2html1.4a/src2html.cgi
    doc/tools/texi2www/Makefile
    doc/tools/texi2www/archive/texi2www-960103.tgz
    doc/tools/texi2www/dir-arrow.gif
    doc/tools/texi2www/missing-arrow.gif
    doc/tools/texi2www/next-arrow.gif
    doc/tools/texi2www/prev-arrow.gif
    doc/tools/texi2www/texi2dvi
    doc/tools/texi2www/texi2www
    doc/tools/texi2www/texi2www.texi
    doc/tools/texi2www/up-arrow.gif
    doc/tools/update
    doc/tools/word-replace
    doc/user/Makefile
    doc/user/bsp.t
    doc/user/c_user.texi
    doc/user/clock.t
    doc/user/concepts.t
    doc/user/conf.t
    doc/user/dirstat.texi
    doc/user/dpmem.t
    doc/user/event.t
    doc/user/example.texi
    doc/user/fatal.t
    doc/user/glossary.texi
    doc/user/init.t
    doc/user/intr.t
    doc/user/io.t
    doc/user/mp.t
    doc/user/msg.t
    doc/user/overview.t
    doc/user/part.t
    doc/user/preface.texi
    doc/user/region.t
    doc/user/rtemsarc.gif
    doc/user/rtemspie.gif
    doc/user/rtmon.t
    doc/user/schedule.t
    doc/user/sem.t
    doc/user/signal.t
    doc/user/states.gif
    doc/user/task.t
    doc/user/timer.t
    doc/user/userext.t
    make/custom/dmv177.cfg
    testsuites/PROBLEMS
    testsuites/README
    testsuites/libtests/README
    testsuites/libtests/cpuuse/cpuuse.scn
    testsuites/libtests/cpuuse/init.c
    testsuites/libtests/cpuuse/system.h
    testsuites/libtests/cpuuse/task1.c
    testsuites/libtests/cpuuse/task2.c
    testsuites/libtests/cpuuse/task3.c
    testsuites/libtests/cpuuse/tswitch.c
    testsuites/libtests/malloctest/init.c
    testsuites/libtests/malloctest/system.h
    testsuites/libtests/malloctest/task1.c
    testsuites/libtests/monitor/init.c
    testsuites/libtests/monitor/system.h
    testsuites/libtests/rtems++/Init.cc
    testsuites/libtests/rtems++/System.h
    testsuites/libtests/rtems++/Task1.cc
    testsuites/libtests/rtems++/Task2.cc
    testsuites/libtests/rtems++/Task3.cc
    testsuites/libtests/rtems++/rtems++.doc
    testsuites/libtests/rtems++/rtems++.scn
    testsuites/libtests/rtmonuse/getall.c
    testsuites/libtests/rtmonuse/init.c
    testsuites/libtests/rtmonuse/rtmonuse.scn
    testsuites/libtests/rtmonuse/system.h
    testsuites/libtests/rtmonuse/task1.c
    testsuites/libtests/stackchk/blow.c
    testsuites/libtests/stackchk/init.c
    testsuites/libtests/stackchk/stackchk.scn
    testsuites/libtests/stackchk/system.h
    testsuites/libtests/stackchk/task1.c
    testsuites/libtests/termios/README
    testsuites/libtests/termios/init.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/psxtests/include/pmacros.h
    testsuites/psxtests/psx01/init.c
    testsuites/psxtests/psx01/psx01.scn
    testsuites/psxtests/psx01/system.h
    testsuites/psxtests/psx01/task.c
    testsuites/psxtests/psx02/init.c
    testsuites/psxtests/psx02/psx02.scn
    testsuites/psxtests/psx02/system.h
    testsuites/psxtests/psx02/task.c
    testsuites/psxtests/psx03/init.c
    testsuites/psxtests/psx03/psx03.scn
    testsuites/psxtests/psx03/system.h
    testsuites/psxtests/psx03/task.c
    testsuites/psxtests/psx04/init.c
    testsuites/psxtests/psx04/psx04.scn
    testsuites/psxtests/psx04/system.h
    testsuites/psxtests/psx04/task1.c
    testsuites/psxtests/psx04/task2.c
    testsuites/psxtests/psx04/task3.c
    testsuites/psxtests/psx05/init.c
    testsuites/psxtests/psx05/psx05.scn
    testsuites/psxtests/psx05/system.h
    testsuites/psxtests/psx05/task.c
    testsuites/psxtests/psx05/task2.c
    testsuites/psxtests/psx05/task3.c
    testsuites/psxtests/psx06/init.c
    testsuites/psxtests/psx06/psx06.scn
    testsuites/psxtests/psx06/system.h
    testsuites/psxtests/psx06/task.c
    testsuites/psxtests/psx06/task2.c
    testsuites/psxtests/psx07/init.c
    testsuites/psxtests/psx07/psx07.scn
    testsuites/psxtests/psx07/system.h
    testsuites/psxtests/psx07/task.c
    testsuites/psxtests/psx08/init.c
    testsuites/psxtests/psx08/psx08.scn
    testsuites/psxtests/psx08/system.h
    testsuites/psxtests/psx08/task2.c
    testsuites/psxtests/psx09/init.c
    testsuites/psxtests/psx09/psx09.scn
    testsuites/psxtests/psx09/system.h
    testsuites/psxtests/psx10/init.c
    testsuites/psxtests/psx10/psx10.scn
    testsuites/psxtests/psx10/system.h
    testsuites/psxtests/psx10/task.c
    testsuites/psxtests/psx10/task2.c
    testsuites/psxtests/psx10/task3.c
    testsuites/psxtests/psx11/init.c
    testsuites/psxtests/psx11/psx11.scn
    testsuites/psxtests/psx11/system.h
    testsuites/psxtests/psx11/task.c
    testsuites/psxtests/psx12/init.c
    testsuites/psxtests/psx12/psx12.scn
    testsuites/psxtests/psx12/system.h
    testsuites/psxtests/psx12/task.c
    testsuites/psxtests/psxhdrs/clock01.c
    testsuites/psxtests/psxhdrs/clock02.c
    testsuites/psxtests/psxhdrs/clock03.c
    testsuites/psxtests/psxhdrs/clock04.c
    testsuites/psxtests/psxhdrs/clock05.c
    testsuites/psxtests/psxhdrs/clock06.c
    testsuites/psxtests/psxhdrs/cond01.c
    testsuites/psxtests/psxhdrs/cond02.c
    testsuites/psxtests/psxhdrs/cond03.c
    testsuites/psxtests/psxhdrs/cond04.c
    testsuites/psxtests/psxhdrs/cond05.c
    testsuites/psxtests/psxhdrs/cond06.c
    testsuites/psxtests/psxhdrs/cond07.c
    testsuites/psxtests/psxhdrs/cond08.c
    testsuites/psxtests/psxhdrs/cond09.c
    testsuites/psxtests/psxhdrs/cond10.c
    testsuites/psxtests/psxhdrs/key01.c
    testsuites/psxtests/psxhdrs/key02.c
    testsuites/psxtests/psxhdrs/key03.c
    testsuites/psxtests/psxhdrs/key04.c
    testsuites/psxtests/psxhdrs/mutex01.c
    testsuites/psxtests/psxhdrs/mutex02.c
    testsuites/psxtests/psxhdrs/mutex03.c
    testsuites/psxtests/psxhdrs/mutex04.c
    testsuites/psxtests/psxhdrs/mutex05.c
    testsuites/psxtests/psxhdrs/mutex06.c
    testsuites/psxtests/psxhdrs/mutex07.c
    testsuites/psxtests/psxhdrs/mutex08.c
    testsuites/psxtests/psxhdrs/mutex09.c
    testsuites/psxtests/psxhdrs/mutex10.c
    testsuites/psxtests/psxhdrs/mutex11.c
    testsuites/psxtests/psxhdrs/mutex12.c
    testsuites/psxtests/psxhdrs/mutex13.c
    testsuites/psxtests/psxhdrs/mutex14.c
    testsuites/psxtests/psxhdrs/mutex15.c
    testsuites/psxtests/psxhdrs/mutex16.c
    testsuites/psxtests/psxhdrs/proc01.c
    testsuites/psxtests/psxhdrs/proc02.c
    testsuites/psxtests/psxhdrs/proc03.c
    testsuites/psxtests/psxhdrs/proc04.c
    testsuites/psxtests/psxhdrs/proc05.c
    testsuites/psxtests/psxhdrs/proc06.c
    testsuites/psxtests/psxhdrs/proc07.c
    testsuites/psxtests/psxhdrs/proc08.c
    testsuites/psxtests/psxhdrs/proc09.c
    testsuites/psxtests/psxhdrs/proc10.c
    testsuites/psxtests/psxhdrs/proc11.c
    testsuites/psxtests/psxhdrs/proc12.c
    testsuites/psxtests/psxhdrs/proc13.c
    testsuites/psxtests/psxhdrs/proc14.c
    testsuites/psxtests/psxhdrs/pthread01.c
    testsuites/psxtests/psxhdrs/pthread02.c
    testsuites/psxtests/psxhdrs/pthread03.c
    testsuites/psxtests/psxhdrs/pthread04.c
    testsuites/psxtests/psxhdrs/pthread05.c
    testsuites/psxtests/psxhdrs/pthread06.c
    testsuites/psxtests/psxhdrs/pthread07.c
    testsuites/psxtests/psxhdrs/pthread08.c
    testsuites/psxtests/psxhdrs/pthread09.c
    testsuites/psxtests/psxhdrs/pthread10.c
    testsuites/psxtests/psxhdrs/pthread11.c
    testsuites/psxtests/psxhdrs/pthread12.c
    testsuites/psxtests/psxhdrs/pthread13.c
    testsuites/psxtests/psxhdrs/pthread14.c
    testsuites/psxtests/psxhdrs/pthread15.c
    testsuites/psxtests/psxhdrs/pthread16.c
    testsuites/psxtests/psxhdrs/pthread17.c
    testsuites/psxtests/psxhdrs/pthread18.c
    testsuites/psxtests/psxhdrs/pthread19.c
    testsuites/psxtests/psxhdrs/pthread20.c
    testsuites/psxtests/psxhdrs/pthread21.c
    testsuites/psxtests/psxhdrs/pthread22.c
    testsuites/psxtests/psxhdrs/pthread23.c
    testsuites/psxtests/psxhdrs/pthread24.c
    testsuites/psxtests/psxhdrs/pthread25.c
    testsuites/psxtests/psxhdrs/pthread26.c
    testsuites/psxtests/psxhdrs/pthread27.c
    testsuites/psxtests/psxhdrs/pthread28.c
    testsuites/psxtests/psxhdrs/pthread29.c
    testsuites/psxtests/psxhdrs/pthread30.c
    testsuites/psxtests/psxhdrs/pthread31.c
    testsuites/psxtests/psxhdrs/pthread32.c
    testsuites/psxtests/psxhdrs/pthread33.c
    testsuites/psxtests/psxhdrs/pthread34.c
    testsuites/psxtests/psxhdrs/pthread35.c
    testsuites/psxtests/psxhdrs/pthread36.c
    testsuites/psxtests/psxhdrs/sched01.c
    testsuites/psxtests/psxhdrs/sched02.c
    testsuites/psxtests/psxhdrs/sched03.c
    testsuites/psxtests/psxhdrs/sched04.c
    testsuites/psxtests/psxhdrs/sched05.c
    testsuites/psxtests/psxhdrs/sched06.c
    testsuites/psxtests/psxhdrs/sched07.c
    testsuites/psxtests/psxhdrs/sched08.c
    testsuites/psxtests/psxhdrs/signal01.c
    testsuites/psxtests/psxhdrs/signal02.c
    testsuites/psxtests/psxhdrs/signal03.c
    testsuites/psxtests/psxhdrs/signal04.c
    testsuites/psxtests/psxhdrs/signal05.c
    testsuites/psxtests/psxhdrs/signal06.c
    testsuites/psxtests/psxhdrs/signal07.c
    testsuites/psxtests/psxhdrs/signal08.c
    testsuites/psxtests/psxhdrs/signal09.c
    testsuites/psxtests/psxhdrs/signal10.c
    testsuites/psxtests/psxhdrs/signal11.c
    testsuites/psxtests/psxhdrs/signal12.c
    testsuites/psxtests/psxhdrs/signal13.c
    testsuites/psxtests/psxhdrs/signal14.c
    testsuites/psxtests/psxhdrs/signal15.c
    testsuites/psxtests/psxhdrs/signal16.c
    testsuites/psxtests/psxhdrs/signal17.c
    testsuites/psxtests/psxhdrs/signal18.c
    testsuites/psxtests/psxhdrs/signal19.c
    testsuites/psxtests/psxhdrs/signal20.c
    testsuites/psxtests/psxhdrs/signal21.c
    testsuites/psxtests/psxhdrs/signal22.c
    testsuites/psxtests/psxhdrs/time01.c
    testsuites/psxtests/psxhdrs/time02.c
    testsuites/psxtests/psxhdrs/time03.c
    testsuites/psxtests/psxhdrs/time04.c
    testsuites/psxtests/psxhdrs/time05.c
    testsuites/psxtests/psxhdrs/time06.c
    testsuites/psxtests/psxhdrs/time07.c
    testsuites/psxtests/psxhdrs/time08.c
    testsuites/psxtests/psxhdrs/time09.c
    testsuites/psxtests/psxhdrs/time10.c
    testsuites/psxtests/psxhdrs/time11.c
    testsuites/psxtests/psxhdrs/time12.c
    testsuites/psxtests/psxhdrs/time13.c
    testsuites/psxtests/psxhdrs/timer01.c
    testsuites/psxtests/psxhdrs/timer02.c
    testsuites/psxtests/psxhdrs/timer03.c
    testsuites/psxtests/psxhdrs/timer04.c
    testsuites/psxtests/psxhdrs/timer05.c
    testsuites/psxtests/psxhdrs/timer06.c
    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/sptests/spsize/system.h
    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/Makefile.in
    tools/build/README
    tools/build/binpatch.c
    tools/build/cklength.c
    tools/build/eolstrip.c
    tools/build/install-if-change.in
    tools/build/lock-directory.in
    tools/build/os/Makefile.in
    tools/build/os/msdos/Makefile.in
    tools/build/os/msdos/README
    tools/build/os/msdos/cklength.uue
    tools/build/os/msdos/fixtimer.c
    tools/build/os/msdos/fixtimer.uue
    tools/build/os/msdos/ifc.c
    tools/build/os/msdos/ifc_exe.uue
    tools/build/packhex.c
    tools/build/rcs-clean.in
    tools/build/scripts/Makefile.in
    tools/build/scripts/README
    tools/build/scripts/install-if-change.in
    tools/build/scripts/lock-directory.in
    tools/build/scripts/rcs-clean.in
    tools/build/scripts/search-id.sh
    tools/build/scripts/unlock-directory.in
    tools/build/search-id.sh
    tools/build/src/Makefile.in
    tools/build/src/cklength.c
    tools/build/src/config.h.in
    tools/build/src/eolstrip.c
    tools/build/src/packhex.c
    tools/build/src/unhex.c
    tools/build/unhex.c
    tools/build/unlock-directory.in
    tools/cpu/Makefile.in
    tools/cpu/generic/Makefile.in
    tools/cpu/generic/size_rtems.in
    tools/cpu/hppa1.1/genoffsets.c
    tools/cpu/sh/AUTHORS
    tools/cpu/sh/COPYING
    tools/cpu/sh/Makefile.in
    tools/cpu/sh/TODO
    tools/cpu/sh/sci.c
    tools/cpu/sh/sci.h
    tools/cpu/sh/shgen.c
    tools/cpu/unix/Makefile.in
    tools/cpu/unix/gensize.c
    tools/update/310_to_320_list
    tools/update/Makefile.in
    tools/update/README
    tools/update/update.in
    tools/update/word-replace.in
1998-10-28 17:38:23 +00:00
3087 changed files with 0 additions and 521441 deletions

View File

@@ -1,24 +0,0 @@
#
# $Id$
#
Misc. support tools for RTEMS workspaces.
More will be added later as they are converted from Teamware
to CVS.
install-if-change
Smart install script that also can append suffixes as it
installs (suffixes used for debug and profile variants).
Requires bash or ksh.
rcs-clean
deletes all files from the current directory that can be
re-created from RCS. Careful to not delete locked files.
May be used by 'gmake clobber'
lock-directory
unlock-directory
traverse a directory structure making it unwritable.
Useful to keep people from accidentally overwriting
"released" trees if they get confused about which
module they have loaded.

View File

@@ -1,377 +0,0 @@
/*
* cklength - check the length of lines in a file
*
* This program check to see if the files passed to it on the command line
* contain a line which exceeds the maximum allowable length. The default
* maximum line length is 80.
*
* usage: cklength [ -v ] [ arg ... ] files...
* -l length -- maximum line length
* -v -- verbose
*
* $Id$
*/
#define GETOPTARGS "l:nNv"
char *USAGE = "\
usage: cklength [ -v ] [ arg ... ] files... \n\
-l length -- maximum line length\n\
-n -- report line numbers for offending lines\n\
-N -- report line numbers and length for offending lines\n\
-v -- verbose\n\
\n\
Print the name of files which have at least 1 line which exceeds the\n\
maximum line length. The default maximum line length is 80.\n\
";
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <ctype.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <memory.h>
#include <stdarg.h>
#include <errno.h>
#include "config.h"
#ifndef VMS
#ifndef HAVE_STRERROR
extern int sys_nerr;
extern char *sys_errlist[];
#define strerror( _err ) \
((_err) < sys_nerr) ? sys_errlist [(_err)] : "unknown error"
#else /* HAVE_STRERROR */
char *strerror ();
#endif
#else /* VMS */
char *strerror (int,...);
#endif
#define BUFFER_SIZE 512
#define SUCCESS 0
#define FAILURE -1
#define Failed(x) (((int) (x)) == FAILURE)
#define TRUE 1
#define FALSE 0
#define STREQ(a,b) (strcmp(a,b) == 0)
#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0]))
/*
* Definitions for unsigned "ints"; especially for use in data structures
* that will be shared among (potentially) different cpu's (we punt on
* byte ordering problems tho)
*/
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned long u32;
/*
* vars controlled by command line options
*/
int verbose = FALSE; /* be verbose */
int report_line_numbers = FALSE; /* report line numbers of offenders */
int report_line_length = FALSE; /* report line length of offenders */
int line_length = 80; /* maximum allowable line length */
extern char *optarg; /* getopt(3) control vars */
extern int optind, opterr;
char *progname; /* for error() */
int process(char *arg);
void error(int errn, ...);
long getparm(char *s, long min, long max, char *msg);
#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */
#define ERR_FATAL (ERR_ERRNO / 2) /* fatal error ; no return */
#define ERR_ABORT (ERR_ERRNO / 4) /* fatal error ; abort */
#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */
#define stol(p) strtol(p, (char **) NULL, 0)
int Open(), Read(), Write();
int main(
int argc,
char **argv
)
{
register int c;
int showusage = FALSE; /* usage error? */
int rc = 0;
/*
* figure out invocation leaf-name
*/
if ((progname = strrchr(argv[0], '/')) == (char *) NULL)
progname = argv[0];
else
progname++;
argv[0] = progname; /* for getopt err reporting */
/*
* Check options and arguments.
*/
opterr = 0; /* we'll report all errors */
while ((c = getopt(argc, argv, GETOPTARGS)) != EOF)
switch (c)
{
case 'l': /* line length */
line_length = atoi( optarg );
if ( line_length < 0 || line_length > BUFFER_SIZE )
error(ERR_FATAL, "(%d) is illegal line length\n",line_length);
break;
case 'n': /* toggle report_line_numbers */
report_line_numbers = ! report_line_numbers;
break;
case 'N': /* toggle both reports */
report_line_numbers = ! report_line_numbers;
report_line_length = ! report_line_length;
break;
case 'v': /* toggle verbose */
verbose = ! verbose;
break;
case '?':
showusage = TRUE;
}
if (showusage)
{
(void) fprintf(stderr, "%s", USAGE);
exit(1);
}
/*
* traverse and process the arguments
*/
for ( ; argv[optind]; optind++)
if (Failed(process(argv[optind])))
rc = FAILURE;
return rc;
}
/*
* process(arg)
*/
int
process(char *arg)
{
FILE *in;
char *bptr;
char buffer[ BUFFER_SIZE ];
int line_number;
int length;
int count;
int rc = SUCCESS; /* succeed by default */
in = fopen( arg, "r" );
if (!in)
error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg );
count = 0;
for ( line_number=1 ; ; line_number++ ) {
bptr = fgets( buffer, BUFFER_SIZE, in );
if (!bptr)
break;
/*
* Don't count the carriage return.
*/
length = strlen( buffer ) - 1;
if ( length <= line_length )
continue;
if ( count == 0 ) {
fprintf( stderr, "%s\n", arg );
if ( !report_line_numbers )
break;
}
if ( verbose )
fprintf( stderr, "TOO LONG:%d: %s\n", line_number, buffer );
if ( report_line_numbers ) {
if ( report_line_length )
fprintf( stderr, "%d: %d\n" , line_number, length );
else
fprintf( stderr, "%d\n" , line_number );
}
count++;
}
fclose( in );
return rc;
}
/*
* error(errn, arglist)
* report an error to stderr using printf(3) conventions.
* Any output is preceded by '<progname>: '
*
* Uses ERR_FATAL bit to request exit(errn)
* ERR_ABORT to request abort()
* ERR_ERRNO to indicate use of errno instead of argument.
*
* If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its
* associated error message is appended to the output.
*/
/*VARARGS*/
void
error(int error_flag, ...)
{
va_list arglist;
register char *format;
int local_errno;
extern int errno;
(void) fflush(stdout); /* in case stdout/stderr same */
local_errno = error_flag & ~ERR_MASK;
if (error_flag & ERR_ERRNO) /* use errno? */
local_errno = errno;
va_start(arglist, error_flag);
format = va_arg(arglist, char *);
(void) fprintf(stderr, "%s: ", progname);
(void) vfprintf(stderr, format, arglist);
va_end(arglist);
if (local_errno)
(void) fprintf(stderr, " (%s)\n", strerror(local_errno));
(void) fflush(stderr);
if (error_flag & (ERR_FATAL | ERR_ABORT))
{
if (error_flag & ERR_FATAL)
{
error(0, "fatal error, exiting");
exit(local_errno ? local_errno : 1);
}
else
{
error(0, "fatal error, aborting");
abort();
}
}
}
long
getparm(char *s,
long min,
long max,
char *msg)
{
long val;
if ( ! strchr("0123456789-", *s))
{
error(ERR_FATAL, "'%s' is not a number", s);
return min;
}
val = strtol(s, (char **) NULL, 0);
if ((val < min) || (val > max))
{
if (min == max)
error(ERR_FATAL, "%s can only be %ld", s, min);
else
error(ERR_FATAL, "%s must be between %ld and %ld", msg, min, max);
}
return val;
}
/*
* Open()
* Perform open(2), returning the file descriptor. Prints
* error message if open fails.
*/
int
Open(char *file,
int oflag,
int mode)
{
int O_fd;
if (Failed(O_fd = open(file, oflag, mode)))
error(
ERR_ERRNO | ERR_FATAL,
"open('%s', 0x%x, 0%o) failed", file, oflag, mode
);
return O_fd;
}
/*
* Read()
* Perform read(2); prints error message if fails.
*/
int
Read(int file,
char *buffer,
unsigned int count)
{
int nbytes;
if (Failed(nbytes = read(file, buffer, count)))
error(
ERR_ERRNO | ERR_FATAL,
"read(%d, 0x%x, %d) failed", file, buffer, count
);
return nbytes;
}
/*
* Write()
* Perform write(2); prints error message if fails.
*/
int
Write(int file,
char *buffer,
unsigned int count)
{
int nbytes;
if (Failed(nbytes = write(file, buffer, count)))
error(
ERR_ERRNO | ERR_FATAL,
"write(%d, 0x%x, %d) failed", file, buffer, count
);
return nbytes;
}

View File

@@ -1,366 +0,0 @@
/*
* eolstrip - strip white space from end of lines
*
* This program strips the white space from the end of every line in the
* specified program.
*
* usage: eolstrip [ -v ] [ arg ... ] files...
* -v -- verbose
*
* $Id$
*/
#define GETOPTARGS "vt"
char *USAGE = "\
usage: cklength [ -v ] [ arg ... ] files... \n\
-v -- verbose\n\
-t -- test only .. DO NOT OVERWRITE FILE!!!\n\
\n\
Strip the white space from the end of every line on the list of files.\n\
";
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <ctype.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <memory.h>
#include <stdarg.h>
#include <errno.h>
#include "config.h"
#ifndef VMS
#ifndef HAVE_STRERROR
extern int sys_nerr;
extern char *sys_errlist[];
#define strerror( _err ) \
((_err) < sys_nerr) ? sys_errlist [(_err)] : "unknown error"
#else /* HAVE_STRERROR */
char *strerror ();
#endif
#else /* VMS */
char *strerror (int,...);
#endif
#define BUFFER_SIZE 2048
#define MAX_PATH 2048
#define SUCCESS 0
#define FAILURE -1
#define Failed(x) (((int) (x)) == FAILURE)
#define TRUE 1
#define FALSE 0
#define STREQ(a,b) (strcmp(a,b) == 0)
#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0]))
/*
* Definitions for unsigned "ints"; especially for use in data structures
* that will be shared among (potentially) different cpu's (we punt on
* byte ordering problems tho)
*/
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned long u32;
/*
* vars controlled by command line options
*/
int verbose = FALSE; /* be verbose */
int test_only = FALSE; /* test only */
extern char *optarg; /* getopt(3) control vars */
extern int optind, opterr;
char *progname; /* for error() */
int process(char *arg);
void error(int errn, ...);
long getparm(char *s, long min, long max, char *msg);
#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */
#define ERR_FATAL (ERR_ERRNO / 2) /* fatal error ; no return */
#define ERR_ABORT (ERR_ERRNO / 4) /* fatal error ; abort */
#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */
#define stol(p) strtol(p, (char **) NULL, 0)
int Open(), Read(), Write();
int main(
int argc,
char **argv
)
{
register int c;
int showusage = FALSE; /* usage error? */
int rc = 0;
/*
* figure out invocation leaf-name
*/
if ((progname = strrchr(argv[0], '/')) == (char *) NULL)
progname = argv[0];
else
progname++;
argv[0] = progname; /* for getopt err reporting */
/*
* Check options and arguments.
*/
opterr = 0; /* we'll report all errors */
while ((c = getopt(argc, argv, GETOPTARGS)) != EOF)
switch (c)
{
case 't': /* toggle test only mode */
test_only = ! test_only;
break;
case 'v': /* toggle verbose */
verbose = ! verbose;
break;
case '?':
showusage = TRUE;
}
if (showusage)
{
(void) fprintf(stderr, "%s", USAGE);
exit(1);
}
/*
* traverse and process the arguments
*/
for ( ; argv[optind]; optind++)
if (Failed(process(argv[optind])))
rc = FAILURE;
return rc;
}
/*
* process(arg)
*/
int
process(char *arg)
{
FILE *in;
FILE *out = (FILE *) 0;
char outname[ MAX_PATH ];
char *bptr;
char buffer[ BUFFER_SIZE ];
int length;
int line_number;
int rc = SUCCESS; /* succeed by default */
in = fopen( arg, "r" );
if (!in)
error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg );
if ( !test_only ) {
sprintf( outname, "%s.eoltmp", arg );
out = fopen( outname, "w" );
if (!out)
error( ERR_ERRNO | ERR_FATAL, "Unable to open file (%s)\n", arg );
}
if ( verbose )
fprintf( stderr, "Processing %s\n", arg );
for ( line_number=1 ; ; line_number++ ) {
bptr = fgets( buffer, BUFFER_SIZE, in );
if (!bptr)
break;
/*
* Don't count the carriage return.
*/
length = strlen( buffer ) - 1;
if ( buffer[ length ] != '\n' )
error(ERR_ERRNO|ERR_FATAL, "Line %d too long in %s\n", line_number, arg);
while ( isspace( (int) buffer[ length ] ) )
buffer[ length-- ] = '\0';
if ( test_only ) {
fprintf( stderr, "%s\n", arg );
break;
}
fprintf( out, "%s\n", buffer );
}
fclose( in );
if ( !test_only ) {
fclose( out );
rename( outname, arg );
}
return rc;
}
/*
* error(errn, arglist)
* report an error to stderr using printf(3) conventions.
* Any output is preceded by '<progname>: '
*
* Uses ERR_FATAL bit to request exit(errn)
* ERR_ABORT to request abort()
* ERR_ERRNO to indicate use of errno instead of argument.
*
* If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its
* associated error message is appended to the output.
*/
/*VARARGS*/
void
error(int error_flag, ...)
{
va_list arglist;
register char *format;
int local_errno;
extern int errno;
(void) fflush(stdout); /* in case stdout/stderr same */
local_errno = error_flag & ~ERR_MASK;
if (error_flag & ERR_ERRNO) /* use errno? */
local_errno = errno;
va_start(arglist, error_flag);
format = va_arg(arglist, char *);
(void) fprintf(stderr, "%s: ", progname);
(void) vfprintf(stderr, format, arglist);
va_end(arglist);
if (local_errno)
(void) fprintf(stderr, " (%s)\n", strerror(local_errno));
else
(void) fprintf(stderr, "\n");
(void) fflush(stderr);
if (error_flag & (ERR_FATAL | ERR_ABORT))
{
if (error_flag & ERR_FATAL)
{
error(0, "fatal error, exiting");
exit(local_errno ? local_errno : 1);
}
else
{
error(0, "fatal error, aborting");
abort();
}
}
}
long
getparm(char *s,
long min,
long max,
char *msg)
{
long val;
if ( ! strchr("0123456789-", *s))
{
error(ERR_FATAL, "'%s' is not a number", s);
return min;
}
val = strtol(s, (char **) NULL, 0);
if ((val < min) || (val > max))
{
if (min == max)
error(ERR_FATAL, "%s can only be %ld", s, min);
else
error(ERR_FATAL, "%s must be between %ld and %ld", msg, min, max);
}
return val;
}
/*
* Open()
* Perform open(2), returning the file descriptor. Prints
* error message if open fails.
*/
int
Open(char *file,
int oflag,
int mode)
{
int O_fd;
if (Failed(O_fd = open(file, oflag, mode)))
error(
ERR_ERRNO | ERR_FATAL,
"open('%s', 0x%x, 0%o) failed", file, oflag, mode
);
return O_fd;
}
/*
* Read()
* Perform read(2); prints error message if fails.
*/
int
Read(int file,
char *buffer,
unsigned int count)
{
int nbytes;
if (Failed(nbytes = read(file, buffer, count)))
error(
ERR_ERRNO | ERR_FATAL,
"read(%d, 0x%x, %d) failed", file, buffer, count
);
return nbytes;
}
/*
* Write()
* Perform write(2); prints error message if fails.
*/
int
Write(int file,
char *buffer,
unsigned int count)
{
int nbytes;
if (Failed(nbytes = write(file, buffer, count)))
error(
ERR_ERRNO | ERR_FATAL,
"write(%d, 0x%x, %d) failed", file, buffer, count
);
return nbytes;
}

View File

@@ -1,142 +0,0 @@
#!@KSH@ -p
#
# Either bash or ksh will be ok for this; requires (( )) arithmetic
# (-p above just says to not parse $ENV file; makes it faster for
# those of us who set $ENV)
#
# install files if they have changed by running 'cmp', then 'install'
# as necessary.
#
# Optionally, can append a suffix before last existing suffix (if any)
#
# NOTE
# We avoid using typical install(1M) programs since they have
# large variability across systems and we also need to support ou
# -V option.
# So we just copy and chmod by hand.
#
# $Id$
#
progname=`basename $0`
#progname=${0##*/} # fast basename hack for ksh, bash
USAGE=\
"usage: $progname [ -vmV ] file [ file ... ] dest-directory-or-file
-v -- verbose
-V suffix -- suffix to append to targets (before any . suffix)
eg: -V _g would change 'foo' to 'foo_g' and
'libfoo.a' to 'libfoo_g.a'
-m mode -- mode for new file(s)"
fatal() {
if [ "$1" ]
then
echo $* >&2
fi
echo "$USAGE" 1>&2
exit 1
}
#
# process the options
#
verbose=""
suffix=""
mode=""
while getopts vm:V: OPT
do
case "$OPT" in
v)
verbose="yes";;
V)
eval suffix=$OPTARG;;
m)
mode="$OPTARG";;
*)
fatal
esac
done
shiftcount=`expr $OPTIND - 1`
shift $shiftcount
args=$*
#
# Separate source file(s) from dest directory or file
#
files=""
dest=""
for d in $args
do
files="$files $dest"
dest=$d
done
if [ ! "$files" ] || [ ! "$dest" ]
then
fatal "missing files or invalid destination"
fi
#
# Process the arguments
#
targets=""
for f in $files
do
# leaf=`basename $f`
leaf=${f##*/} # fast basename hack for ksh, bash
target=$dest
if [ -d $dest ]
then
# if we were given a suffix, then add it as appropriate
if [ "$suffix" ]
then
case $f in
*.*)
# leaf=`echo $leaf |
# /bin/sed "s/\([~\.]*\)\.\(.*\)$/\1$suffix.\2/"`
# ksh,bash hack for above sed script
leaf=${leaf%%.*}$suffix.${leaf#*.}
[ "$verbose" = "yes" ] &&
echo "$progname: $f will be installed as $leaf"
;;
*)
leaf=$leaf$suffix;;
esac
fi
target=$target/$leaf
fi
[ ! -r $f ] && fatal "can not read $f"
if cmp -s $f $target
then
[ "$verbose" = "yes" ] && echo "'$f' not newer than '$target'"
else
[ "$verbose" = "yes" ] && echo "rm -f $target"
rm -f $target
echo "cp -p $f $target"
cp -p $f $target || exit 1
targets="$targets $target" # keep list for chmod below
fi
done
if [ "$mode" -a "$targets" ]
then
[ "$verbose" = "yes" ] && echo "chmod $mode $targets"
chmod $mode $targets
fi
exit 0
# Local Variables: ***
# mode:ksh ***
# End: ***

View File

@@ -1,43 +0,0 @@
#!@KSH@
#
# $Id$
#
# Make a directory write protected
# Used to write protect the install point after a build
# to prevent inadvertant overwriting.
#
# is a particular command available on this machine?
#
cmd_avail()
{
set -- `type $1 2>&1`
if [ "$2" = "not" -a "$3" = "found" ] || [ "$3" = "not" -a "$4" = "found" ]
then
return 1
else
return 0
fi
}
lock_directory() {
l_dir=$1/. # get any symlink out of the way using '.'
if [ -d $l_dir ]
then
find $l_dir -type d -perm -0200 -print | $XARGS chmod -w
fi
}
# Use gnu xargs if available; faster, more reliable in general
XARGS=xargs
cmd_avail gxargs && XARGS=gxargs
for dir
do
lock_directory $dir
done
# Local Variables: ***
# mode:ksh ***
# End: ***

View File

@@ -1,565 +0,0 @@
/***** P A C K H E X . C ************************************************
*
* Packhex is a hex-file compaction utility. It attempts to concatenate
* hex records to produce more size-efficient packaging.
*
* Limitations: Input files must be correctly formatted. This utility
* is not robust enough to detect hex-record formatting
* errors.
*
* Published: May 1993 Embedded Systems Programming magazine
* "Creating Faster Hex Files"
*
* URL: ESP magazine: http://www.embedded.com
* Source Code: ftp://ftp.mfi.com/pub/espmag/1993/pakhex.zip
*
* Author: Mark Gringrich
*
* Compiler: Microsoft C 6.0
* cl /F 1000 packhex.c
*
*
* $Id$
*
**************************************************************************/
/* #define SMALLER_RECORDS */
#ifdef SMALLER_RECORDS
#define MAX_LEN_S1_RECS 128
#define MAX_LEN_S2_RECS 128
#define MAX_LEN_S3_RECS 128
#else
#define MAX_LEN_S1_RECS 252
#define MAX_LEN_S2_RECS 251
#define MAX_LEN_S3_RECS 250
#endif
/*--------------------------------- includes ---------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "config.h"
#ifndef VMS
#ifndef HAVE_STRERROR
extern int sys_nerr;
extern char *sys_errlist[];
#define strerror( _err ) \
((_err) < sys_nerr) ? sys_errlist [(_err)] : "unknown error"
#else /* HAVE_STRERROR */
char *strerror ();
#endif
#else /* VMS */
char *strerror (int,...);
#endif
#if defined(__unix__) && !defined(EXIT_FAILURE)
#define EXIT_FAILURE -1
#define EXIT_SUCCESS 0
#endif
/*--------------------------------- defines ----------------------------------*/
#define YES 1
#define MAX_LINE_SIZE 600
#define EOS '\0'
/*---------------------------------- macros ----------------------------------*/
/* Convert ASCII hexadecimal digit to value. */
#define HEX_DIGIT( C ) ( ( ( ( C ) > '9' ) ? ( C ) + 25 : ( C ) ) & 0xF )
/*--------------------------------- typedefs ---------------------------------*/
typedef unsigned char Boolean;
typedef unsigned char Uchar;
typedef unsigned int Uint;
typedef unsigned long Ulong;
typedef struct /* Functions and constant returning Hex-record vital stats. */
{
Boolean ( *is_data_record )( char * );
Ulong ( *get_address )( char * );
Uint ( *get_data_count )( char * );
const Uint max_data_count;
char *( *get_data_start )( char * );
void ( *put_data_record )( Uint, Ulong, char * );
} Rec_vitals;
/*--------------------------- function prototypes ----------------------------*/
Rec_vitals * identify_first_data_record( char *, int );
Ulong get_ndigit_hex( char *, int );
/*----------------------------- Intel Hex format -----------------------------*/
/*
* Intel Hex data-record layout
*
* :aabbbbccd...dee
*
* : - header character
* aa - record data byte count, a 2-digit hex value
* bbbb - record address, a 4-digit hex value
* cc - record type, a 2-digit hex value:
* "00" is a data record
* "01" is an end-of-data record
* "02" is an extended-address record
* "03" is a start record
* d...d - data (always an even number of chars)
* ee - record checksum, a 2-digit hex value
* checksum = 2's complement
* [ (sum of bytes: aabbbbccd...d) modulo 256 ]
*/
Boolean is_intel_data_rec( char * rec_str )
{
return( ( rec_str[ 0 ] == ':' ) && ( rec_str[ 8 ] == '0' ) );
}
Uint get_intel_rec_data_count( char * rec_str )
{
return( ( Uint ) get_ndigit_hex( rec_str + 1, 2 ) );
}
Ulong get_intel_rec_address( char * rec_str )
{
return( get_ndigit_hex( rec_str + 3, 4 ) );
}
char * get_intel_rec_data_start( char * rec_str )
{
return( rec_str + 9 );
}
void put_intel_data_rec( Uint count, Ulong address, char * data_str )
{
char *ptr;
Uint sum = count + ( address >> 8 & 0xff ) + ( address & 0xff );
for ( ptr = data_str ; *ptr != EOS ; ptr += 2 )
sum += ( Uint ) get_ndigit_hex( ptr, 2 );
printf(
":%02X%04lX00%s%02X\n", count, address, data_str, (~sum + 1) & 0xff
);
}
Rec_vitals intel_hex =
{
is_intel_data_rec,
get_intel_rec_address,
get_intel_rec_data_count,
255, /* Maximum data bytes in a record. */
get_intel_rec_data_start,
put_intel_data_rec
};
/*------------------------- Motorola S1-record format ------------------------*/
/*
* Motorola S-record data-record layout
*
* Sabbc...cd...dee
*
* S - header character
* a - record type, a 1-digit value:
* "0" is a header record
* "1" is a 2-byte-address data record
* "2" is a 3-byte-address data record
* "3" is a 4-byte-address data record
* "7" is a 4-byte-address end-of-data record
* "8" is a 3-byte-address end-of-data record
* "9" is a 2-byte-address end-of-data record
* bb - record length in bytes, a 2-digit hex value
* (record length doesn't count the header/type
* chars and checksum byte)
* c...c - record address, a 4-, 6-, or 8-digit value,
* depending on record type
* d...d - data (always an even number of chars)
* ee - record checksum, a 2-digit hex value
* checksum = 1's complement
* [ (sum of all bytes: bbc..cd...d) modulo 256 ]
*/
#define S1_COUNT_OFFSET 3
Boolean is_moto_s1_data_rec( char * rec_str )
{
return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '1' ) );
}
Uint get_moto_s1_rec_data_count( char * rec_str )
{
return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S1_COUNT_OFFSET );
}
Ulong get_moto_s1_rec_address( char * rec_str )
{
return( get_ndigit_hex( rec_str + 4, 4 ) );
}
char * get_moto_s1_rec_data_start( char * rec_str )
{
return( rec_str + 8 );
}
void put_moto_s1_data_rec( Uint count, Ulong address, char * data_str )
{
char *ptr;
Uint sum = S1_COUNT_OFFSET + count +
( address >> 8 & 0xff ) + ( address & 0xff );
for ( ptr = data_str ; *ptr != EOS ; ptr += 2 )
sum += ( Uint ) get_ndigit_hex( ptr, 2 );
printf(
"S1%02X%04lX%s%02X\n",
count + S1_COUNT_OFFSET, address, data_str, ~sum & 0xff
);
}
Rec_vitals motorola_s1_rec =
{
is_moto_s1_data_rec,
get_moto_s1_rec_address,
get_moto_s1_rec_data_count,
MAX_LEN_S1_RECS, /* Maximum data bytes in a record. */
get_moto_s1_rec_data_start,
put_moto_s1_data_rec
};
/*------------------------- Motorola S2-record format ------------------------*/
#define S2_COUNT_OFFSET 4
Boolean is_moto_s2_data_rec( char * rec_str )
{
return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '2' ) );
}
Uint get_moto_s2_rec_data_count( char * rec_str )
{
return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S2_COUNT_OFFSET );
}
Ulong get_moto_s2_rec_address( char * rec_str )
{
return( get_ndigit_hex( rec_str + 4, 6 ) );
}
char * get_moto_s2_rec_data_start( char * rec_str )
{
return( rec_str + 10 );
}
void put_moto_s2_data_rec( Uint count, Ulong address, char * data_str )
{
char *ptr;
Uint sum = S2_COUNT_OFFSET + count + ( address >> 16 & 0xff ) +
( address >> 8 & 0xff ) +
( address & 0xff );
for ( ptr = data_str ; *ptr != EOS ; ptr += 2 )
sum += ( Uint ) get_ndigit_hex( ptr, 2 );
printf(
"S2%02X%06lX%s%02X\n",
count + S2_COUNT_OFFSET, address, data_str, ~sum & 0xff
);
}
Rec_vitals motorola_s2_rec =
{
is_moto_s2_data_rec,
get_moto_s2_rec_address,
get_moto_s2_rec_data_count,
MAX_LEN_S2_RECS, /* Maximum data bytes in a record. */
get_moto_s2_rec_data_start,
put_moto_s2_data_rec
};
/*------------------------- Motorola S3-record format ------------------------*/
#define S3_COUNT_OFFSET 5
Boolean is_moto_s3_data_rec( char * rec_str )
{
return ( ( rec_str[ 0 ] == 'S' ) && ( rec_str[ 1 ] == '3' ) );
}
Uint get_moto_s3_rec_data_count( char * rec_str )
{
return( ( Uint ) get_ndigit_hex( rec_str + 2, 2 ) - S3_COUNT_OFFSET );
}
Ulong get_moto_s3_rec_address( char * rec_str )
{
return( get_ndigit_hex( rec_str + 4, 8 ) );
}
char * get_moto_s3_rec_data_start( char * rec_str )
{
return( rec_str + 12 );
}
void put_moto_s3_data_rec( Uint count, Ulong address, char * data_str )
{
char *ptr;
Uint sum = S3_COUNT_OFFSET + count + ( address >> 24 & 0xff ) +
( address >> 16 & 0xff ) +
( address >> 8 & 0xff ) +
( address & 0xff );
for ( ptr = data_str ; *ptr != EOS ; ptr += 2 )
sum += ( Uint ) get_ndigit_hex( ptr, 2 );
printf(
"S3%02X%08lX%s%02X\n",
count + S3_COUNT_OFFSET, address, data_str, ~sum & 0xff
);
}
Rec_vitals motorola_s3_rec =
{
is_moto_s3_data_rec,
get_moto_s3_rec_address,
get_moto_s3_rec_data_count,
MAX_LEN_S3_RECS, /* Maximum data bytes in a record. */
get_moto_s3_rec_data_start,
put_moto_s3_data_rec
};
/*-------------------- Put your favorite hex format here ---------------------*/
/*
* * * * The following is a template for an additional hex format: * * *
*
*
* Boolean is_X_data_rec( char * rec_str ) {}
*
* Uint get_X_rec_data_count( char * rec_str ) {}
*
* Ulong get_X_rec_address( char * rec_str ) {}
*
* char * get_X_rec_data_start( char * rec_str ) {}
*
* void put_X_data_rec( Uint count, Ulong address, char * data_str ) {}
*
* Rec_vitals X_rec =
* {
* is_X_data_rec,
* get_X_rec_address,
* get_X_rec_data_count,
* MAXIMUM DATA BYTES IN A RECORD,
* get_X_rec_data_start,
* put_X_data_rec
* };
*
*/
/*----------------------------------------------------------------------------*/
/*
* Put address of additional Rec_vitals structures
* in this array, before the NULL entry.
*/
Rec_vitals *formats[] =
{
&intel_hex,
&motorola_s1_rec,
&motorola_s2_rec,
&motorola_s3_rec,
( Rec_vitals * ) NULL
};
/**** main *****************************************************************
*
*
* Expects: Nothing (no command-line parameters).
*
* Returns: Exit status (EXIT_SUCCESS or EXIT_FAILURE).
*
* Reads hex records on the standard input and attempts to
* splice adjacent data fields together. Results appear on
* the standard output.
*
*******************************************************************************/
int main(
int argc,
char **argv
)
{
char inbuff[ MAX_LINE_SIZE ], outbuff[ MAX_LINE_SIZE ];
char *in_dptr, *out_dptr;
int d_total, d_count, d_excess, n;
int length;
Ulong in_rec_addr, out_rec_addr = 0;
Rec_vitals *rptr;
/* Sift through file until first hex record is identified. */
rptr = identify_first_data_record( inbuff, MAX_LINE_SIZE );
if ( rptr == NULL )
{
fputs( "No hex records found.\n", stderr );
exit( EXIT_FAILURE );
}
/* Attempt data-record splicing until end-of-file is reached. */
d_total = 0;
for (;;) {
if ( rptr->is_data_record( inbuff ) == YES )
{ /* Input record is a data record. */
d_count = rptr->get_data_count( inbuff );
in_rec_addr = rptr->get_address( inbuff );
in_dptr = rptr->get_data_start( inbuff );
if ( d_total == 0 || in_rec_addr != out_rec_addr + d_total )
{ /* Begin a new output record. */
if ( d_total != 0 )
rptr->put_data_record( d_total, out_rec_addr, outbuff );
out_dptr = outbuff;
n = d_total = d_count;
out_rec_addr = in_rec_addr;
}
else if
( ( d_excess = d_total + d_count - rptr->max_data_count ) > 0 )
{ /* Output a maximum-length record, then start a new record. */
strncat( outbuff, in_dptr, 2 * ( d_count - d_excess ) );
rptr->put_data_record(
rptr->max_data_count, out_rec_addr, outbuff
);
in_dptr += 2 * ( d_count - d_excess );
out_dptr = outbuff;
n = d_total = d_excess;
out_rec_addr += rptr->max_data_count;
}
else
{ /* Append input record's data field with accumulated data. */
out_dptr = outbuff + ( 2 * d_total );
d_total += n = d_count;
}
strncpy( out_dptr, in_dptr, 2 * n );
out_dptr[ 2 * n ] = EOS;
}
else
{ /* Not a data record;
* flush accumulated data then echo non-data record.
*/
if ( d_total != 0 )
{
rptr->put_data_record( d_total, out_rec_addr, outbuff );
d_total = 0;
}
puts( inbuff );
}
inbuff[ MAX_LINE_SIZE - 1 ] = '\0';
if ( !fgets( inbuff, MAX_LINE_SIZE, stdin ) )
break;
if ( inbuff[ MAX_LINE_SIZE - 1 ] ) {
fprintf( stderr, "Input line too long" );
exit( 1 );
}
length = strlen(inbuff);
inbuff[length - 1] = '\0';
}
return ( EXIT_SUCCESS );
}
/**** identify_first_data_record *******************************************
*
* Expects: Pointer to hex-record line buffer.
*
* Returns: Pointer to hex-record structure (NULL if no match found).
*
* Reads the standard input, line by line, searching for a valid
* record header character. If a valid header is found, a pointer
* to the hex-record's type structure is returned, otherwise NULL.
*
* The input-stream pointer is left pointing to the first valid hex record.
*
*******************************************************************************/
Rec_vitals * identify_first_data_record( char * buff_ptr, int max_length )
{
Rec_vitals ** ptr;
int length;
for ( ;; ) {
buff_ptr[ max_length - 1 ] = '\0';
if ( !fgets( buff_ptr, max_length, stdin ) )
break;
if ( buff_ptr[ max_length - 1 ] ) {
fprintf( stderr, "Input line too long" );
exit( 1 );
}
length = strlen(buff_ptr);
buff_ptr[length - 1] = '\0';
for ( ptr = formats ; *ptr != ( Rec_vitals * ) NULL ; ptr++ )
if ( ( *ptr )->is_data_record( buff_ptr ) == YES )
return( *ptr ); /* Successful return. */
puts( buff_ptr ); /* Echo non-hex-record line. */
}
return( ( Rec_vitals * ) NULL ); /* Unsuccessful return. */
}
/**** get_ndigit_hex *******************************************************
*
* Expects: Pointer to first ASCII hexadecimal digit, number of digits.
*
* Returns: Value of hexadecimal string as an unsigned long.
*
*******************************************************************************/
Ulong get_ndigit_hex( char * cptr, int digits )
{
Ulong value;
for ( value = 0 ; --digits >= 0 ; cptr++ )
value = ( value * 16L ) + HEX_DIGIT( *cptr );
return( value );
}

View File

@@ -1,73 +0,0 @@
#!@KSH@ -p
#
# $Id$
#
# Delete all files from the current directory that can be recreated
# via RCS 'co' commonds
# Used by 'make clobber'
#
progname=${0##*/} # fast basename hack for ksh, bash
USAGE=\
"usage: $progname [ -v ]"
fatal() {
if [ "$1" ]
then
echo $* >&2
fi
echo "$USAGE" 1>&2
exit 1
}
#
# process the options
#
verbose=""
while getopts v OPT
do
case "$OPT" in
v)
verbose="yes";;
*)
fatal
esac
done
let $((shiftcount = $OPTIND - 1))
shift $shiftcount
args=$*
[ "$args" ] && fatal
[ -d RCS/. ] || exit 0
# there is probably a better way to do this
rcs_files=`echo RCS/*,v | sed -e 's?RCS/??g' -e's/,v//g'`
kills=""
for f in $rcs_files
do
# build list of all files in RCS/*,v that are *not* locked
if [ -f $f ] && [ ! -w $f ] && [ -f RCS/$f,v ]
then
locked=`rlog -L -R $f`
[ "$locked" = "" ] && kills="$kills $f"
fi
done
if [ "$kills" ]
then
[ "$verbose" ] && echo rm -f $kills
rm -f $kills
fi
exit 0
# Local Variables: ***
# mode:ksh ***
# End: ***

View File

@@ -1,15 +0,0 @@
#!/bin/sh
#
# $Id$
#
find $1 -type f -a ! -name "*.scn" -a ! -name "bsp_specs" -a \
-print > /tmp/$$.0
find $1 -type f -a ! -name "*.scn" -a ! -name "bsp_specs" -a \
-exec grep -l '$Id' {} \; > /tmp/$$.1
diff /tmp/$$.0 /tmp/$$.1 > /tmp/$$.2
grep "<" /tmp/$$.2 | sed 's/< //' >&1
rm -f /tmp/$$*

View File

@@ -1,738 +0,0 @@
/*
* unhex
* convert a hex file to binary equivalent. If more than one file name
* is given, then the output will be logically concatenated together.
* stdin and stdout are defaults. Verbose will enable checksum output.
*
* Supported input formats are Intel hex, Motorola S records, and TI 'B'
* records.
*
* Intel hex input format is
* Byte
* 1 Colon :
* 2..3 Record length, eg: "20"
* 4..7 load address nibbles
* 8..9 record type: "00" (data) or "02" base addr
* 10..x data bytes in ascii-hex
* x+1..x+2 cksum (2's compl of (len+addr+data))
* x+3 \n -- newline
*
* $Id$
*/
char *USAGE = "\
usage: unhex [-va] [ -o file ] [ file [file ... ] ]\n\
-v -- verbose\n\
-a base -- 1st byte of output corresponds to this address\n\
-l -- linear, just writes data out\n\
-o file -- output file; must not be input file\n\
-F k_bits -- \"holes\" in input will be filled with 0xFF's\n\
up to \"k_bits\" * 1024 bits\n\
";
#include <stdio.h>
#include <fcntl.h>
#include <ctype.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdarg.h>
#include <errno.h>
#include "config.h"
#ifndef VMS
#ifndef HAVE_STRERROR
extern int sys_nerr;
extern char *sys_errlist[];
#define strerror( _err ) \
((_err) < sys_nerr) ? sys_errlist [(_err)] : "unknown error"
#else /* HAVE_STRERROR */
char *strerror ();
#endif
#else /* VMS */
char *strerror (int,...);
#endif
#define OK 0
#define FAILURE (-1)
#define Failed(x) ((x) == FAILURE)
#define TRUE 1
#define FALSE 0
typedef char bool;
#define STREQ(a,b) (strcmp(a,b) == 0)
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned long u32;
/*
* Pick out designated bytes
*/
#define B0(x) ((x) & 0xff)
#define B1(x) B0((x) >> 8)
#define B2(x) B0((x) >> 16)
#define B3(x) B0((x) >> 24)
typedef struct buffer_rec {
u32 dl_destaddr;
u32 dl_jumpaddr;
int dl_count;
u8 dl_buf[512];
} buffer_rec;
/*
* vars controlled by command line options
*/
bool verbose = FALSE; /* be verbose */
bool linear = FALSE; /* just write out linear data */
char *outfilename = "-"; /* default output is stdout */
u32 base = 0L; /* base address */
u32 FFfill = 0L; /* how far to fill w 0xFF's */
extern char *optarg; /* getopt(3) control vars */
extern int optind;
char *progname; /* for error() */
void error(int errn, ...);
#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */
#define ERR_FATAL (ERR_ERRNO / 2) /* error is fatal; no return */
#define ERR_ABORT (ERR_ERRNO / 4) /* error is fatal; abort */
#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */
#ifdef HAVE_STRTOUL
#define stol(p) strtoul(p, (char **) NULL, 0)
#else
#define stol(p) strtol(p, (char **) NULL, 0)
#endif
int unhex(FILE *ifp, char *inm, FILE *ofp, char *onm);
int convert_Intel_records(FILE *ifp, char *inm, FILE *ofp, char *onm);
int convert_S_records(FILE *ifp, char *inm, FILE *ofp, char *onm);
int convert_TI_records(FILE *ifp, char *inm, FILE *ofp, char *onm);
void write_record(buffer_rec *tb, FILE *fp);
int getnibble(char **p);
int getbyte(char **p);
long getNbytes(char **p, int n);
void badformat(char *s, char *fname, char *msg);
#define get1bytes(p) ((int) getbyte(p))
#define get2bytes(p) ((int) getNbytes(p, 2))
#define get3bytes(p) getNbytes(p, 3)
#define get4bytes(p) getNbytes(p, 4)
char *BADADDR = "Invalid record address";
char *BADLEN = "Invalid record length";
char *BADBASE = "Bad base or starting address";
char *BADFMT = "Unrecognized record type";
char *BADDATA = "Invalid data byte";
char *BADCSUM = "Invalid checksum";
char *MISCSUM = "Checksum mismatch";
char *BADTYPE = "Unrecognized record type";
char *MISTYPE = "Incompatible record types";
int main(
int argc,
char **argv
)
{
register int c;
bool showusage = FALSE; /* usage error? */
int rc = 0;
FILE *outfp, *infp;
/*
* figure out invocation leaf-name
*/
if ((progname = strrchr(argv[0], '/')) == (char *) NULL)
progname = argv[0];
else
progname++;
argv[0] = progname; /* for getopt err reporting */
/*
* Check options and arguments.
*/
progname = argv[0];
while ((c = getopt(argc, argv, "F:a:o:vl")) != EOF)
switch (c)
{
case 'a': /* base address */
base = stol(optarg);
break;
case 'l': /* linear output */
linear = TRUE;
break;
case 'v': /* toggle verbose */
verbose = ! verbose;
break;
case 'o': /* output file */
outfilename = optarg;
break;
case 'F': /* 0xFF fill amount (bytes) */
FFfill = stol(optarg) * 1024L / 8L;
break;
case '?':
showusage = TRUE;
}
if (showusage)
{
(void) fprintf(stderr, "%s", USAGE);
exit(1);
}
if (linear && (base != 0))
{
error(0, "-l and -a may not be specified in combination");
exit(1);
}
if (STREQ(outfilename, "-"))
{
outfp = stdout;
outfilename = "stdout";
}
else
if ((outfp = fopen(outfilename, "w")) == (FILE *) NULL)
{
error(-1, "couldn't open '%s' for output", outfilename);
exit(1);
}
/*
* Now process the input files (or stdin, if none specified)
*/
if (argv[optind] == (char *) NULL) /* just stdin */
exit(unhex(stdin, "stdin", outfp, outfilename));
else
for (; (optarg = argv[optind]); optind++)
{
if (STREQ(optarg, "-"))
rc += unhex(stdin, "stdin", outfp, outfilename);
else
{
if ((infp = fopen(optarg, "r")) == (FILE *) NULL)
{
error(-1, "couldn't open '%s' for input", optarg);
exit(1);
}
rc += unhex(infp, optarg, outfp, outfilename);
}
}
return(rc);
}
u16 filesum;
int
unhex(FILE *ifp,
char *inm,
FILE *ofp,
char *onm)
{
int c;
filesum = 0;
/*
* Make sure holes will be filled with 0xFF's if requested. We
* do this the easy way by just filling the file with FF's before
* getting started. To do it more optimally would be quite a bit
* more difficult since the user can skip around as much as he/she
* likes in the input hex file addressing.
*
* We'll clean this up later (after this program has run) with
* 'stripffs'
*/
if (FFfill)
{
(void) fseek(ofp, 0, 0);
for (c = FFfill; c > 0; c--)
(void) fputc(0xFF, ofp);
}
/*
* Read the first char from file and determine record types
*/
if ((c = getc(ifp)) != EOF)
{
ungetc(c, ifp);
switch(c)
{
case 'S':
convert_S_records(ifp, inm, ofp, onm);
break;
case ':':
convert_Intel_records(ifp, inm, ofp, onm);
break;
case '9':
case 'B':
convert_TI_records(ifp, inm, ofp, onm);
break;
default:
{
char tmp[2];
tmp[0] = c; tmp[1] = 0;
badformat(tmp, inm, BADFMT);
}
}
}
if (verbose)
fprintf(stderr, "'%s' checksum is 0x%04x\n", inm, filesum);
return 0;
}
int
convert_Intel_records(
FILE *ifp,
char *inm,
FILE *ofp,
char *onm)
{
char buff[512];
char *p;
u8 cksum;
int incksum;
int c;
int rectype; /* record type */
int len; /* data length of current line */
u32 addr;
u32 base_address = 0;
bool endrecord = FALSE;
buffer_rec tb;
while ( ! endrecord && (fgets(buff, sizeof(buff), ifp)))
{
p = &buff[0];
if (p[strlen(p)-1] == '\n') /* get rid of newline */
p[strlen(p)-1] = '\0';
if (p[strlen(p)-1] == '\r') /* get rid of any CR */
p[strlen(p)-1] = '\0';
tb.dl_count = 0;
if (*p != ':')
badformat(p, inm, BADFMT);
p++;
if ((len = getbyte(&p)) == -1) /* record len */
badformat(buff, inm, BADLEN);
if ((addr = get2bytes(&p)) == -1L) /* record addr */
badformat(buff, inm, BADADDR);
rectype = getbyte(&p);
cksum = len + B0(addr) + B1(addr) + rectype;
switch (rectype)
{
case 0x00: /* normal data record */
tb.dl_destaddr = base_address + addr;
while (len--)
{
if ((c = getbyte(&p)) == -1)
badformat(buff, inm, BADDATA);
cksum += c;
filesum += c;
tb.dl_buf[tb.dl_count++] = c;
}
break;
case 0x01: /* execution start address */
base_address = addr;
endrecord = TRUE;
break;
case 0x02: /* new base */
if ((base_address = get2bytes(&p)) == -1L)
badformat(buff, inm, BADBASE);
cksum += B0(base_address) + B1(base_address);
base_address <<= 4;
break;
case 0x03: /* seg/off execution start address */
{
u32 seg, off;
seg = get2bytes(&p);
off = get2bytes(&p);
if ((seg == -1L) || (off == -1L))
badformat(buff, inm, BADADDR);
cksum += B0(seg) + B1(seg) + B0(off) + B1(off);
tb.dl_jumpaddr = (seg << 4) + off;
break;
}
default:
error(0, "unknown Intel-hex record type: 0x%02x", rectype);
badformat(buff, inm, BADTYPE);
}
/*
* Verify checksums are correct in file.
*/
cksum = (-cksum) & 0xff;
if ((incksum = getbyte(&p)) == -1)
badformat(buff, inm, BADCSUM);
if (((u8) incksum) != cksum)
badformat(buff, inm, MISCSUM);
if (tb.dl_count)
write_record(&tb, ofp);
}
return 0;
}
int
convert_S_records(
FILE *ifp,
char *inm,
FILE *ofp,
char *onm)
{
char buff[512];
char *p;
u8 cksum;
int incksum;
int c;
int len; /* data length of current line */
int rectype; /* record type */
u32 addr;
bool endrecord = FALSE;
buffer_rec tb;
while ( ! endrecord && (fgets(buff, sizeof(buff), ifp)))
{
p = &buff[0];
if (p[strlen(p)-1] == '\n') /* get rid of newline */
p[strlen(p)-1] = '\0';
if (p[strlen(p)-1] == '\r') /* get rid of any CR */
p[strlen(p)-1] = '\0';
tb.dl_count = 0;
if (*p != 'S')
badformat(p, inm, BADFMT);
p++;
if ((rectype = getnibble(&p)) == -1) /* record type */
badformat(buff, inm, BADTYPE);
if ((len = getbyte(&p)) == -1) /* record len */
badformat(buff, inm, BADLEN);
cksum = len;
switch (rectype)
{
case 0x00: /* comment field, ignored */
goto write_it;
case 0x01: /* data record, 16 bit addr */
if ((addr = get2bytes(&p)) == -1L)
badformat(buff, inm, BADADDR);
len -= 3;
goto doit;
case 0x02: /* ... 24 bit addr */
if ((addr = get3bytes(&p)) == -1L)
badformat(buff, inm, BADADDR);
len -= 4;
goto doit;
case 0x03: /* ... 32 bit addr */
if ((addr = get4bytes(&p)) == -1L)
badformat(buff, inm, BADADDR);
len -= 5;
doit:
cksum += B0(addr) + B1(addr) + B2(addr) + B3(addr);
tb.dl_destaddr = addr;
while (len--)
{
if ((c = getbyte(&p)) == -1)
badformat(buff, inm, BADDATA);
cksum += c;
filesum += c;
tb.dl_buf[tb.dl_count++] = c;
}
break;
case 0x07: /* 32 bit end record */
if ((addr = get4bytes(&p)) == -1L)
badformat(buff, inm, BADADDR);
goto end_rec;
case 0x08: /* 24 bit end record */
if ((addr = get3bytes(&p)) == -1L)
badformat(buff, inm, BADADDR);
goto end_rec;
case 0x09: /* 16 bit end record */
if ((addr = get2bytes(&p)) == -1L)
badformat(buff, inm, BADADDR);
end_rec:
cksum += B0(addr) + B1(addr) + B2(addr) + B3(addr);
tb.dl_jumpaddr = addr;
break;
default:
error(0, "unknown Motorola-S record type: 0x%02x", rectype);
badformat(buff, inm, BADTYPE);
break;
}
/*
* Verify checksums are correct in file.
*/
cksum = (~cksum) & 0xff;
if ((incksum = getbyte(&p)) == -1)
badformat(buff, inm, BADCSUM);
if (((u8) incksum) != cksum)
badformat(buff, inm, MISCSUM);
write_it:
if (tb.dl_count)
write_record(&tb, ofp);
}
return 0;
}
int
convert_TI_records(
FILE *ifp,
char *inm,
FILE *ofp,
char *onm)
{
char buff[512];
char *p;
int c;
bool endrecord = FALSE;
bool eol;
buffer_rec tb;
while ( ! endrecord && (fgets(buff, sizeof(buff), ifp)))
{
if (p[strlen(p)-1] == '\n') /* get rid of newline */
p[strlen(p)-1] = '\0';
if (p[strlen(p)-1] == '\r') /* get rid of any CR */
p[strlen(p)-1] = '\0';
tb.dl_count = 0;
p = &buff[0];
eol = FALSE;
while ( ! eol && ! endrecord)
{
switch (*p++)
{
case '9':
if (tb.dl_count)
write_record(&tb, ofp);
tb.dl_destaddr = get2bytes(&p);
break;
case 'B':
c = getbyte(&p);
filesum += c;
tb.dl_buf[tb.dl_count++] = c;
c = getbyte(&p);
filesum += c;
tb.dl_buf[tb.dl_count++] = c;
break;
case 'F':
eol = TRUE;
break;
case ':':
endrecord = TRUE;
break;
default:
badformat(p, inm, BADFMT);
}
}
if (tb.dl_count)
write_record(&tb, ofp);
}
return 0;
}
void
write_record(buffer_rec *tb,
FILE *fp)
{
if ( ! linear)
{
if (tb->dl_destaddr < base)
error(ERR_FATAL, "record at address 0x%x precedes base of 0x%x",
tb->dl_destaddr, base);
(void) fseek(fp, tb->dl_destaddr - base, 0);
}
(void) fwrite(tb->dl_buf, tb->dl_count, 1, fp);
tb->dl_destaddr += tb->dl_count;
tb->dl_count = 0;
}
int
getnibble(char **p)
{
register int val;
**p = toupper(**p);
switch (**p)
{
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
val = **p - '0';
break;
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
val = 10 + (**p - 'A');
break;
default:
return(-1);
}
*p += 1;
return(val & 0x0f);
}
int
getbyte(char **p)
{
int n0, n1;
if ((n0 = getnibble(p)) == -1)
return(-1);
if ((n1 = getnibble(p)) == -1)
return(-1);
return(((n0 << 4) + n1) & 0xff);
}
long
getNbytes(char **p,
int n)
{
int t;
u32 val = 0;
while (n--)
{
if ((t = getbyte(p)) == -1)
return(-1L);
val <<= 8;
val += t;
}
return(val);
}
void
badformat(char *s,
char *fname,
char *msg)
{
if (s[strlen(s)-1] == '\n') /* get rid of newline */
s[strlen(s)-1] = '\0';
error(0, "line '%s'::\n\tfrom file '%s'; %s", s, fname, msg);
exit(1);
}
/*
* error(errn, arglist)
* report an error to stderr using printf(3) conventions.
* Any output is preceded by '<progname>: '
*
* Uses ERR_EXIT bit to request exit(errn)
* ERR_ABORT to request abort()
* ERR_ERRNO to indicate use of errno instead of argument.
*
* If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its
* associated error message is appended to the output.
*/
/*VARARGS*/
void
error(int error_flag, ...)
{
va_list arglist;
register char *format;
int local_errno;
extern int errno;
(void) fflush(stdout); /* in case stdout/stderr same */
local_errno = error_flag & ~ERR_MASK;
if (error_flag & ERR_ERRNO) /* use errno? */
local_errno = errno;
va_start(arglist, error_flag);
format = va_arg(arglist, char *);
(void) fprintf(stderr, "%s: ", progname);
(void) vfprintf(stderr, format, arglist);
va_end(arglist);
if (local_errno)
(void) fprintf(stderr, " (%s)\n", strerror(local_errno));
else
(void) fprintf(stderr, "\n");
(void) fflush(stderr);
if (error_flag & (ERR_FATAL | ERR_ABORT))
{
if (error_flag & ERR_FATAL)
{
error(0, "fatal error, exiting");
exit(local_errno ? local_errno : 1);
}
else
{
error(0, "fatal error, aborting");
abort();
}
}
}

View File

@@ -1,41 +0,0 @@
#!@KSH@
#
# $Id$
#
# Unlock a directory processed by lock_directory
#
# is a particular command available on this machine?
#
cmd_avail()
{
set -- `type $1 2>&1`
if [ "$2" = "not" -a "$3" = "found" ] || [ "$3" = "not" -a "$4" = "found" ]
then
return 1
else
return 0
fi
}
unlock_directory() {
ul_dir=$1/. # get any symlink out of the way using '.'
if [ -d $ul_dir ]
then
find $ul_dir -type d ! -perm -0222 -print | $XARGS -t chmod +w
fi
}
# Use gnu xargs if available; faster, more reliable in general
XARGS=xargs
cmd_avail gxargs && XARGS=gxargs
for dir
do
unlock_directory $dir
done
# Local Variables: ***
# mode:ksh ***
# End: ***

View File

@@ -1,33 +0,0 @@
/* config.h
*
* This include file defines the Configuration Table for this test.
*
* COPYRIGHT (c) 1989-1997.
* On-Line Applications Research Corporation (OAR).
* Copyright assigned to U.S. Government, 1994.
*
* The license and distribution terms for this file may in
* the file LICENSE in this distribution or at
* http://www.OARcorp.com/rtems/license.html.
*
* $Id$
*/
/* configuration information */
#define CONFIGURE_MPTEST
#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER
#define CONFIGURE_POSIX_INIT_THREAD_TABLE
#define CONFIGURE_MAXIMUM_POSIX_THREADS 10
#define CONFIGURE_MAXIMUM_POSIX_KEYS 10
#define CONFIGURE_MAXIMUM_POSIX_MUTEXES 20
#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 10
#include <confdefs.h>
/* end of include file */

View File

@@ -1,57 +0,0 @@
--
-- MAIN / BODY
--
-- DESCRIPTION:
--
-- This is the entry point for Test MP01 of the Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
with MPTEST;
with TEST_SUPPORT;
procedure MP01 is
INIT_ID : RTEMS.ID;
STATUS : RTEMS.STATUS_CODES;
begin
RTEMS.TASK_CREATE(
RTEMS.BUILD_NAME( 'I', 'N', 'I', 'T' ),
1,
RTEMS.MINIMUM_STACK_SIZE,
RTEMS.NO_PREEMPT,
RTEMS.GLOBAL,
INIT_ID,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF INIT" );
RTEMS.TASK_START(
INIT_ID,
MPTEST.INIT'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF INIT" );
loop
delay 120.0;
end loop;
end MP01;

View File

@@ -1,235 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 1 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
C : RTEMS.CHARACTER;
TIME : RTEMS.TIME_OF_DAY;
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 1 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE /= 1 then
C := 'S';
else
C := 'M';
end if;
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( C, 'A', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( C, 'A', '2', ' ' );
MPTEST.TASK_NAME( 3 ) := RTEMS.BUILD_NAME( C, 'A', '3', ' ' );
TIME := ( 1988, 12, 31, 9, 0, 0, 0 );
RTEMS.CLOCK_SET( TIME, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_SET" );
TEXT_IO.PUT_LINE( "Creating task 1 (Global)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( 1 ),
1,
2048,
RTEMS.DEFAULT_MODES,
RTEMS.GLOBAL,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA1" );
TEXT_IO.PUT_LINE( "Creating task 2 (Global)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( 2 ),
1,
2048,
RTEMS.TIMESLICE,
RTEMS.GLOBAL,
MPTEST.TASK_ID( 2 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA2" );
TEXT_IO.PUT_LINE( "Creating task 3 (Local)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( 3 ),
1,
2048,
RTEMS.DEFAULT_MODES,
RTEMS.DEFAULT_ATTRIBUTES,
MPTEST.TASK_ID( 3 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA3" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA1" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 2 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA2" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 3 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA3" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end INIT;
--PAGE
--
-- TEST_TASK
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
TIME : RTEMS.TIME_OF_DAY;
TID : RTEMS.ID;
STATUS : RTEMS.STATUS_CODES;
begin
RTEMS.TASK_IDENT( RTEMS.SELF, RTEMS.SEARCH_ALL_NODES, TID, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_IDENT OF SELF" );
RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_GET" );
TEST_SUPPORT.PUT_NAME(
MPTEST.TASK_NAME( TEST_SUPPORT.TASK_NUMBER( TID ) ),
FALSE
);
TEST_SUPPORT.PRINT_TIME( "- clock_get - ", TIME, "" );
TEXT_IO.NEW_LINE;
RTEMS.TASK_WAKE_AFTER(
TEST_SUPPORT.TASK_NUMBER( TID ) * 5 *
TEST_SUPPORT.TICKS_PER_SECOND,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
RTEMS.CLOCK_GET( RTEMS.CLOCK_GET_TOD, TIME'ADDRESS, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "CLOCK_GET" );
TEST_SUPPORT.PUT_NAME(
MPTEST.TASK_NAME( TEST_SUPPORT.TASK_NUMBER( TID ) ),
FALSE
);
TEST_SUPPORT.PRINT_TIME( "- clock_get - ", TIME, "" );
TEXT_IO.NEW_LINE;
if TEST_SUPPORT.TASK_NUMBER( TID ) = 1 then -- TASK 1
TEST_SUPPORT.PUT_NAME(
MPTEST.TASK_NAME( TEST_SUPPORT.TASK_NUMBER( TID ) ),
FALSE
);
TEXT_IO.PUT_LINE( " - deleting self" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
else if TEST_SUPPORT.TASK_NUMBER( TID ) = 2 then -- TASK 2
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( 2 ), FALSE );
TEXT_IO.PUT( " - waiting to be deleted by " );
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( 3 ), TRUE );
loop
TEST_SUPPORT.DO_NOTHING; -- can't be optimized away
end loop;
else -- TASK 3
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( 3 ), FALSE );
TEXT_IO.PUT( " - getting TID of " );
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( 2 ), TRUE );
RTEMS.TASK_IDENT(
MPTEST.TASK_NAME( 2 ),
RTEMS.SEARCH_ALL_NODES,
TID,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_IDENT OF TA2" );
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( 3 ), FALSE );
TEXT_IO.PUT( " - deleting " );
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( 2 ), TRUE );
RTEMS.TASK_DELETE( TID, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF TA2" );
end if;
end if;
TEXT_IO.PUT_LINE( "*** END OF TEST 1 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end TEST_TASK;
end MPTEST;

View File

@@ -1,164 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 1 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- TEST_TASK
--
-- DESCRIPTION:
--
-- This is the body of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.GLOBAL, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
33, -- maximum # global objects
33 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
0, -- maximum # timers
0, -- maximum # semaphores
0, -- maximum # message queues
0, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,15 +0,0 @@
*** TEST 1 -- NODE 1 ***
Creating task 1 (Global)
Creating task 2 (Global)
Creating task 3 (Local)
MA1 - clock_get - 9: 0: 0 12/31/1988
MA2 - clock_get - 9: 0: 0 12/31/1988
MA3 - clock_get - 9: 0: 0 12/31/1988
MA1 - clock_get - 9: 0: 5 12/31/1988
MA1 - deleting self
MA2 - clock_get - 9: 0:10 12/31/1988
MA2 - waiting to be deleted by MA3
MA3 - clock_get - 9: 0:15 12/31/1988
MA3 - getting TID of MA2
MA3 - deleting MA2
*** END OF TEST 1 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,15 +0,0 @@
*** TEST 1 -- NODE 2 ***
Creating task 1 (Global)
Creating task 2 (Global)
Creating task 3 (Local)
SA1 - clock_get - 9: 0: 0 12/31/1988
SA2 - clock_get - 9: 0: 0 12/31/1988
SA3 - clock_get - 9: 0: 0 12/31/1988
SA1 - clock_get - 9: 0: 5 12/31/1988
SA1 - deleting self
SA2 - clock_get - 9: 0:10 12/31/1988
SA2 - waiting to be deleted by SA3
SA3 - clock_get - 9: 0:15 12/31/1988
SA3 - getting TID of SA2
SA3 - deleting SA2
*** END OF TEST 1 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,213 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 2 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 2 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
TEXT_IO.PUT_LINE( "Creating test task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( MPTEST.MULTIPROCESSING_CONFIGURATION.NODE ),
1,
2048,
RTEMS.NO_PREEMPT,
RTEMS.GLOBAL,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end INIT;
--PAGE
--
-- TEST_TASK
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
TID : RTEMS.ID;
TEST_TID : RTEMS.ID;
REMOTE_TID : RTEMS.ID;
REMOTE_NODE : RTEMS.UNSIGNED32;
NOTE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES;
begin
RTEMS.TASK_IDENT( RTEMS.SELF, RTEMS.SEARCH_ALL_NODES, TID, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_IDENT OF SELF" );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
REMOTE_NODE := 2;
else
REMOTE_NODE := 1;
end if;
TEXT_IO.PUT_LINE( "Getting TID of remote task (all nodes)" );
loop
RTEMS.TASK_IDENT(
MPTEST.TASK_NAME( REMOTE_NODE ),
RTEMS.SEARCH_ALL_NODES,
REMOTE_TID,
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
--
-- We just got this ID above so looping is not necessary.
--
TEXT_IO.PUT_LINE( "Getting TID of remote task (1 node)" );
RTEMS.TASK_IDENT(
MPTEST.TASK_NAME( REMOTE_NODE ),
REMOTE_NODE,
TEST_TID,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_IDENT" );
if TEST_TID /= REMOTE_TID then
TEXT_IO.PUT_LINE( "task_ident tid's do not match!!" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end if;
RTEMS.TASK_DELETE( REMOTE_TID, STATUS );
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.ILLEGAL_ON_REMOTE_OBJECT,
"task_delete of remote task"
);
TEXT_IO.PUT_LINE(
"task_delete of remote task returned the correct error"
);
RTEMS.TASK_START( REMOTE_TID, MPTEST.TEST_TASK'ACCESS, 0, STATUS );
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.ILLEGAL_ON_REMOTE_OBJECT,
"task_start of remote task"
);
TEXT_IO.PUT_LINE(
"task_start of remote task returned the correct error"
);
RTEMS.TASK_RESTART( REMOTE_TID, 0, STATUS );
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.ILLEGAL_ON_REMOTE_OBJECT,
"task_restart of remote task"
);
TEXT_IO.PUT_LINE(
"task_restart of remote task returned the correct error"
);
TEXT_IO.PUT( "Setting notepad " );
UNSIGNED32_IO.PUT( RTEMS.GET_NODE( TID ), WIDTH=>1 );
TEXT_IO.PUT( " of the remote task to " );
UNSIGNED32_IO.PUT( RTEMS.GET_NODE( TID ), WIDTH=>1 );
TEXT_IO.NEW_LINE;
RTEMS.TASK_SET_NOTE(
REMOTE_TID,
RTEMS.GET_NODE( TID ),
RTEMS.GET_NODE( TID ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_SET_NOTE" );
TEXT_IO.PUT_LINE( "Getting a notepad of the remote task" );
RTEMS.TASK_GET_NOTE(
REMOTE_TID,
RTEMS.GET_NODE( TID ),
NOTE,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_GET_NOTE" );
if NOTE = RTEMS.GET_NODE( TID ) then
TEXT_IO.PUT_LINE( "Remote notepad set and read correctly" );
else
TEXT_IO.PUT(
"FAILURE!!! Remote notepad was not set and read correctly ("
);
UNSIGNED32_IO.PUT( NOTE );
TEXT_IO.PUT( ", " );
UNSIGNED32_IO.PUT( RTEMS.GET_NODE( TID ) );
TEXT_IO.PUT_LINE( ")" );
end if;
RTEMS.TASK_DELETE( REMOTE_TID, STATUS );
TEXT_IO.PUT_LINE( "*** END OF TEST 2 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end TEST_TASK;
end MPTEST;

View File

@@ -1,164 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 2 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- TEST_TASK
--
-- DESCRIPTION:
--
-- This is the body of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
0, -- maximum # timers
0, -- maximum # semaphores
0, -- maximum # message queues
0, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,11 +0,0 @@
*** TEST 2 -- NODE 1 ***
Creating test task (Global)
Getting TID of remote task (all nodes)
Getting TID of remote task (1 node)
task_delete of remote task returned the correct error
task_start of remote task returned the correct error
task_restart of remote task returned the correct error
Setting notepad 1 of the remote task to 1
Getting a notepad of the remote task
Remote notepad set and read correctly
*** END OF TEST 2 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,11 +0,0 @@
*** TEST 2 -- NODE 2 ***
Creating test task (Global)
Getting TID of remote task (all nodes)
Getting TID of remote task (1 node)
task_delete of remote task returned the correct error
task_start of remote task returned the correct error
task_restart of remote task returned the correct error
Setting notepad 2 of the remote task to 2
Getting a notepad of the remote task
Remote notepad set and read correctly
*** END OF TEST 2 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,277 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 3 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 3 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
TEXT_IO.PUT_LINE( "Creating Test_task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( MPTEST.MULTIPROCESSING_CONFIGURATION.NODE ),
1,
2048,
RTEMS.NO_PREEMPT,
RTEMS.GLOBAL,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task (Global)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
MPTEST.TIMER_NAME( 1 ) := RTEMS.BUILD_NAME( 'T', 'M', '1', ' ' );
RTEMS.TIMER_CREATE(
MPTEST.TIMER_NAME( 1 ),
MPTEST.TIMER_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_CREATE" );
TEXT_IO.PUT_LINE( "Deleting initialization task" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end INIT;
--PAGE
--
-- DELAYED_SEND_EVENT
--
procedure DELAYED_SEND_EVENT (
IGNORED_ID : in RTEMS.ID;
IGNORED_ADDRESS : in RTEMS.ADDRESS
) is
STATUS : RTEMS.STATUS_CODES;
begin
RTEMS.EVENT_SEND( MPTEST.TASK_ID( 1 ), RTEMS.EVENT_16, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "EVENT_SEND" );
end DELAYED_SEND_EVENT;
--PAGE
--
-- TEST_TASK
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
TID : RTEMS.ID;
STATUS : RTEMS.STATUS_CODES;
begin
RTEMS.TASK_IDENT( RTEMS.SELF, RTEMS.SEARCH_ALL_NODES, TID, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_IDENT OF SELF" );
TEXT_IO.PUT_LINE( "Getting TID of remote task" );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
MPTEST.REMOTE_NODE := 2;
else
MPTEST.REMOTE_NODE := 1;
end if;
TEXT_IO.PUT( "Remote task's name is : " );
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( MPTEST.REMOTE_NODE ), TRUE );
loop
RTEMS.TASK_IDENT(
MPTEST.TASK_NAME( MPTEST.REMOTE_NODE ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.REMOTE_TID,
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
RTEMS.TIMER_FIRE_AFTER(
MPTEST.TIMER_ID( 1 ),
10 * TEST_SUPPORT.TICKS_PER_SECOND,
MPTEST.DELAYED_SEND_EVENT'ACCESS,
RTEMS.NULL_ADDRESS,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_FIRE_AFTER" );
MPTEST.TEST_TASK_SUPPORT( 1 );
RTEMS.TIMER_FIRE_AFTER(
MPTEST.TIMER_ID( 1 ),
11 * TEST_SUPPORT.TICKS_PER_SECOND,
MPTEST.DELAYED_SEND_EVENT'ACCESS,
RTEMS.NULL_ADDRESS,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_FIRE_AFTER" );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 2 then
RTEMS.TASK_WAKE_AFTER(
2 * TEST_SUPPORT.TICKS_PER_SECOND,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
end if;
MPTEST.TEST_TASK_SUPPORT( 2 );
TEXT_IO.PUT_LINE( "*** END OF TEST 3 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end TEST_TASK;
--PAGE
--
-- TEST_TASK_SUPPORT
--
procedure TEST_TASK_SUPPORT (
NODE : in RTEMS.UNSIGNED32
) is
EVENTS : RTEMS.EVENT_SET;
STATUS : RTEMS.STATUS_CODES;
begin
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = NODE then
loop
RTEMS.EVENT_RECEIVE(
RTEMS.EVENT_16,
RTEMS.NO_WAIT,
RTEMS.NO_TIMEOUT,
EVENTS,
STATUS
);
exit when RTEMS.ARE_STATUSES_EQUAL( RTEMS.SUCCESSFUL, STATUS );
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.UNSATISFIED,
"EVENT_RECEIVE"
);
RTEMS.TASK_WAKE_AFTER(
2 * TEST_SUPPORT.TICKS_PER_SECOND,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( NODE ), FALSE );
TEXT_IO.PUT_LINE( " - Suspending remote task" );
RTEMS.TASK_SUSPEND( MPTEST.REMOTE_TID, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_SUSPEND" );
RTEMS.TASK_WAKE_AFTER(
2 * TEST_SUPPORT.TICKS_PER_SECOND,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( NODE ), FALSE );
TEXT_IO.PUT_LINE( " - Resuming remote task" );
RTEMS.TASK_RESUME( MPTEST.REMOTE_TID, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_RESUME" );
end loop;
else
loop
RTEMS.EVENT_RECEIVE(
RTEMS.EVENT_16,
RTEMS.NO_WAIT,
RTEMS.NO_TIMEOUT,
EVENTS,
STATUS
);
exit when RTEMS.ARE_STATUSES_EQUAL( RTEMS.SUCCESSFUL, STATUS );
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.UNSATISFIED,
"EVENT_RECEIVE"
);
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( REMOTE_NODE ), FALSE );
TEXT_IO.PUT_LINE( " - have I been suspended???" );
RTEMS.TASK_WAKE_AFTER(
TEST_SUPPORT.TICKS_PER_SECOND / 2,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
end loop;
end if;
end TEST_TASK_SUPPORT;
end MPTEST;

View File

@@ -1,214 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 3 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS timers created
-- by this test.
--
TIMER_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
TIMER_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- This variable contains the ID of the remote task with which this
-- test interacts.
--
REMOTE_TID : RTEMS.ID;
--
-- This variable contains the node on which the remote task with which
-- this test interacts resides.
--
REMOTE_NODE : RTEMS.UNSIGNED32;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- DELAYED_SEND_EVENT
--
-- DESCRIPTION:
--
-- This subprogram is a timer service routine which sends an
-- event set to a waiting task.
--
procedure DELAYED_SEND_EVENT (
IGNORED_ID : in RTEMS.ID;
IGNORED_ADDRESS : in RTEMS.ADDRESS
);
--
-- TEST_TASK
--
-- DESCRIPTION:
--
-- This is the body of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- TEST_TASK_SUPPORT
--
-- DESCRIPTION:
--
-- This subprogram performs the bulk of the test. Based on the NODE
-- specified, this subprogram loops suspending/resuming a remote task
-- or waiting for itself to be suspended/resumed.
--
procedure TEST_TASK_SUPPORT (
NODE : in RTEMS.UNSIGNED32
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
1, -- maximum # timers
0, -- maximum # semaphores
0, -- maximum # message queues
0, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,28 +0,0 @@
*** TEST 3 -- NODE 1 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
Getting TID of remote task
Remote task's name is : 222
111 - Suspending remote task
111 - Resuming remote task
111 - Suspending remote task
111 - Resuming remote task
111 - Suspending remote task
111 - Resuming remote task
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
222 - have I been suspended???
*** END OF TEST 3 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,28 +0,0 @@
*** TEST 3 -- NODE 2 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
Getting TID of remote task
Remote task's name is : 111
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
111 - have I been suspended???
222 - Suspending remote task
222 - Resuming remote task
222 - Suspending remote task
222 - Resuming remote task
222 - Suspending remote task
222 - Resuming remote task
*** END OF TEST 3 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,169 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 4 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 4 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
TEXT_IO.PUT_LINE( "Creating Test_task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( MPTEST.MULTIPROCESSING_CONFIGURATION.NODE ),
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
2048,
RTEMS.DEFAULT_MODES,
RTEMS.GLOBAL,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task (Global)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
TEXT_IO.PUT_LINE( "Deleting initialization task" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end INIT;
--PAGE
--
-- TEST_TASK
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
TID : RTEMS.ID;
PREVIOUS_PRIORITY : RTEMS.TASK_PRIORITY;
PREVIOUS_PRIORITY_1 : RTEMS.TASK_PRIORITY;
STATUS : RTEMS.STATUS_CODES;
begin
RTEMS.TASK_IDENT( RTEMS.SELF, RTEMS.SEARCH_ALL_NODES, TID, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_IDENT OF SELF" );
TEXT_IO.PUT_LINE( "Getting TID of remote task" );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
MPTEST.REMOTE_NODE := 2;
else
MPTEST.REMOTE_NODE := 1;
end if;
TEXT_IO.PUT( "Remote task's name is : " );
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( MPTEST.REMOTE_NODE ), TRUE );
loop
RTEMS.TASK_IDENT(
MPTEST.TASK_NAME( MPTEST.REMOTE_NODE ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.REMOTE_TID,
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
RTEMS.TASK_SET_PRIORITY(
MPTEST.REMOTE_TID,
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
PREVIOUS_PRIORITY,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_SET_PRIORITY" );
if PREVIOUS_PRIORITY /= MPTEST.REMOTE_NODE then
TEXT_IO.PUT( "Remote priority (0x" );
UNSIGNED32_IO.PUT( PREVIOUS_PRIORITY, BASE => 16 );
TEXT_IO.PUT( "does not match remote node (0x" );
UNSIGNED32_IO.PUT( MPTEST.REMOTE_NODE, BASE => 16 );
TEXT_IO.PUT_LINE( ")!!!" );
RTEMS.SHUTDOWN_EXECUTIVE( 16#F00000# );
end if;
loop
RTEMS.TASK_SET_PRIORITY(
RTEMS.SELF,
RTEMS.CURRENT_PRIORITY,
PREVIOUS_PRIORITY_1,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_SET_PRIORITY" );
exit when PREVIOUS_PRIORITY_1 = MPTEST.REMOTE_NODE;
end loop;
TEXT_IO.PUT_LINE( "Local task priority has been set" );
TEXT_IO.PUT_LINE( "*** END OF TEST 4 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end TEST_TASK;
end MPTEST;

View File

@@ -1,178 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 4 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- This variable contains the ID of the remote task with which this
-- test interacts.
--
REMOTE_TID : RTEMS.ID;
--
-- This variable contains the node on which the remote task with which
-- this test interacts resides.
--
REMOTE_NODE : RTEMS.UNSIGNED32;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- TEST_TASK
--
-- DESCRIPTION:
--
-- This is the body of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
1, -- maximum # timers
0, -- maximum # semaphores
0, -- maximum # message queues
0, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,8 +0,0 @@
*** TEST 4 -- NODE 1 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
Getting TID of remote task
Remote task's name is : 222
Local task priority has been set
*** END OF TEST 4 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,8 +0,0 @@
*** TEST 4 -- NODE 2 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
Getting TID of remote task
Remote task's name is : 111
Local task priority has been set
*** END OF TEST 4 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,252 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 5 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 5 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
TEXT_IO.PUT_LINE( "Creating Test_task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( MPTEST.MULTIPROCESSING_CONFIGURATION.NODE ),
1,
2048,
RTEMS.TIMESLICE,
RTEMS.GLOBAL,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task (Global)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
MPTEST.TIMER_NAME( 1 ) := RTEMS.BUILD_NAME( 'T', 'M', '1', ' ' );
MPTEST.TIMER_NAME( 2 ) := RTEMS.BUILD_NAME( 'T', 'M', '2', ' ' );
RTEMS.TIMER_CREATE(
MPTEST.TIMER_NAME( MPTEST.MULTIPROCESSING_CONFIGURATION.NODE ),
MPTEST.TIMER_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_CREATE" );
TEXT_IO.PUT_LINE( "Deleting initialization task" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end INIT;
--PAGE
--
-- PROCESS_ASR
--
procedure PROCESS_ASR (
SIGNAL : in RTEMS.SIGNAL_SET
)
is
begin
if SIGNAL /= MPTEST.EXPECTED_SIGNAL then
TEXT_IO.PUT( "ERROR: I was expecting signal 0x" );
UNSIGNED32_IO.PUT( EXPECTED_SIGNAL, BASE => 16 );
TEXT_IO.PUT( " got 0x" );
UNSIGNED32_IO.PUT( SIGNAL, BASE => 16 );
TEXT_IO.NEW_LINE;
RTEMS.FATAL_ERROR_OCCURRED( 16#000F_0000# );
end if;
MPTEST.SIGNAL_CAUGHT := TRUE;
end PROCESS_ASR;
--PAGE
--
-- STOP_TEST_TSR
--
procedure STOP_TEST_TSR (
IGNORED_ID : in RTEMS.ID;
IGNORED_ADDRESS : in RTEMS.ADDRESS
) is
begin
MPTEST.STOP_TEST := TRUE;
end STOP_TEST_TSR;
--PAGE
--
-- TEST_TASK
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
MPTEST.STOP_TEST := FALSE;
MPTEST.SIGNAL_CAUGHT := FALSE;
MPTEST.SIGNAL_COUNT := 0;
TEXT_IO.PUT_LINE( "signal_catch: initializing signal catcher" );
RTEMS.SIGNAL_CATCH(
MPTEST.PROCESS_ASR'ACCESS,
RTEMS.NO_ASR + RTEMS.NO_PREEMPT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SIGNAL_CATCH" );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
MPTEST.REMOTE_NODE := 2;
MPTEST.REMOTE_SIGNAL := RTEMS.SIGNAL_18;
MPTEST.EXPECTED_SIGNAL := RTEMS.SIGNAL_17;
else
MPTEST.REMOTE_NODE := 1;
MPTEST.REMOTE_SIGNAL := RTEMS.SIGNAL_17;
MPTEST.EXPECTED_SIGNAL := RTEMS.SIGNAL_18;
end if;
TEXT_IO.PUT( "Remote task's name is : " );
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( MPTEST.REMOTE_NODE ), TRUE );
TEXT_IO.PUT_LINE( "Getting TID of remote task" );
loop
RTEMS.TASK_IDENT(
MPTEST.TASK_NAME( MPTEST.REMOTE_NODE ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.REMOTE_TID,
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
RTEMS.TIMER_FIRE_AFTER(
MPTEST.TIMER_ID( 1 ),
3 * TEST_SUPPORT.TICKS_PER_SECOND,
MPTEST.STOP_TEST_TSR'ACCESS,
RTEMS.NULL_ADDRESS,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_FIRE_AFTER" );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
TEXT_IO.PUT_LINE( "Sending signal to remote task" );
loop
RTEMS.SIGNAL_SEND(
MPTEST.REMOTE_TID,
MPTEST.REMOTE_SIGNAL,
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
exit when not RTEMS.ARE_STATUSES_EQUAL( STATUS, RTEMS.NOT_DEFINED );
end loop;
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SIGNAL_SEND" );
end if;
loop
exit when MPTEST.STOP_TEST = TRUE;
if MPTEST.SIGNAL_CAUGHT = TRUE then
MPTEST.SIGNAL_CAUGHT := FALSE;
MPTEST.SIGNAL_COUNT := MPTEST.SIGNAL_COUNT + 1;
if MPTEST.SIGNAL_COUNT >= MPTEST.SIGNALS_PER_DOT then
MPTEST.SIGNAL_COUNT := 0;
TEST_SUPPORT.PUT_DOT( "." );
end if;
RTEMS.SIGNAL_SEND(
MPTEST.REMOTE_TID,
MPTEST.REMOTE_SIGNAL,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SIGNAL_SEND" );
end if;
end loop;
TEXT_IO.NEW_LINE;
TEXT_IO.PUT_LINE( "*** END OF TEST 5 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end TEST_TASK;
end MPTEST;

View File

@@ -1,243 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 5 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS timers created
-- by this test.
--
TIMER_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
TIMER_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- This variable is set when the test should stop executing.
--
STOP_TEST : RTEMS.BOOLEAN;
--
-- This variable contains the ID of the remote task with which this
-- test interacts.
--
REMOTE_TID : RTEMS.ID;
--
-- This variable contains the node on which the remote task with which
-- this test interacts resides.
--
REMOTE_NODE : RTEMS.UNSIGNED32;
--
-- This is the signal set which is sent to the task on the other node.
--
REMOTE_SIGNAL : RTEMS.SIGNAL_SET;
--
-- This is the signal set the task on this node expects to receive
-- from the other node.
--
EXPECTED_SIGNAL : RTEMS.SIGNAL_SET;
--
-- These keep track of if a signal set has been caught and how many
-- signal sets have been caught cumulative.
--
SIGNAL_CAUGHT : RTEMS.BOOLEAN;
SIGNAL_COUNT : RTEMS.UNSIGNED32;
--
-- The number of signals to process per dot printed out.
--
SIGNALS_PER_DOT : constant RTEMS.UNSIGNED32 := 15;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- PROCESS_ASR
--
-- DESCRIPTION:
--
-- This subprogram is an ASR for TEST_TASK.
--
procedure PROCESS_ASR (
SIGNAL : in RTEMS.SIGNAL_SET
);
--
-- STOP_TEST_TSR
--
-- DESCRIPTION:
--
-- This subprogram is a TSR which sets the "stop test" flag.
--
procedure STOP_TEST_TSR (
IGNORED_ID : in RTEMS.ID;
IGNORED_ADDRESS : in RTEMS.ADDRESS
);
--
-- TEST_TASK
--
-- DESCRIPTION:
--
-- This is the body of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
1, -- maximum # timers
2, -- maximum # semaphores
0, -- maximum # message queues
0, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,11 +0,0 @@
*** TEST 5 -- NODE 1 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
signal_catch: initializing signal catcher
Remote task's name is : 222
Getting TID of remote task
Sending signal to remote task
....................................................
....................................................
*** END OF TEST 5 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,10 +0,0 @@
*** TEST 5 -- NODE 2 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
signal_catch: initializing signal catcher
Remote task's name is : 111
Getting TID of remote task
....................................................
....................................................
*** END OF TEST 5 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,257 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 6 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 6 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
TEXT_IO.PUT_LINE( "Creating Test_task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( MPTEST.MULTIPROCESSING_CONFIGURATION.NODE ),
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
2048,
RTEMS.DEFAULT_MODES,
RTEMS.GLOBAL,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task (Global)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
MPTEST.TIMER_NAME( 1 ) := RTEMS.BUILD_NAME( 'T', 'M', '1', ' ' );
MPTEST.TIMER_NAME( 2 ) := RTEMS.BUILD_NAME( 'T', 'M', '2', ' ' );
RTEMS.TIMER_CREATE(
MPTEST.TIMER_NAME( MPTEST.MULTIPROCESSING_CONFIGURATION.NODE ),
MPTEST.TIMER_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_CREATE" );
TEXT_IO.PUT_LINE( "Deleting initialization task" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end INIT;
--PAGE
--
-- STOP_TEST_TSR
--
procedure STOP_TEST_TSR (
IGNORED1 : in RTEMS.ID;
IGNORED2 : in RTEMS.ADDRESS
) is
begin
MPTEST.STOP_TEST := TRUE;
end STOP_TEST_TSR;
--PAGE
--
-- TEST_TASK
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
COUNT : RTEMS.UNSIGNED32;
EVENT_OUT : RTEMS.EVENT_SET;
EVENT_FOR_THIS_ITERATION : RTEMS.EVENT_SET;
STATUS : RTEMS.STATUS_CODES;
begin
MPTEST.STOP_TEST := FALSE;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
MPTEST.REMOTE_NODE := 2;
else
MPTEST.REMOTE_NODE := 1;
end if;
TEXT_IO.PUT( "Remote task's name is : " );
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( MPTEST.REMOTE_NODE ), TRUE );
TEXT_IO.PUT_LINE( "Getting TID of remote task" );
loop
RTEMS.TASK_IDENT(
MPTEST.TASK_NAME( MPTEST.REMOTE_NODE ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.REMOTE_TID,
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
TEXT_IO.PUT_LINE( "Sending events to remote task" );
else
TEXT_IO.PUT_LINE( "Receiving events from remote task" );
end if;
RTEMS.TIMER_FIRE_AFTER(
MPTEST.TIMER_ID( 1 ),
5 * TEST_SUPPORT.TICKS_PER_SECOND,
MPTEST.STOP_TEST_TSR'ACCESS,
RTEMS.NULL_ADDRESS,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_FIRE_AFTER" );
COUNT := 0;
loop
exit when MPTEST.STOP_TEST = TRUE;
EVENT_FOR_THIS_ITERATION :=
MPTEST.EVENT_SET_TABLE(
INTEGER( COUNT ) mod MPTEST.EVENT_SET_TABLE'LAST + 1
);
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
RTEMS.EVENT_SEND(
MPTEST.REMOTE_TID,
EVENT_FOR_THIS_ITERATION,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "EVENT_SEND" );
else
RTEMS.EVENT_RECEIVE(
EVENT_FOR_THIS_ITERATION,
RTEMS.DEFAULT_OPTIONS,
1 * TEST_SUPPORT.TICKS_PER_SECOND,
EVENT_OUT,
STATUS
);
if RTEMS.ARE_STATUSES_EQUAL( STATUS, RTEMS.TIMEOUT ) then
TEXT_IO.NEW_LINE( 1 );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 2 then
TEXT_IO.PUT_LINE(
"Correct behavior if the other node exitted."
);
else
TEXT_IO.PUT_LINE(
"ERROR... node 1 died"
);
end if;
exit;
else
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "EVENT_RECEIVE" );
end if;
end if;
if (COUNT mod MPTEST.MAXIMUM_DOTS) = 0 then
TEST_SUPPORT.PUT_DOT( "." );
end if;
COUNT := COUNT + 1;
end loop;
TEXT_IO.NEW_LINE;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 2 then
RTEMS.EVENT_RECEIVE(
RTEMS.EVENT_16,
RTEMS.DEFAULT_OPTIONS,
1 * TEST_SUPPORT.TICKS_PER_SECOND,
EVENT_OUT,
STATUS
);
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
RTEMS.TIMEOUT,
STATUS,
"EVENT_RECEIVE"
);
TEXT_IO.NEW_LINE;
TEXT_IO.PUT_LINE( "event_receive - correctly returned TIMEOUT" );
end if;
TEXT_IO.PUT_LINE( "*** END OF TEST 6 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end TEST_TASK;
end MPTEST;

View File

@@ -1,250 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 6 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS timers created
-- by this test.
--
TIMER_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
TIMER_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- This variable is set when the test should stop executing.
--
STOP_TEST : RTEMS.BOOLEAN;
--
-- This variable contains the ID of the remote task with which this
-- test interacts.
--
REMOTE_TID : RTEMS.ID;
--
-- This variable contains the node on which the remote task with which
-- this test interacts resides.
--
REMOTE_NODE : RTEMS.UNSIGNED32;
--
-- The number of signals to process per dot printed out.
--
MAXIMUM_DOTS : constant RTEMS.UNSIGNED32 := 25;
--
-- The following is a table of the event sets which consist of
-- a single event. This test cycles through all of these
-- events.
--
EVENT_SET_TABLE : constant array ( 0 .. 30 ) of RTEMS.EVENT_SET := (
RTEMS.EVENT_0,
RTEMS.EVENT_1,
RTEMS.EVENT_2,
RTEMS.EVENT_3,
RTEMS.EVENT_4,
RTEMS.EVENT_5,
RTEMS.EVENT_6,
RTEMS.EVENT_7,
RTEMS.EVENT_8,
RTEMS.EVENT_9,
RTEMS.EVENT_10,
RTEMS.EVENT_11,
RTEMS.EVENT_12,
RTEMS.EVENT_13,
RTEMS.EVENT_14,
RTEMS.EVENT_15,
RTEMS.EVENT_16,
RTEMS.EVENT_17,
RTEMS.EVENT_18,
RTEMS.EVENT_19,
RTEMS.EVENT_20,
RTEMS.EVENT_21,
RTEMS.EVENT_22,
RTEMS.EVENT_23,
RTEMS.EVENT_24,
RTEMS.EVENT_25,
RTEMS.EVENT_26,
RTEMS.EVENT_27,
RTEMS.EVENT_28,
RTEMS.EVENT_29,
RTEMS.EVENT_30
);
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- STOP_TEST_TSR
--
-- DESCRIPTION:
--
-- This subprogram is a TSR which sets the "stop test" flag.
--
procedure STOP_TEST_TSR (
IGNORED1 : in RTEMS.ID;
IGNORED2 : in RTEMS.ADDRESS
);
--
-- TEST_TASK
--
-- DESCRIPTION:
--
-- This is the body of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
1, -- maximum # timers
2, -- maximum # semaphores
0, -- maximum # message queues
0, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,10 +0,0 @@
*** TEST 6 -- NODE 1 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
Remote task's name is : 222
Getting TID of remote task
Sending events to remote task
....................................................
....................................................
*** END OF TEST 6 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,11 +0,0 @@
*** TEST 6 -- NODE 2 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
Remote task's name is : 111
Getting TID of remote task
Receiving events from remote task
....................................................
....................................................
event_receive - correctly returned TIMEOUT
*** END OF TEST 6 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,210 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 7 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 7 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
TEXT_IO.PUT_LINE( "Creating Test_task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( MPTEST.MULTIPROCESSING_CONFIGURATION.NODE ),
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
2048,
RTEMS.TIMESLICE,
RTEMS.GLOBAL,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task (Global)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
MPTEST.TIMER_NAME( 1 ) := RTEMS.BUILD_NAME( 'T', 'M', '1', ' ' );
RTEMS.TIMER_CREATE(
MPTEST.TIMER_NAME( 1 ),
MPTEST.TIMER_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_CREATE" );
TEXT_IO.PUT_LINE( "Deleting initialization task" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end INIT;
--PAGE
--
-- STOP_TEST_TSR
--
procedure STOP_TEST_TSR (
IGNORED1 : in RTEMS.ID;
IGNORED2 : in RTEMS.ADDRESS
) is
begin
MPTEST.STOP_TEST := TRUE;
end STOP_TEST_TSR;
--PAGE
--
-- TEST_TASK
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
COUNT : RTEMS.UNSIGNED32;
EVENT_OUT : RTEMS.EVENT_SET;
STATUS : RTEMS.STATUS_CODES;
begin
MPTEST.STOP_TEST := FALSE;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
MPTEST.REMOTE_NODE := 2;
else
MPTEST.REMOTE_NODE := 1;
end if;
TEXT_IO.PUT( "Remote task's name is : " );
TEST_SUPPORT.PUT_NAME( MPTEST.TASK_NAME( MPTEST.REMOTE_NODE ), TRUE );
TEXT_IO.PUT_LINE( "Getting TID of remote task" );
loop
RTEMS.TASK_IDENT(
MPTEST.TASK_NAME( MPTEST.REMOTE_NODE ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.REMOTE_TID,
STATUS
);
exit when RTEMS.ARE_STATUSES_EQUAL( STATUS, RTEMS.SUCCESSFUL );
end loop;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
TEXT_IO.PUT_LINE( "Sending first event to remote task" );
RTEMS.EVENT_SEND(
MPTEST.REMOTE_TID,
RTEMS.EVENT_16,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "EVENT_SEND" );
end if;
RTEMS.TIMER_FIRE_AFTER(
MPTEST.TIMER_ID( 1 ),
5 * TEST_SUPPORT.TICKS_PER_SECOND,
MPTEST.STOP_TEST_TSR'ACCESS,
RTEMS.NULL_ADDRESS,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_FIRE_AFTER" );
loop
exit when MPTEST.STOP_TEST = TRUE;
for COUNT in 1 .. MPTEST.PER_DOT
loop
RTEMS.EVENT_RECEIVE(
RTEMS.EVENT_16,
RTEMS.DEFAULT_OPTIONS,
TEST_SUPPORT.TICKS_PER_SECOND,
EVENT_OUT,
STATUS
);
if RTEMS.ARE_STATUSES_EQUAL( STATUS, RTEMS.TIMEOUT ) then
TEXT_IO.NEW_LINE;
TEXT_IO.PUT_LINE(
"TA1 - TIMEOUT .. probably OK if the other node exits"
);
exit;
else
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "EVENT_RECEIVE" );
end if;
RTEMS.EVENT_SEND(
MPTEST.REMOTE_TID,
RTEMS.EVENT_16,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "EVENT_SEND" );
end loop;
TEST_SUPPORT.PUT_DOT( "." );
end loop;
TEXT_IO.NEW_LINE;
TEXT_IO.PUT_LINE( "*** END OF TEST 7 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end TEST_TASK;
end MPTEST;

View File

@@ -1,210 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 7 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS timers created
-- by this test.
--
TIMER_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
TIMER_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- This variable is set when the test should stop executing.
--
STOP_TEST : RTEMS.BOOLEAN;
--
-- This variable contains the ID of the remote task with which this
-- test interacts.
--
REMOTE_TID : RTEMS.ID;
--
-- This variable contains the node on which the remote task with which
-- this test interacts resides.
--
REMOTE_NODE : RTEMS.UNSIGNED32;
--
-- The number of events to process per dot printed out.
--
PER_DOT : constant RTEMS.UNSIGNED32 := 100;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- STOP_TEST_TSR
--
-- DESCRIPTION:
--
-- This subprogram is a TSR which sets the "stop test" flag.
--
procedure STOP_TEST_TSR (
IGNORED1 : in RTEMS.ID;
IGNORED2 : in RTEMS.ADDRESS
);
--
-- TEST_TASK
--
-- DESCRIPTION:
--
-- This is the body of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
1, -- maximum # timers
2, -- maximum # semaphores
0, -- maximum # message queues
0, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,10 +0,0 @@
*** TEST 7 -- NODE 1 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
Remote task's name is : 222
Getting TID of remote task
Sending first event to remote task
....................................................
....................................................
*** END OF TEST 7 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,9 +0,0 @@
*** TEST 7 -- NODE 2 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
Remote task's name is : 111
Getting TID of remote task
....................................................
....................................................
*** END OF TEST 7 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,207 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 8 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 8 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
MPTEST.SEMAPHORE_NAME( 1 ) := RTEMS.BUILD_NAME( 'S', 'E', 'M', ' ' );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
TEXT_IO.PUT_LINE( "Creating Semaphore(Global)" );
RTEMS.SEMAPHORE_CREATE(
MPTEST.SEMAPHORE_NAME( 1 ),
1,
RTEMS.GLOBAL,
MPTEST.SEMAPHORE_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_CREATE" );
end if;
TEXT_IO.PUT_LINE( "Creating Test_task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( MPTEST.MULTIPROCESSING_CONFIGURATION.NODE ),
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
2048,
RTEMS.TIMESLICE,
RTEMS.GLOBAL,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task (Global)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
TEXT_IO.PUT_LINE( "Deleting initialization task" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end INIT;
--PAGE
--
-- TEST_TASK
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
DOTS : RTEMS.UNSIGNED32;
COUNT : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.PUT_LINE( "Getting SMID of semaphore" );
loop
RTEMS.SEMAPHORE_IDENT(
MPTEST.SEMAPHORE_NAME( 1 ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.SEMAPHORE_ID( 1 ),
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 2 then
RTEMS.SEMAPHORE_DELETE(
MPTEST.SEMAPHORE_ID( 1 ),
STATUS
);
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.ILLEGAL_ON_REMOTE_OBJECT,
"SEMAPHORE_DELETE"
);
TEXT_IO.PUT_LINE(
"semaphore_delete correctly returned ILLEGAL_ON_REMOTE_OBJECT"
);
end if;
COUNT := 0;
loop
TEST_SUPPORT.PUT_DOT( "p" );
RTEMS.SEMAPHORE_OBTAIN(
MPTEST.SEMAPHORE_ID( 1 ),
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
if not RTEMS.IS_STATUS_SUCCESSFUL( STATUS ) then
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.OBJECT_WAS_DELETED,
"SEMAPHORE_OBTAIN"
);
TEXT_IO.NEW_LINE;
TEXT_IO.PUT_LINE( "Global semaphore deleted" );
TEXT_IO.PUT_LINE( "*** END OF TEST 8 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end if;
COUNT := COUNT + 1;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 and then
COUNT >= 1000 then
RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.NEW_LINE;
TEXT_IO.PUT_LINE( "Deleting global semaphore" );
RTEMS.SEMAPHORE_DELETE( MPTEST.SEMAPHORE_ID( 1 ), STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_DELETE" );
TEXT_IO.PUT_LINE( "*** END OF TEST 8 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end if;
TEST_SUPPORT.PUT_DOT( "v" );
RTEMS.SEMAPHORE_RELEASE( MPTEST.SEMAPHORE_ID( 1 ), STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_RELEASE" );
end loop;
end TEST_TASK;
end MPTEST;

View File

@@ -1,192 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 8 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS semaphores created
-- by this test.
--
SEMAPHORE_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
SEMAPHORE_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- This variable contains the ID of the remote task with which this
-- test interacts.
--
REMOTE_TID : RTEMS.ID;
--
-- This variable contains the node on which the remote task with which
-- this test interacts resides.
--
REMOTE_NODE : RTEMS.UNSIGNED32;
--
-- The number of events to process per dot printed out.
--
PER_DOT : constant RTEMS.UNSIGNED32 := 100;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- TEST_TASK
--
-- DESCRIPTION:
--
-- This is the body of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
1, -- maximum # timers
1, -- maximum # semaphores
0, -- maximum # message queues
0, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,9 +0,0 @@
*** TEST 8 -- NODE 1 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
Getting SMID of semaphore
pvpvpvpvpvp.......
(continued) pvp
Deleting global semaphore
*** END OF TEST 8 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,10 +0,0 @@
*** TEST 8 -- NODE 2 ***
Creating Test_task (Global)
Starting Test_task (Global)
Deleting initialization task
Getting SMID of semaphore
semaphore_delete correctly returned ILLEGAL_ON_REMOTE_OBJECT
pvpvpvpvpvp.......
(continued) pvp
Global semaphore deleted
*** END OF TEST 8 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,381 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 9 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 9 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.RECEIVE_BUFFER :=
RTEMS.TO_BUFFER_POINTER( MPTEST.RECEIVE_BUFFER_AREA'ADDRESS );
MPTEST.BUFFER_1 :=
RTEMS.TO_BUFFER_POINTER( MPTEST.BUFFER_AREA_1'ADDRESS );
MPTEST.BUFFER_2 :=
RTEMS.TO_BUFFER_POINTER( MPTEST.BUFFER_AREA_2'ADDRESS );
MPTEST.BUFFER_3 :=
RTEMS.TO_BUFFER_POINTER( MPTEST.BUFFER_AREA_3'ADDRESS );
MPTEST.BUFFER_4 :=
RTEMS.TO_BUFFER_POINTER( MPTEST.BUFFER_AREA_4'ADDRESS );
MPTEST.FILL_BUFFER( "123456789012345 ", MPTEST.BUFFER_AREA_1 );
MPTEST.FILL_BUFFER( "abcdefghijklmno ", MPTEST.BUFFER_AREA_2 );
MPTEST.FILL_BUFFER( "ABCDEFGHIJKLMNO ", MPTEST.BUFFER_AREA_3 );
MPTEST.FILL_BUFFER( "PQRSTUVWXYZ(){} ", MPTEST.BUFFER_AREA_4 );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
MPTEST.QUEUE_NAME( 1 ) := RTEMS.BUILD_NAME( 'M', 'S', 'G', ' ' );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
TEXT_IO.PUT_LINE( "Creating Message Queue (Global)" );
RTEMS.MESSAGE_QUEUE_CREATE(
MPTEST.QUEUE_NAME( 1 ),
3,
RTEMS.GLOBAL + RTEMS.LIMIT,
MPTEST.QUEUE_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_CREATE" );
end if;
TEXT_IO.PUT_LINE( "Creating Test_task (local)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( MPTEST.MULTIPROCESSING_CONFIGURATION.NODE ),
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
2048,
RTEMS.TIMESLICE,
RTEMS.DEFAULT_ATTRIBUTES,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task (local)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
TEXT_IO.PUT_LINE( "Deleting initialization task" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end INIT;
--PAGE
--
-- SEND_MESSAGES
--
procedure SEND_MESSAGES is
BROADCAST_COUNT : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.PUT( "message_queue_send : " );
MPTEST.PUT_BUFFER( MPTEST.BUFFER_AREA_1 );
TEXT_IO.NEW_LINE;
RTEMS.MESSAGE_QUEUE_SEND(
MPTEST.QUEUE_ID( 1 ),
MPTEST.BUFFER_1,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
TEXT_IO.PUT_LINE( "Delaying for a second" );
RTEMS.TASK_WAKE_AFTER(
1 * TEST_SUPPORT.TICKS_PER_SECOND,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT( "message_queue_urgent : " );
MPTEST.PUT_BUFFER( MPTEST.BUFFER_AREA_2 );
TEXT_IO.NEW_LINE;
RTEMS.MESSAGE_QUEUE_URGENT(
MPTEST.QUEUE_ID( 1 ),
MPTEST.BUFFER_2,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_URGENT" );
TEXT_IO.PUT_LINE( "Delaying for a second" );
RTEMS.TASK_WAKE_AFTER(
1 * TEST_SUPPORT.TICKS_PER_SECOND,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT( "message_queue_broadcast : " );
MPTEST.PUT_BUFFER( MPTEST.BUFFER_AREA_3 );
TEXT_IO.NEW_LINE;
RTEMS.MESSAGE_QUEUE_BROADCAST(
MPTEST.QUEUE_ID( 1 ),
MPTEST.BUFFER_3,
BROADCAST_COUNT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_BROADCAST" );
TEXT_IO.PUT_LINE( "Delaying for a second" );
RTEMS.TASK_WAKE_AFTER(
1 * TEST_SUPPORT.TICKS_PER_SECOND,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
end SEND_MESSAGES;
--PAGE
--
-- RECEIVE_MESSAGES
--
procedure RECEIVE_MESSAGES is
INDEX : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES;
begin
for INDEX in 1 .. 3
loop
TEXT_IO.PUT_LINE( "Receiving message ..." );
RTEMS.MESSAGE_QUEUE_RECEIVE(
MPTEST.QUEUE_ID( 1 ),
MPTEST.RECEIVE_BUFFER,
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
TEXT_IO.PUT( "Received : " );
MPTEST.PUT_BUFFER( MPTEST.RECEIVE_BUFFER_AREA );
TEXT_IO.NEW_LINE;
end loop;
TEXT_IO.PUT_LINE( "Receiver delaying for a second" );
RTEMS.TASK_WAKE_AFTER( 1 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
end RECEIVE_MESSAGES;
--PAGE
--
-- FILL_BUFFER
--
--
-- Depends on tricks to make the copy work.
--
procedure FILL_BUFFER (
SOURCE : in STRING;
BUFFER : out RTEMS.BUFFER
) is
SOURCE_BUFFER : RTEMS.BUFFER_POINTER;
begin
SOURCE_BUFFER := RTEMS.TO_BUFFER_POINTER(
SOURCE( SOURCE'FIRST )'ADDRESS
);
BUFFER.FIELD1 := SOURCE_BUFFER.FIELD1;
BUFFER.FIELD2 := SOURCE_BUFFER.FIELD2;
BUFFER.FIELD3 := SOURCE_BUFFER.FIELD3;
BUFFER.FIELD4 := SOURCE_BUFFER.FIELD4;
end FILL_BUFFER;
--PAGE
--
-- PUT_BUFFER
--
--
-- Depends on tricks to make the output work.
--
procedure PUT_BUFFER (
BUFFER : in RTEMS.BUFFER
) is
begin
TEST_SUPPORT.PUT_NAME( BUFFER.FIELD1, FALSE );
TEST_SUPPORT.PUT_NAME( BUFFER.FIELD2, FALSE );
TEST_SUPPORT.PUT_NAME( BUFFER.FIELD3, FALSE );
TEST_SUPPORT.PUT_NAME( BUFFER.FIELD4, FALSE );
end PUT_BUFFER;
--PAGE
--
-- TEST_TASK
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
COUNT : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES;
begin
RTEMS.TASK_WAKE_AFTER( 1 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT_LINE( "Getting QID of message queue" );
loop
RTEMS.MESSAGE_QUEUE_IDENT(
MPTEST.QUEUE_NAME( 1 ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.QUEUE_ID( 1 ),
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 2 then
RTEMS.MESSAGE_QUEUE_DELETE( MPTEST.QUEUE_ID( 1 ), STATUS );
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.ILLEGAL_ON_REMOTE_OBJECT,
"MESSAGE_QUEUE_DELETE"
);
TEXT_IO.PUT_LINE(
"message_queue_delete correctly returned ILLEGAL_ON_REMOTE_OBJECT"
);
MPTEST.SEND_MESSAGES;
MPTEST.RECEIVE_MESSAGES;
TEXT_IO.PUT_LINE( "Flushing remote empty queue" );
RTEMS.MESSAGE_QUEUE_FLUSH( MPTEST.QUEUE_ID( 1 ), COUNT, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_FLUSH" );
UNSIGNED32_IO.PUT( COUNT, WIDTH => 1 );
TEXT_IO.PUT_LINE(
" messages were flushed from remote empty queue"
);
TEXT_IO.PUT_LINE(
"Send messages to be flushed from remote queue"
);
RTEMS.MESSAGE_QUEUE_SEND(
MPTEST.QUEUE_ID( 1 ),
MPTEST.BUFFER_1,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
TEXT_IO.PUT_LINE( "Flushing remote queue" );
RTEMS.MESSAGE_QUEUE_FLUSH( MPTEST.QUEUE_ID( 1 ), COUNT, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_FLUSH" );
UNSIGNED32_IO.PUT( COUNT, WIDTH => 1 );
TEXT_IO.PUT_LINE(
" messages were flushed from the remote queue"
);
TEXT_IO.PUT_LINE( "Waiting for message queue to be deleted" );
RTEMS.MESSAGE_QUEUE_RECEIVE(
MPTEST.QUEUE_ID( 1 ),
MPTEST.RECEIVE_BUFFER,
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.OBJECT_WAS_DELETED,
"MESSAGE_QUEUE_FLUSH"
);
else
MPTEST.RECEIVE_MESSAGES;
MPTEST.SEND_MESSAGES;
RTEMS.TASK_WAKE_AFTER(
5 * TEST_SUPPORT.TICKS_PER_SECOND,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
RTEMS.MESSAGE_QUEUE_DELETE( MPTEST.QUEUE_ID( 1 ), STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_DELETE" );
end if;
TEXT_IO.PUT_LINE( "*** END OF TEST 9 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end TEST_TASK;
end MPTEST;

View File

@@ -1,254 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 9 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS message
-- queues created by this test.
--
QUEUE_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
QUEUE_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- The following are message buffers used to contain the test messages
-- and pointers to those buffers.
--
RECEIVE_BUFFER_AREA : RTEMS.BUFFER;
BUFFER_AREA_1 : RTEMS.BUFFER;
BUFFER_AREA_2 : RTEMS.BUFFER;
BUFFER_AREA_3 : RTEMS.BUFFER;
BUFFER_AREA_4 : RTEMS.BUFFER;
RECEIVE_BUFFER : RTEMS.BUFFER_POINTER;
BUFFER_1 : RTEMS.BUFFER_POINTER;
BUFFER_2 : RTEMS.BUFFER_POINTER;
BUFFER_3 : RTEMS.BUFFER_POINTER;
BUFFER_4 : RTEMS.BUFFER_POINTER;
--
-- This variable contains the ID of the remote task with which this
-- test interacts.
--
REMOTE_TID : RTEMS.ID;
--
-- This variable contains the node on which the remote task with which
-- this test interacts resides.
--
REMOTE_NODE : RTEMS.UNSIGNED32;
--
-- The number of events to process per dot printed out.
--
PER_DOT : constant RTEMS.UNSIGNED32 := 100;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- SEND_MESSAGES
--
-- This subprogram prints and sends a sequence of three test messages.
-- One of the messages is sent, one is urgent, and one is broadcast.
-- A one second pause is between each the sending of each message.
--
procedure SEND_MESSAGES;
--
-- RECEIVE_MESSAGES
--
-- This subprogram receives and prints a sequence of three test messages.
--
procedure RECEIVE_MESSAGES;
--
-- FILL_BUFFER
--
-- DESCRIPTION:
--
-- This subprogram takes the SOURCE input string and places
-- up to the first sixteen characters of that string into
-- the message BUFFER.
--
procedure FILL_BUFFER (
SOURCE : in STRING;
BUFFER : out RTEMS.BUFFER
);
--
-- PUT_BUFFER
--
-- DESCRIPTION:
--
-- This subprogram prints the specified message BUFFER.
--
procedure PUT_BUFFER (
BUFFER : in RTEMS.BUFFER
);
--
-- TEST_TASK
--
-- DESCRIPTION:
--
-- This is the body of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
0, -- maximum # timers
0, -- maximum # semaphores
1, -- maximum # message queues
1, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,20 +0,0 @@
*** TEST 9 -- NODE 1 ***
Creating Message Queue (Global)
Creating Test_task (local)
Starting Test_task (local)
Deleting initialization task
Getting QID of message queue
Receiving message ...
Received : 123456789012345
Receiving message ...
Received : abcdefghijklmno
Receiving message ...
Received : ABCDEFGHIJKLMNO
Receiver delaying for a second
message_queue_send : 123456789012345
Delaying for a second
message_queue_urgent : abcdefghijklmno
Delaying for a second
message_queue_broadcast : ABCDEFGHIJKLMNO
Delaying for a second
*** END OF TEST 9 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,26 +0,0 @@
*** TEST 9 -- NODE 2 ***
Creating Test_task (local)
Starting Test_task (local)
Deleting initialization task
Getting QID of message queue
message_queue_delete correctly returned ILLEGAL_ON_REMOTE_OBJECT
message_queue_send : 123456789012345
Delaying for a second
message_queue_urgent : abcdefghijklmno
Delaying for a second
message_queue_broadcast : ABCDEFGHIJKLMNO
Delaying for a second
Receiving message ...
Received : 123456789012345
Receiving message ...
Received : abcdefghijklmno
Receiving message ...
Received : ABCDEFGHIJKLMNO
Receiver delaying for a second
Flushing remote empty queue
0 messages were flushed from remote empty queue
Send messages to be flushed from remote queue
Flushing remote queue
1 messages were flushed from the remote queue
Waiting for message queue to be deleted
*** END OF TEST 9 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,301 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 10 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 10 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( 'T', 'A', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( 'T', 'A', '2', ' ' );
MPTEST.TASK_NAME( 3 ) := RTEMS.BUILD_NAME( 'S', 'A', '3', ' ' );
MPTEST.QUEUE_NAME( 1 ) := RTEMS.BUILD_NAME( 'M', 'S', 'G', ' ' );
MPTEST.SEMAPHORE_NAME( 1 ) := RTEMS.BUILD_NAME( 'S', 'E', 'M', ' ' );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
TEXT_IO.PUT_LINE( "Creating Message Queue (Global)" );
RTEMS.MESSAGE_QUEUE_CREATE(
MPTEST.QUEUE_NAME( 1 ),
3,
RTEMS.GLOBAL + RTEMS.LIMIT,
MPTEST.QUEUE_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_CREATE" );
TEXT_IO.PUT_LINE( "Creating Semaphore (Global)" );
RTEMS.SEMAPHORE_CREATE(
MPTEST.SEMAPHORE_NAME( 1 ),
0,
RTEMS.GLOBAL + RTEMS.PRIORITY,
MPTEST.SEMAPHORE_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_CREATE" );
RTEMS.TASK_WAKE_AFTER( 10 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
else
TEXT_IO.PUT_LINE( "Creating Test_task 1 (local)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( 1 ),
1,
2048,
RTEMS.TIMESLICE,
RTEMS.DEFAULT_ATTRIBUTES,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task 1 (local)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.TEST_TASK_1'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
TEXT_IO.PUT_LINE( "Creating Test_task 2 (local)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( 2 ),
1,
2048,
RTEMS.TIMESLICE,
RTEMS.DEFAULT_ATTRIBUTES,
MPTEST.TASK_ID( 2 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task 2 (local)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 2 ),
MPTEST.TEST_TASK_2'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
TEXT_IO.PUT_LINE( "Creating Test_task 3 (local)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( 3 ),
1,
2048,
RTEMS.TIMESLICE,
RTEMS.DEFAULT_ATTRIBUTES,
MPTEST.TASK_ID( 3 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task 3 (local)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 3 ),
MPTEST.TEST_TASK_3'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
TEXT_IO.PUT_LINE( "Sleeping for 1 second ..." );
RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT_LINE( "Deleting Test_task 2" );
RTEMS.TASK_DELETE( MPTEST.TASK_ID( 2 ), STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF 2" );
TEXT_IO.PUT_LINE( "Deleting Test_task 1" );
RTEMS.TASK_DELETE( MPTEST.TASK_ID( 1 ), STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF 1" );
TEXT_IO.PUT_LINE( "Restarting Test_task 3" );
RTEMS.TASK_RESTART( MPTEST.TASK_ID( 3 ), 1, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_RESTART OF 3" );
end if;
TEXT_IO.PUT_LINE( "*** END OF TEST 10 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end INIT;
--PAGE
--
-- TEST_TASK_1
--
procedure TEST_TASK_1 (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
COUNT : RTEMS.UNSIGNED32;
RECEIVE_BUFFER_AREA : RTEMS.BUFFER;
RECEIVE_BUFFER : RTEMS.BUFFER_POINTER;
STATUS : RTEMS.STATUS_CODES;
begin
RECEIVE_BUFFER :=
RTEMS.TO_BUFFER_POINTER( RECEIVE_BUFFER_AREA'ADDRESS );
TEXT_IO.PUT_LINE( "Getting QID of message queue" );
loop
RTEMS.MESSAGE_QUEUE_IDENT(
MPTEST.QUEUE_NAME( 1 ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.QUEUE_ID( 1 ),
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
TEXT_IO.PUT_LINE( "Attempting to receive message ..." );
RTEMS.MESSAGE_QUEUE_RECEIVE(
MPTEST.QUEUE_ID( 1 ),
RECEIVE_BUFFER,
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
end TEST_TASK_1;
--PAGE
--
-- TEST_TASK_2
--
procedure TEST_TASK_2 (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.PUT_LINE( "Getting SMID of semaphore" );
loop
RTEMS.SEMAPHORE_IDENT(
MPTEST.SEMAPHORE_NAME( 1 ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.SEMAPHORE_ID( 1 ),
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
TEXT_IO.PUT_LINE( "Attempting to acquire semaphore ..." );
RTEMS.SEMAPHORE_OBTAIN(
MPTEST.SEMAPHORE_ID( 1 ),
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_OBTAIN" );
end TEST_TASK_2;
--PAGE
--
-- TEST_TASK_3
--
procedure TEST_TASK_3 (
RESTART : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
if RESTART = 1 then
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE" );
end if;
TEXT_IO.PUT_LINE( "Getting SMID of semaphore" );
loop
RTEMS.SEMAPHORE_IDENT(
MPTEST.SEMAPHORE_NAME( 1 ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.SEMAPHORE_ID( 1 ),
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
TEXT_IO.PUT_LINE( "Attempting to acquire semaphore ..." );
RTEMS.SEMAPHORE_OBTAIN(
MPTEST.SEMAPHORE_ID( 1 ),
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_OBTAIN" );
end TEST_TASK_3;
end MPTEST;

View File

@@ -1,224 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 10 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS message
-- queues created by this test.
--
QUEUE_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
QUEUE_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS semaphore
-- created by this test.
--
SEMAPHORE_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
SEMAPHORE_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- This variable contains the ID of the remote task with which this
-- test interacts.
--
REMOTE_TID : RTEMS.ID;
--
-- This variable contains the node on which the remote task with which
-- this test interacts resides.
--
REMOTE_NODE : RTEMS.UNSIGNED32;
--
-- The number of events to process per dot printed out.
--
PER_DOT : constant RTEMS.UNSIGNED32 := 100;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- TEST_TASK_1
--
-- DESCRIPTION:
--
-- This is the body of one of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK_1 (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- TEST_TASK_2
--
-- DESCRIPTION:
--
-- This is the body of one of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK_2 (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- TEST_TASK_3
--
-- DESCRIPTION:
--
-- This is the body of one of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK_3 (
RESTART : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
0, -- maximum # timers
1, -- maximum # semaphores
1, -- maximum # message queues
0, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,4 +0,0 @@
*** TEST 10 -- NODE 1 ***
Creating Message Queue (Global)
Creating Semaphore (Global)
*** END OF TEST 10 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,18 +0,0 @@
*** TEST 10 -- NODE 2 ***
Creating Test_task 1 (local)
Starting Test_task 1 (local)
Creating Test_task 2 (local)
Starting Test_task 2 (local)
Creating Test_task 3 (local)
Starting Test_task 3 (local)
Sleeping for 1 second ...
Getting QID of message queue
Attempting to receive message ...
Getting SMID of semaphore
Attempting to acquire semaphore ...
Getting SMID of semaphore
Attempting to acquire semaphore ...
Deleting Test_task 2
Deleting Test_task 1
Restarting Test_task 3
*** END OF TEST 10 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,138 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 11 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 11 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
MPTEST.QUEUE_NAME( 1 ) := RTEMS.BUILD_NAME( 'M', 'S', 'G', ' ' );
MPTEST.SEMAPHORE_NAME( 1 ) := RTEMS.BUILD_NAME( 'S', 'E', 'M', ' ' );
MPTEST.PARTITION_NAME( 1 ) := RTEMS.BUILD_NAME( 'P', 'A', 'R', ' ' );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
TEXT_IO.PUT_LINE( "Attempting to create Test_task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( 1 ),
1,
2048,
RTEMS.DEFAULT_MODES,
RTEMS.GLOBAL,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.TOO_MANY,
"TASK_CREATE"
);
TEXT_IO.PUT_LINE( "task_create correctly returned TOO_MANY" );
TEXT_IO.PUT_LINE( "Attempting to create Message Queue (Global)" );
RTEMS.MESSAGE_QUEUE_CREATE(
MPTEST.QUEUE_NAME( 1 ),
3,
RTEMS.GLOBAL + RTEMS.LIMIT,
MPTEST.QUEUE_ID( 1 ),
STATUS
);
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.TOO_MANY,
"MESSAGE_QUEUE_CREATE"
);
TEXT_IO.PUT_LINE(
"message_queue_create correctly returned TOO_MANY"
);
TEXT_IO.PUT_LINE( "Creating Semaphore (Global)" );
RTEMS.SEMAPHORE_CREATE(
MPTEST.SEMAPHORE_NAME( 1 ),
1,
RTEMS.GLOBAL,
MPTEST.SEMAPHORE_ID( 1 ),
STATUS
);
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.TOO_MANY,
"SEMAPHORE_CREATE"
);
TEXT_IO.PUT_LINE( "semaphore_create correctly returned TOO_MANY" );
TEXT_IO.PUT_LINE( "Creating Partition (Global)" );
RTEMS.PARTITION_CREATE(
MPTEST.PARTITION_NAME( 1 ),
MPTEST.PARTITION_AREA( 0 )'ADDRESS,
128,
64,
RTEMS.GLOBAL,
MPTEST.PARTITION_ID( 1 ),
STATUS
);
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.TOO_MANY,
"PARTITION_CREATE"
);
TEXT_IO.PUT_LINE( "partition_create correctly returned TOO_MANY" );
end if;
TEXT_IO.PUT_LINE( "*** END OF TEST 11 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end INIT;
end MPTEST;

View File

@@ -1,184 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 11 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS message
-- queues created by this test.
--
QUEUE_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
QUEUE_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS semaphore
-- created by this test.
--
SEMAPHORE_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
SEMAPHORE_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS partition
-- created by this test.
--
PARTITION_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
PARTITION_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- This is the area used for the partition.
--
PARTITION_AREA :
array ( RTEMS.UNSIGNED32 range 0 .. 1023 ) of RTEMS.UNSIGNED8;
for PARTITION_AREA'ALIGNMENT use RTEMS.STRUCTURE_ALIGNMENT;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
0, -- maximum # global objects
0 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
0, -- maximum # timers
1, -- maximum # semaphores
1, -- maximum # message queues
0, -- maximum # messages
1, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,10 +0,0 @@
*** TEST 11 -- NODE 1 ***
Attempting to create Test_task (Global)
task_create correctly returned TOO_MANY
Attempting to create Message Queue (Global)
message_queue_create correctly returned TOO_MANY
Creating Semaphore (Global)
semaphore_create correctly returned TOO_MANY
Creating Partition (Global)
partition_create correctly returned TOO_MANY
*** END OF TEST 11 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,2 +0,0 @@
*** TEST 11 -- NODE 2 ***
*** END OF TEST 11 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,152 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 12 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
BUFFER_ADDRESS : RTEMS.ADDRESS;
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 12 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
MPTEST.PARTITION_NAME( 1 ) := RTEMS.BUILD_NAME( 'P', 'A', 'R', ' ' );
TEXT_IO.PUT_LINE( "Got to the initialization task" );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 2 then
RTEMS.TASK_WAKE_AFTER( 1 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT_LINE( "Getting ID of remote Partition (Global)" );
loop
RTEMS.PARTITION_IDENT(
MPTEST.PARTITION_NAME( 1 ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.PARTITION_ID( 1 ),
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
TEXT_IO.PUT_LINE(
"Attempting to delete remote Partition (Global)"
);
RTEMS.PARTITION_DELETE( MPTEST.PARTITION_ID( 1 ), STATUS );
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.ILLEGAL_ON_REMOTE_OBJECT,
"PARTITION_DELETE"
);
TEXT_IO.PUT_LINE(
"partition_delete correctly returned ILLEGAL_ON_REMOTE_OBJECT!!"
);
TEXT_IO.PUT_LINE( "Obtaining a buffer from the global partition" );
RTEMS.PARTITION_GET_BUFFER(
MPTEST.PARTITION_ID( 1 ),
BUFFER_ADDRESS,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PARTITION_GET_BUFFER" );
TEXT_IO.PUT( "Address returned was : " );
UNSIGNED32_IO.PUT(
RTEMS.SUBTRACT( BUFFER_ADDRESS, RTEMS.NULL_ADDRESS ),
WIDTH => 8,
BASE => 16
);
TEXT_IO.NEW_LINE;
RTEMS.PARTITION_RETURN_BUFFER(
MPTEST.PARTITION_ID( 1 ),
BUFFER_ADDRESS,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PARTITION_RETURN_BUFFER" );
RTEMS.TASK_WAKE_AFTER( 2 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
else
TEXT_IO.PUT_LINE( "Creating Partition (Global)" );
RTEMS.PARTITION_CREATE(
MPTEST.PARTITION_NAME( 1 ),
MPTEST.PARTITION_AREA( 0 )'ADDRESS,
128,
64,
RTEMS.GLOBAL,
MPTEST.PARTITION_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PARTITION_CREATE" );
TEXT_IO.PUT_LINE( "Sleeping for three seconds" );
RTEMS.TASK_WAKE_AFTER( 3 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT_LINE( "Deleting Partition (Global)" );
RTEMS.PARTITION_DELETE( MPTEST.PARTITION_ID( 1 ), STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PARTITION_DELETE" );
end if;
TEXT_IO.PUT_LINE( "*** END OF TEST 12 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end INIT;
end MPTEST;

View File

@@ -1,182 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 12 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS semaphore
-- created by this test.
--
PARTITION_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
PARTITION_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- This variable contains the ID of the remote task with which this
-- test interacts.
--
REMOTE_TID : RTEMS.ID;
--
-- This variable contains the node on which the remote task with which
-- this test interacts resides.
--
REMOTE_NODE : RTEMS.UNSIGNED32;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the area used for the partition.
--
PARTITION_AREA :
array ( RTEMS.UNSIGNED32 range 0 .. 1023 ) of RTEMS.UNSIGNED8;
for PARTITION_AREA'ALIGNMENT use RTEMS.STRUCTURE_ALIGNMENT;
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
0, -- maximum # timers
0, -- maximum # semaphores
0, -- maximum # message queues
0, -- maximum # messages
1, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,6 +0,0 @@
*** TEST 12 -- NODE 1 ***
Got to the initialization task
Creating Partition (Global)
Sleeping for three seconds
Deleting Partition (Global)
*** END OF TEST 12 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,9 +0,0 @@
*** TEST 12 -- NODE 2 ***
Got to the initialization task
Getting ID of remote Partition (Global)
Attempting to delete remote Partition (Global)
partition_delete correctly returned ILLEGAL_ON_REMOTE_OBJECT!!
Obtaining a buffer from the global partition
Address returned was : 0x200f0000
NOTE: Address printed will probably differ!!!
*** END OF TEST 12 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,328 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 13 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 13 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
MPTEST.QUEUE_NAME( 1 ) := RTEMS.BUILD_NAME( 'M', 'S', 'G', ' ' );
MPTEST.SEMAPHORE_NAME( 1 ) := RTEMS.BUILD_NAME( 'S', 'E', 'M', ' ' );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
TEXT_IO.PUT_LINE( "Creating Message Queue (Global)" );
RTEMS.MESSAGE_QUEUE_CREATE(
MPTEST.QUEUE_NAME( 1 ),
3,
RTEMS.GLOBAL + RTEMS.LIMIT,
MPTEST.QUEUE_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_CREATE" );
TEXT_IO.PUT_LINE( "Creating Semaphore (Global)" );
RTEMS.SEMAPHORE_CREATE(
MPTEST.SEMAPHORE_NAME( 1 ),
1,
RTEMS.GLOBAL + RTEMS.PRIORITY,
MPTEST.SEMAPHORE_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_CREATE" );
RTEMS.SEMAPHORE_OBTAIN(
MPTEST.SEMAPHORE_ID( 1 ),
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_OBTAIN" );
end if;
TEXT_IO.PUT_LINE( "Creating Test_task 1 (local)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( 1 ),
1,
2048,
RTEMS.TIMESLICE,
RTEMS.DEFAULT_ATTRIBUTES,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task 1 (local)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.TEST_TASK_1'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
TEXT_IO.PUT_LINE( "Creating Test_task 2 (local)" );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( 2 ),
1,
2048,
RTEMS.TIMESLICE,
RTEMS.DEFAULT_ATTRIBUTES,
MPTEST.TASK_ID( 2 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Test_task 2 (local)" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 2 ),
MPTEST.TEST_TASK_2'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
RTEMS.TASK_WAKE_AFTER( 5 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT_LINE( "*** END OF TEST 13 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end if;
TEXT_IO.PUT_LINE( "Deleting initialization task" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end INIT;
--PAGE
--
-- TEST_TASK_1
--
procedure TEST_TASK_1 (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
COUNT : RTEMS.UNSIGNED32;
RECEIVE_BUFFER_AREA : RTEMS.BUFFER;
RECEIVE_BUFFER : RTEMS.BUFFER_POINTER;
STATUS : RTEMS.STATUS_CODES;
begin
RECEIVE_BUFFER :=
RTEMS.TO_BUFFER_POINTER( RECEIVE_BUFFER_AREA'ADDRESS );
TEXT_IO.PUT_LINE( "Getting QID of message queue" );
loop
RTEMS.MESSAGE_QUEUE_IDENT(
MPTEST.QUEUE_NAME( 1 ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.QUEUE_ID( 1 ),
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
TEXT_IO.PUT_LINE( "Receiving message ..." );
RTEMS.MESSAGE_QUEUE_RECEIVE(
MPTEST.QUEUE_ID( 1 ),
RECEIVE_BUFFER,
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEXT_IO.PUT_LINE( "How did I get back from here???" );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
end if;
RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT_LINE( "Receiving message ..." );
RTEMS.MESSAGE_QUEUE_RECEIVE(
MPTEST.QUEUE_ID( 1 ),
RECEIVE_BUFFER,
RTEMS.DEFAULT_OPTIONS,
2 * TEST_SUPPORT.TICKS_PER_SECOND,
STATUS
);
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.TIMEOUT,
"MESSAGE_QUEUE_RECEIVE"
);
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.TIMEOUT,
"MESSAGE_QUEUE_OBTAIN"
);
TEXT_IO.PUT_LINE(
"message_queue_receive correctly returned TIMEOUT"
);
TEXT_IO.PUT_LINE( "Deleting self" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end TEST_TASK_1;
--PAGE
--
-- TEST_TASK_2
--
procedure TEST_TASK_2 (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.PUT_LINE( "Getting SMID of semaphore" );
loop
RTEMS.SEMAPHORE_IDENT(
MPTEST.SEMAPHORE_NAME( 1 ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.SEMAPHORE_ID( 1 ),
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
end loop;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT_LINE( "Releasing semaphore ..." );
RTEMS.SEMAPHORE_RELEASE( MPTEST.SEMAPHORE_ID( 1 ), STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_RELEASE" );
RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND / 2, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT_LINE( "Getting semaphore ..." );
RTEMS.SEMAPHORE_OBTAIN(
MPTEST.SEMAPHORE_ID( 1 ),
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_OBTAIN" );
TEXT_IO.PUT_LINE( "Getting semaphore ..." );
RTEMS.SEMAPHORE_OBTAIN(
MPTEST.SEMAPHORE_ID( 1 ),
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEXT_IO.PUT_LINE( "How did I get back from here???" );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_OBTAIN" );
end if;
RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND / 2, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT_LINE( "Getting semaphore ..." );
RTEMS.SEMAPHORE_OBTAIN(
MPTEST.SEMAPHORE_ID( 1 ),
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_OBTAIN" );
TEXT_IO.PUT_LINE( "Releasing semaphore ..." );
RTEMS.SEMAPHORE_RELEASE( MPTEST.SEMAPHORE_ID( 1 ), STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_RELEASE" );
RTEMS.TASK_WAKE_AFTER( TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT_LINE( "Getting semaphore ..." );
RTEMS.SEMAPHORE_OBTAIN(
MPTEST.SEMAPHORE_ID( 1 ),
RTEMS.DEFAULT_OPTIONS,
2 * TEST_SUPPORT.TICKS_PER_SECOND,
STATUS
);
TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
STATUS,
RTEMS.TIMEOUT,
"SEMAPHORE_OBTAIN"
);
TEXT_IO.PUT_LINE( "semaphore_obtain correctly returned TIMEOUT" );
TEXT_IO.PUT_LINE( "*** END OF TEST 13 ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end TEST_TASK_2;
end MPTEST;

View File

@@ -1,206 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 13 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS message
-- queues created by this test.
--
QUEUE_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
QUEUE_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS semaphore
-- created by this test.
--
SEMAPHORE_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
SEMAPHORE_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.NAME;
--
-- This variable contains the ID of the remote task with which this
-- test interacts.
--
REMOTE_TID : RTEMS.ID;
--
-- This variable contains the node on which the remote task with which
-- this test interacts resides.
--
REMOTE_NODE : RTEMS.UNSIGNED32;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- TEST_TASK_1
--
-- DESCRIPTION:
--
-- This is the body of one of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK_1 (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- TEST_TASK_2
--
-- DESCRIPTION:
--
-- This is the body of one of the RTEMS tasks which constitute this test.
--
procedure TEST_TASK_2 (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
0, -- maximum # timers
1, -- maximum # semaphores
1, -- maximum # message queues
0, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,14 +0,0 @@
*** TEST 13 -- NODE 1 ***
Creating Message Queue (Global)
Creating Semaphore (Global)
Creating Test_task 1 (local)
Starting Test_task 1 (local)
Creating Test_task 2 (local)
Starting Test_task 2 (local)
Getting QID of message queue
Receiving message ...
Getting SMID of semaphore
Releasing semaphore ...
Getting semaphore ...
Getting semaphore ...
*** END OF TEST 13 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,16 +0,0 @@
*** TEST 13 -- NODE 2 ***
Creating Test_task 1 (local)
Starting Test_task 1 (local)
Creating Test_task 2 (local)
Starting Test_task 2 (local)
Deleting initialization task
Getting QID of message queue
Getting SMID of semaphore
Getting semaphore ...
Releasing semaphore ...
Receiving message ...
Getting semaphore ...
message_queue_receive correctly returned TIMEOUT
Deleting self
semaphore_obtain correctly returned TIMEOUT
*** END OF TEST 13 ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,764 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 14 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with BSP;
with BSP_MPCI;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- STOP_TEST_TSR
--
procedure STOP_TEST_TSR (
IGNORED_ID : in RTEMS.ID;
IGNORED_ADDRESS : in RTEMS.ADDRESS
) is
begin
MPTEST.STOP_TEST := TRUE;
end STOP_TEST_TSR;
--PAGE
--
-- EXIT_TEST
--
procedure EXIT_TEST is
OLD_MODE : RTEMS.MODE;
STATUS : RTEMS.STATUS_CODES;
begin
RTEMS.TASK_MODE( RTEMS.NO_PREEMPT, RTEMS.PREEMPT_MASK, OLD_MODE, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
BSP_MPCI.PRINT_STATISTICS;
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end EXIT_TEST;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
INDEX : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES;
PREVIOUS_PRIORITY : RTEMS.TASK_PRIORITY;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** TEST 14 -- NODE " );
UNSIGNED32_IO.PUT(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE,
WIDTH => 1
);
TEXT_IO.PUT_LINE( " ***" );
MPTEST.STOP_TIMER_NAME := RTEMS.BUILD_NAME( 'S', 'T', 'O', 'P' );
MPTEST.STOP_TEST := FALSE;
RTEMS.TIMER_CREATE(
MPTEST.STOP_TIMER_NAME,
MPTEST.STOP_TIMER_ID,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_CREATE" );
RTEMS.TIMER_FIRE_AFTER(
MPTEST.STOP_TIMER_ID,
BSP.MAXIMUM_LONG_TEST_DURATION * TEST_SUPPORT.TICKS_PER_SECOND,
MPTEST.STOP_TEST_TSR'ACCESS,
RTEMS.NULL_ADDRESS,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_FIRE_AFTER" );
MPTEST.EVENT_TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
MPTEST.EVENT_TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
MPTEST.QUEUE_TASK_NAME( 1 ) := RTEMS.BUILD_NAME( 'M', 'T', '1', ' ' );
MPTEST.QUEUE_TASK_NAME( 2 ) := RTEMS.BUILD_NAME( 'M', 'T', '2', ' ' );
MPTEST.PARTITION_TASK_NAME( 1 ) :=
RTEMS.BUILD_NAME( 'P', 'T', '1', ' ' );
MPTEST.PARTITION_TASK_NAME( 2 ) :=
RTEMS.BUILD_NAME( 'P', 'T', '2', ' ' );
MPTEST.SEMAPHORE_TASK_NAME( 1 ) :=
RTEMS.BUILD_NAME( 'S', 'M', '1', ' ' );
MPTEST.SEMAPHORE_TASK_NAME( 2 ) :=
RTEMS.BUILD_NAME( 'S', 'M', '2', ' ' );
MPTEST.SEMAPHORE_NAME( 1 ) := RTEMS.BUILD_NAME( 'S', 'E', 'M', ' ' );
MPTEST.QUEUE_NAME( 1 ) := RTEMS.BUILD_NAME( 'M', 'S', 'G', ' ' );
MPTEST.PARTITION_NAME( 1 ) := RTEMS.BUILD_NAME( 'P', 'A', 'R', ' ' );
MPTEST.TIMER_NAME( 1 ) := RTEMS.BUILD_NAME( 'T', 'M', 'R', ' ' );
for INDEX in MPTEST.BUFFERS'FIRST .. MPTEST.BUFFERS'LAST
loop
MPTEST.BUFFERS( INDEX ) :=
RTEMS.TO_BUFFER_POINTER( MPTEST.BUFFER_AREAS( INDEX )'ADDRESS );
end loop;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
TEXT_IO.PUT_LINE( "Creating Semaphore (Global)" );
RTEMS.SEMAPHORE_CREATE(
MPTEST.SEMAPHORE_NAME( 1 ),
1,
RTEMS.GLOBAL,
MPTEST.SEMAPHORE_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_CREATE" );
TEXT_IO.PUT_LINE( "Creating Message Queue (Global)" );
RTEMS.MESSAGE_QUEUE_CREATE(
MPTEST.QUEUE_NAME( 1 ),
1,
RTEMS.GLOBAL,
MPTEST.QUEUE_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_CREATE" );
TEXT_IO.PUT_LINE( "Creating Partition (Global)" );
RTEMS.PARTITION_CREATE(
MPTEST.PARTITION_NAME( 1 ),
MPTEST.PARTITION_AREA( 0 )'ADDRESS,
16#8000#,
16#3000#,
RTEMS.GLOBAL,
MPTEST.PARTITION_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PARTITION_CREATE" );
end if;
TEXT_IO.PUT_LINE( "Creating Event task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.EVENT_TASK_NAME(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE
),
2,
2048,
RTEMS.TIMESLICE,
RTEMS.GLOBAL,
MPTEST.EVENT_TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Event task (Global)" );
RTEMS.TASK_START(
MPTEST.EVENT_TASK_ID( 1 ),
MPTEST.TEST_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
TEXT_IO.PUT_LINE( "Creating Semaphore task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.SEMAPHORE_TASK_NAME(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE
),
2,
2048,
RTEMS.TIMESLICE,
RTEMS.GLOBAL,
MPTEST.SEMAPHORE_TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Semaphore task (Global)" );
RTEMS.TASK_START(
MPTEST.SEMAPHORE_TASK_ID( 1 ),
MPTEST.SEMAPHORE_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
TEXT_IO.PUT_LINE( "Creating Message Queue task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.QUEUE_TASK_NAME(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE
),
2,
2048,
RTEMS.TIMESLICE,
RTEMS.GLOBAL,
MPTEST.QUEUE_TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Message Queue task (Global)" );
RTEMS.TASK_START(
MPTEST.QUEUE_TASK_ID( 1 ),
MPTEST.MESSAGE_QUEUE_TASK'ACCESS,
1, -- index of buffer
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
TEXT_IO.PUT_LINE( "Creating Partition task (Global)" );
RTEMS.TASK_CREATE(
MPTEST.PARTITION_TASK_NAME(
MPTEST.MULTIPROCESSING_CONFIGURATION.NODE
),
2,
2048,
RTEMS.TIMESLICE,
RTEMS.GLOBAL,
MPTEST.PARTITION_TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
TEXT_IO.PUT_LINE( "Starting Partition task (Global)" );
RTEMS.TASK_START(
MPTEST.PARTITION_TASK_ID( 1 ),
MPTEST.PARTITION_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
RTEMS.TASK_SET_PRIORITY( RTEMS.SELF, 2, PREVIOUS_PRIORITY, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_SET_PRIORITY" );
MPTEST.DELAYED_EVENTS_TASK( 1 );
end INIT;
--
-- DELAYED_SEND_EVENT
--
-- DESCRIPTION:
--
-- This subprogram is a timer service routine which sends an
-- event set to a waiting task.
--
procedure DELAYED_SEND_EVENT (
TIMER_ID : in RTEMS.ID;
IGNORED_ADDRESS : in RTEMS.ADDRESS
) is
STATUS : RTEMS.STATUS_CODES;
begin
RTEMS.EVENT_SEND(
MPTEST.TASK_ID( RTEMS.GET_INDEX( TIMER_ID ) ),
RTEMS.EVENT_16,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "EVENT_SEND" );
end DELAYED_SEND_EVENT;
--
-- TEST_TASK
--
-- DESCRIPTION:
--
-- This is one of the test tasks.
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
REMOTE_NODE : RTEMS.UNSIGNED32;
REMOTE_TID : RTEMS.ID;
COUNT : RTEMS.UNSIGNED32;
EVENT_OUT : RTEMS.EVENT_SET;
STATUS : RTEMS.STATUS_CODES;
begin
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
REMOTE_NODE := 2;
else
REMOTE_NODE := 1;
end if;
TEXT_IO.PUT_LINE( "About to go to sleep!" );
RTEMS.TASK_WAKE_AFTER( 1 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
TEXT_IO.PUT_LINE( "Waking up!" );
TEXT_IO.PUT( "Remote task's name is : " );
TEST_SUPPORT.PUT_NAME( MPTEST.EVENT_TASK_NAME( REMOTE_NODE ), TRUE );
TEXT_IO.PUT_LINE( "Getting TID of remote task" );
loop
RTEMS.TASK_IDENT(
MPTEST.EVENT_TASK_NAME( REMOTE_NODE ),
RTEMS.SEARCH_ALL_NODES,
REMOTE_TID,
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
TEXT_IO.PUT_LINE( "task_ident" );
end loop;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
TEXT_IO.PUT_LINE( "Sending events to remote task" );
loop
exit when MPTEST.STOP_TEST = TRUE;
for COUNT in 1 .. MPTEST.EVENT_TASK_DOT_COUNT
loop
RTEMS.EVENT_SEND(
REMOTE_TID,
RTEMS.EVENT_16,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "EVENT_SEND" );
exit when MPTEST.STOP_TEST = TRUE;
end loop;
TEST_SUPPORT.PUT_DOT( "e" );
end loop;
end if;
TEXT_IO.PUT_LINE( "Receiving events from remote task" );
loop
exit when MPTEST.STOP_TEST = TRUE;
for COUNT in 1 .. MPTEST.EVENT_TASK_DOT_COUNT
loop
exit when MPTEST.STOP_TEST = TRUE;
RTEMS.EVENT_RECEIVE(
RTEMS.EVENT_16,
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
EVENT_OUT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "EVENT_RECEIVE" );
end loop;
TEST_SUPPORT.PUT_DOT( "e" );
end loop;
MPTEST.EXIT_TEST;
end TEST_TASK;
--
-- DELAYED_EVENTS_TASK
--
-- DESCRIPTION:
--
-- This is one of the test tasks.
--
procedure DELAYED_EVENTS_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
COUNT : RTEMS.UNSIGNED32;
PREVIOUS_MODE : RTEMS.MODE;
EVENTS_OUT : RTEMS.EVENT_SET;
STATUS : RTEMS.STATUS_CODES;
begin
RTEMS.TASK_MODE(
RTEMS.PREEMPT + RTEMS.TIMESLICE,
RTEMS.PREEMPT_MASK + RTEMS.TIMESLICE_MASK,
PREVIOUS_MODE,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
RTEMS.TIMER_CREATE(
MPTEST.TIMER_NAME( 1 ),
MPTEST.TIMER_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_CREATE" );
RTEMS.TASK_IDENT(
RTEMS.SELF,
RTEMS.SEARCH_ALL_NODES,
MPTEST.TASK_ID( RTEMS.GET_INDEX( MPTEST.TIMER_ID( 1 ) ) ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_IDENTS" );
loop
for COUNT in 1 .. MPTEST.DELAYED_EVENT_DOT_COUNT
loop
RTEMS.TIMER_FIRE_AFTER(
MPTEST.TIMER_ID( 1 ),
1,
MPTEST.DELAYED_SEND_EVENT'ACCESS,
RTEMS.NULL_ADDRESS,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TIMER_FIRE_AFTER" );
RTEMS.EVENT_RECEIVE(
RTEMS.EVENT_16,
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
EVENTS_OUT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "EVENT_RECEIVE" );
end loop;
TEST_SUPPORT.PUT_DOT( "." );
end loop;
MPTEST.EXIT_TEST;
end DELAYED_EVENTS_TASK;
--
-- MESSAGE_QUEUE_TASK
--
-- DESCRIPTION:
--
-- This is one of the test tasks.
--
procedure MESSAGE_QUEUE_TASK (
INDEX : in RTEMS.TASK_ARGUMENT
) is
COUNT : RTEMS.UNSIGNED32;
YIELD_COUNT : RTEMS.UNSIGNED32;
OVERFLOW_COUNT : RTEMS.UNSIGNED32_POINTER;
BUFFER_COUNT : RTEMS.UNSIGNED32_POINTER;
STATUS : RTEMS.STATUS_CODES;
begin
MPTEST.BUFFERS( INDEX ).FIELD1 := 0;
MPTEST.BUFFERS( INDEX ).FIELD2 := 0;
MPTEST.BUFFERS( INDEX ).FIELD3 := 0;
MPTEST.BUFFERS( INDEX ).FIELD4 := 0;
TEXT_IO.PUT_LINE( "Getting ID of message queue" );
loop
RTEMS.MESSAGE_QUEUE_IDENT(
MPTEST.QUEUE_NAME( 1 ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.QUEUE_ID( 1 ),
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
TEXT_IO.PUT_LINE( "message_queue_ident FAILED!!" );
end loop;
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
RTEMS.MESSAGE_QUEUE_SEND(
MPTEST.QUEUE_ID( 1 ),
MPTEST.BUFFERS( INDEX ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
OVERFLOW_COUNT := RTEMS.TO_UNSIGNED32_POINTER(
MPTEST.BUFFERS( INDEX ).FIELD1'ADDRESS
);
BUFFER_COUNT := RTEMS.TO_UNSIGNED32_POINTER(
MPTEST.BUFFERS( INDEX ).FIELD2'ADDRESS
);
else
OVERFLOW_COUNT := RTEMS.TO_UNSIGNED32_POINTER(
MPTEST.BUFFERS( INDEX ).FIELD3'ADDRESS
);
BUFFER_COUNT := RTEMS.TO_UNSIGNED32_POINTER(
MPTEST.BUFFERS( INDEX ).FIELD4'ADDRESS
);
end if;
loop
exit when MPTEST.STOP_TEST = TRUE;
YIELD_COUNT := 100;
for COUNT in 1 .. MPTEST.MESSAGE_DOT_COUNT
loop
exit when MPTEST.STOP_TEST = TRUE;
RTEMS.MESSAGE_QUEUE_RECEIVE(
MPTEST.QUEUE_ID( 1 ),
MPTEST.BUFFERS( INDEX ),
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED(
STATUS,
"MESSAGE_QUEUE_RECEIVE"
);
if BUFFER_COUNT.ALL = RTEMS.UNSIGNED32'LAST then
BUFFER_COUNT.ALL := 0;
OVERFLOW_COUNT.ALL := OVERFLOW_COUNT.ALL + 1;
else
BUFFER_COUNT.ALL := BUFFER_COUNT.ALL + 1;
end if;
RTEMS.MESSAGE_QUEUE_SEND(
MPTEST.QUEUE_ID( 1 ),
MPTEST.BUFFERS( INDEX ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
if MPTEST.STOP_TEST = FALSE then
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
YIELD_COUNT := YIELD_COUNT - 1;
if YIELD_COUNT = 0 then
RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "YIELD" );
YIELD_COUNT := 100;
end if;
end if;
end if;
end loop;
TEST_SUPPORT.PUT_DOT( "m" );
end loop;
MPTEST.EXIT_TEST;
end MESSAGE_QUEUE_TASK;
--
-- PARTITION_TASK
--
-- DESCRIPTION:
--
-- This is one of the test tasks.
--
procedure PARTITION_TASK (
IGNORED : in RTEMS.TASK_ARGUMENT
) is
COUNT : RTEMS.UNSIGNED32;
BUFFER : RTEMS.ADDRESS;
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.PUT_LINE( "Getting ID of partition" );
loop
RTEMS.PARTITION_IDENT(
MPTEST.PARTITION_NAME( 1 ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.PARTITION_ID( 1 ),
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
TEXT_IO.PUT_LINE( "partition_ident FAILED!!" );
end loop;
loop
exit when MPTEST.STOP_TEST = TRUE;
for COUNT in 1 .. MPTEST.PARTITION_DOT_COUNT
loop
exit when MPTEST.STOP_TEST = TRUE;
RTEMS.PARTITION_GET_BUFFER(
MPTEST.PARTITION_ID( 1 ),
BUFFER,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PARTITION_GET_BUFFER" );
RTEMS.PARTITION_RETURN_BUFFER(
MPTEST.PARTITION_ID( 1 ),
BUFFER,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED(
STATUS,
"PARTITION_RETURN_BUFFER"
);
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "YIELD" );
end if;
end loop;
TEST_SUPPORT.PUT_DOT( "p" );
end loop;
MPTEST.EXIT_TEST;
end PARTITION_TASK;
--
-- SEMAPHORE_TASK
--
-- DESCRIPTION:
--
-- This is one of the test tasks.
--
procedure SEMAPHORE_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
COUNT : RTEMS.UNSIGNED32;
YIELD_COUNT : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.PUT_LINE( "Getting ID of semaphore" );
loop
RTEMS.SEMAPHORE_IDENT(
MPTEST.SEMAPHORE_NAME( 1 ),
RTEMS.SEARCH_ALL_NODES,
MPTEST.SEMAPHORE_ID( 1 ),
STATUS
);
exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
TEXT_IO.PUT_LINE( "semaphore_ident FAILED!!" );
end loop;
loop
YIELD_COUNT := 100;
exit when MPTEST.STOP_TEST = TRUE;
for COUNT in 1 .. MPTEST.SEMAPHORE_DOT_COUNT
loop
exit when MPTEST.STOP_TEST = TRUE;
RTEMS.SEMAPHORE_OBTAIN(
MPTEST.SEMAPHORE_ID( 1 ),
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_OBTAIN" );
RTEMS.SEMAPHORE_RELEASE( MPTEST.SEMAPHORE_ID( 1 ), STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_RELEASE" );
if MPTEST.MULTIPROCESSING_CONFIGURATION.NODE = 1 then
YIELD_COUNT := YIELD_COUNT - 1;
if YIELD_COUNT = 0 then
RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "YIELD" );
YIELD_COUNT := 100;
end if;
end if;
end loop;
TEST_SUPPORT.PUT_DOT( "s" );
end loop;
MPTEST.EXIT_TEST;
end SEMAPHORE_TASK;
end MPTEST;

View File

@@ -1,347 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 14 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test for passing event sets.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test for passing event sets.
--
EVENT_TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.ID;
EVENT_TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test for manipulating semaphores.
--
SEMAPHORE_TASK_ID :
array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.ID;
SEMAPHORE_TASK_NAME :
array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test for passing messages.
--
QUEUE_TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.ID;
QUEUE_TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test for manipulating the global partitions.
--
PARTITION_TASK_ID :
array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.ID;
PARTITION_TASK_NAME :
array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS partitions
-- created by this test.
--
PARTITION_ID : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.ID;
PARTITION_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS semaphores
-- created by this test.
--
SEMAPHORE_ID : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.ID;
SEMAPHORE_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.NAME;
--
-- These arrays contain the IDs and NAMEs of all RTEMS message_queues
-- created by this test.
--
QUEUE_ID : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.ID;
QUEUE_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.NAME;
--
--
-- These arrays contain the IDs and NAMEs of all RTEMS timers
-- created by this test.
--
TIMER_ID : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.ID;
TIMER_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.NAME;
--
-- The following are message buffers used to contain the test messages
-- and pointers to those buffers.
--
BUFFER_AREAS : array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.BUFFER;
BUFFERS :
array ( RTEMS.UNSIGNED32 range 1 .. 4 ) of RTEMS.BUFFER_POINTER;
--
-- This is the area used for the partition.
--
PARTITION_AREA :
array ( RTEMS.UNSIGNED32 range 0 .. 16#7FFF# ) of RTEMS.UNSIGNED8;
for PARTITION_AREA'ALIGNMENT use RTEMS.STRUCTURE_ALIGNMENT;
--
-- The following constants control the flow of "dot" indicators
-- from the various test componenents.
--
EVENT_TASK_DOT_COUNT : constant RTEMS.UNSIGNED32 := 100;
EVENT_SEND_DOT_COUNT : constant RTEMS.UNSIGNED32 := 100;
DELAYED_EVENT_DOT_COUNT : constant RTEMS.UNSIGNED32 := 1000;
MESSAGE_DOT_COUNT : constant RTEMS.UNSIGNED32 := 200;
PARTITION_DOT_COUNT : constant RTEMS.UNSIGNED32 := 200;
SEMAPHORE_DOT_COUNT : constant RTEMS.UNSIGNED32 := 200;
--
-- These contain the IDs and NAMEs of the RTEMS timers used
-- by this test to stop.
--
STOP_TIMER_ID : RTEMS.ID;
STOP_TIMER_NAME : RTEMS.NAME;
--
-- This variable is set when the test should stop executing.
--
STOP_TEST : RTEMS.BOOLEAN;
--
-- EXIT_TEST
--
-- DESCRIPTION:
--
-- This subprogram is invoked to stop this test.
--
procedure EXIT_TEST;
--
-- DELAYED_SEND_EVENT
--
-- DESCRIPTION:
--
-- This subprogram is a timer service routine which sends an
-- event set to a waiting task.
--
procedure DELAYED_SEND_EVENT (
TIMER_ID : in RTEMS.ID;
IGNORED_ADDRESS : in RTEMS.ADDRESS
);
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- TEST_TASK
--
-- DESCRIPTION:
--
-- This is one of the test tasks.
--
procedure TEST_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- DELAYED_EVENTS_TASK
--
-- DESCRIPTION:
--
-- This is one of the test tasks.
--
procedure DELAYED_EVENTS_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- MESSAGE_QUEUE_TASK
--
-- DESCRIPTION:
--
-- This is one of the test tasks.
--
procedure MESSAGE_QUEUE_TASK (
INDEX : in RTEMS.TASK_ARGUMENT
);
--
-- PARTITION_TASK
--
-- DESCRIPTION:
--
-- This is one of the test tasks.
--
procedure PARTITION_TASK (
IGNORED : in RTEMS.TASK_ARGUMENT
);
--
-- SEMAPHORE_TASK
--
-- DESCRIPTION:
--
-- This is one of the test tasks.
--
procedure SEMAPHORE_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.DEFAULT_ATTRIBUTES, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.TIMESLICE, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
32, -- maximum # global objects
32 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
12, -- maximum # timers
1, -- maximum # semaphores
1, -- maximum # message queues
1, -- maximum # messages
1, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
1 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,33 +0,0 @@
*** TEST 14 -- NODE 1 ***
Creating Semaphore (Global)
Creating Message Queue (Global)
Creating Partition (Global)
Creating Event task (Global)
Starting Event task (Global)
Creating Semaphore task (Global)
About to go to sleep!
Starting Semaphore task (Global)
Creating Message Queue task (Global)
Getting SMID of semaphore
Starting Message Queue task (Global)
Creating Partition task (Global)
Getting ID of msg queue
Starting Partition task (Global)
Getting ID of partition
Waking up!
Remote task's name is : 222
Getting TID of remote task
Sending events to remote task
<stream of following characters>
. - indicates 100 iterations of
tm_evafter of 1 tick and event_receive.
e - indicates that 100
events have been sent to the remote task.
m - indicates 100 iterations of
message_queue_send and message_queue_receive.
p - indicates 100 iterations of
partition_get_buffer and partition_return_buffer.
s - indicates 100 iterations of
semaphore_obtain and semaphore_release.
NOTE: The characters in the stream could begin to appear whenever any
task is started.

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,28 +0,0 @@
*** TEST 14 -- NODE 2 ***
Creating Event task (Global)
Starting Event task (Global)
Creating Semaphore task (Global)
About to go to sleep!
Starting Semaphore task (Global)
Creating Message Queue task (Global)
Getting SMID of semaphore
Starting Message Queue task (Global)
Creating Partition task (Global)
Getting ID of msg queue
Starting Partition task (Global)
Getting ID of partition
Waking up!
Remote task's name is : 111
Getting TID of remote task
Receiving events from remote task
<stream of following characters>
. - indicates 100 iterations of
tm_evafter of 1 tick and event_receive.
e - indicates that 100
events have been sent to the remote task.
m - indicates 100 iterations of
message_queue_send and message_queue_receive.
p - indicates 100 iterations of
partition_get_buffer and partition_return_buffer.
s - indicates 100 iterations of
semaphore_obtain and semaphore_release.

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 2;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

View File

@@ -1,108 +0,0 @@
--
-- MPTEST / BODY
--
-- DESCRIPTION:
--
-- This package is the implementation for Test 1 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with INTERFACES; use INTERFACES;
with RTEMS;
with TEST_SUPPORT;
with TEXT_IO;
with UNSIGNED32_IO;
package body MPTEST is
package body PER_NODE_CONFIGURATION is separate;
--PAGE
--
-- INIT
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
C : RTEMS.CHARACTER;
TIME : RTEMS.TIME_OF_DAY;
STATUS : RTEMS.STATUS_CODES;
begin
TEXT_IO.NEW_LINE( 2 );
TEXT_IO.PUT( "*** SAMPLE MULTIPROCESSOR APPLICATION ***" );
TEXT_IO.PUT( "Creating and starting an application task" );
MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( 'T', 'A', '1', ' ' );
RTEMS.TASK_CREATE(
MPTEST.TASK_NAME( 1 ),
1,
2048,
RTEMS.INTERRUPT_LEVEL( 0 ),
RTEMS.DEFAULT_ATTRIBUTES,
MPTEST.TASK_ID( 1 ),
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA1" );
RTEMS.TASK_START(
MPTEST.TASK_ID( 1 ),
MPTEST.APPLICATION_TASK'ACCESS,
0,
STATUS
);
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA1" );
RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
end INIT;
--PAGE
--
-- APPLICATION_TASK
--
procedure APPLICATION_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
) is
TIME : RTEMS.TIME_OF_DAY;
TID : RTEMS.ID;
STATUS : RTEMS.STATUS_CODES;
begin
RTEMS.TASK_IDENT( RTEMS.SELF, RTEMS.SEARCH_ALL_NODES, TID, STATUS );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_IDENT OF SELF" );
TEXT_IO.PUT( "This task was invoked with node argument (" );
UNSIGNED32_IO.PUT( ARGUMENT );
TEXT_IO.PUT_LINE( ")" );
TEXT_IO.PUT( "This task has the id of 0x" );
UNSIGNED32_IO.PUT( TID, BASE => 16 );
TEXT_IO.NEW_LINE;
TEXT_IO.PUT_LINE( "*** END OF SAMPLE MULTIPROCESSOR APPLICATION ***" );
RTEMS.SHUTDOWN_EXECUTIVE( 0 );
end APPLICATION_TASK;
end MPTEST;

View File

@@ -1,166 +0,0 @@
--
-- MPTEST / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for Test 1 of the RTEMS
-- Multiprocessor Test Suite.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with BSP_MPCI;
with RTEMS;
package MPTEST is
--
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test.
--
TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
--
-- INIT
--
-- DESCRIPTION:
--
-- This RTEMS task initializes the application.
--
procedure INIT (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- APPLICATION_TASK
--
-- DESCRIPTION:
--
-- This routine is as an example of an application task which
-- prints a message including its RTEMS task id. This task
-- then invokes exit to return to the monitor.
--
procedure APPLICATION_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT
);
--
-- This is the Driver Address Table for this test.
--
DEVICE_DRIVERS : aliased RTEMS.DRIVER_ADDRESS_TABLE( 1 .. 1 ) :=
(1=>
(
CLOCK_DRIVER.INITIALIZE'ACCESS, -- Initialization
RTEMS.NO_DRIVER_ENTRY, -- Open
RTEMS.NO_DRIVER_ENTRY, -- Close
RTEMS.NO_DRIVER_ENTRY, -- Read
RTEMS.NO_DRIVER_ENTRY, -- Write
RTEMS.NO_DRIVER_ENTRY -- Control
)
);
--
-- This is the Initialization Tasks Table for this test.
--
INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
(1=>
(
RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ), -- task name
2048, -- stack size
1, -- priority
RTEMS.GLOBAL, -- attributes
MPTEST.INIT'ACCESS, -- entry point
RTEMS.NO_PREEMPT, -- initial mode
0 -- argument list
)
);
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- BEGIN SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- MPTEST.PER_NODE_CONFIGURATION / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
package PER_NODE_CONFIGURATION is
--
-- LOCAL_NODE_NUMBER
--
-- DESCRIPTION:
--
-- This function returns the node number for this node.
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32;
pragma INLINE ( LOCAL_NODE_NUMBER );
end PER_NODE_CONFIGURATION;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- END SUBPACKAGE --
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
-- This is the Multiprocessor Configuration Table for this test.
--
MULTIPROCESSING_CONFIGURATION : aliased RTEMS.MULTIPROCESSING_TABLE := (
MPTEST.PER_NODE_CONFIGURATION.LOCAL_NODE_NUMBER,
2, -- maximum # nodes in system
33, -- maximum # global objects
33 -- maximum # proxies
);
--
-- This is the Configuration Table for this test.
--
CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
RTEMS.NULL_ADDRESS, -- will be replaced by BSP
64 * 1024, -- executive RAM size
10, -- maximum # tasks
0, -- maximum # timers
0, -- maximum # semaphores
0, -- maximum # message queues
0, -- maximum # messages
0, -- maximum # partitions
0, -- maximum # regions
0, -- maximum # dp memory areas
0, -- maximum # periods
0, -- maximum # user extensions
RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
50 -- # ticks in a timeslice
);
end MPTEST;

View File

@@ -1,5 +0,0 @@
*** SAMPLE MULTIPROCESSOR APPLICATION ***
Creating and starting an application task
This task was invoked with the node argument (1)
This task has the id of 0x10002
*** END OF SAMPLE MULTIPROCESSOR APPLICATION ***

View File

@@ -1,43 +0,0 @@
--
-- MPTEST.PER_NODE_CONFIGURATION / BODY
--
-- DESCRIPTION:
--
-- This package is the specification for the subpackage
-- which will define the per node configuration parameters.
--
-- DEPENDENCIES:
--
--
--
-- COPYRIGHT (c) 1989-1997.
-- On-Line Applications Research Corporation (OAR).
-- Copyright assigned to U.S. Government, 1994.
--
-- The license and distribution terms for this file may in
-- the file LICENSE in this distribution or at
-- http://www.OARcorp.com/rtems/license.html.
--
-- $Id$
--
with RTEMS;
separate ( MPTEST )
package body PER_NODE_CONFIGURATION is
--PAGE
--
-- LOCAL_NODE_NUMBER
--
function LOCAL_NODE_NUMBER
return RTEMS.UNSIGNED32 is
begin
return 1;
end LOCAL_NODE_NUMBER;
end PER_NODE_CONFIGURATION;

Some files were not shown because too many files have changed in this diff Show More